在fcfs中如何用c语言求总的寻到长度完整代码
时间: 2023-07-19 09:04:04 浏览: 40
在FCFS(先来先服务)调度算法中,作业按照它们被提交的顺序依次执行。每个作业执行时,它们的寻道长度(即磁头移动距离)被记录下来。要求求出所有作业的寻道长度之和。
以下是使用C语言实现的代码:
```c
#include <stdio.h>
int main()
{
int n, i, j, seek_time = 0;
printf("Enter the number of jobs: ");
scanf("%d", &n);
int cylinder[n];
printf("Enter the cylinder number for each job: ");
for(i = 0; i < n; i++)
{
scanf("%d", &cylinder[i]);
}
int head;
printf("Enter the initial position of the head: ");
scanf("%d", &head);
for(i = 0; i < n; i++)
{
seek_time += abs(head - cylinder[i]); // 计算寻道长度
head = cylinder[i]; // 更新磁头位置
}
printf("Total seek time = %d\n", seek_time);
return 0;
}
```
程序首先输入作业的数量(n),然后要求输入每个作业对应的磁道号(cylinder[])。接下来输入磁头的初始位置(head)。
在for循环中,使用abs()函数计算当前作业的寻道长度。将当前作业的磁道号赋值给head变量,以便计算下一个作业的寻道长度。
最后,程序输出所有作业的寻道长度之和(seek_time)。
希望这可以帮助到你!