最短寻道时间优先算法c语言程序,操作系统先来先服务、最短寻道时间优先(SSTf)、扫描算法(SCAN)、循环扫描算法(CSCAN)的c++实现.doc...
时间: 2023-07-31 19:13:19 浏览: 112
C++实现CPU调度算法先来先服务(FCFS),非抢占最短作业优先调度(SJF),优先级调度,时间片轮转调度(RR)并输出相应的平均等待时间和平均周转时间。
5星 · 资源好评率100%
很抱歉,我无法提供文档下载。但我可以为您提供最短寻道时间优先算法的C语言程序实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int abs(int x) {
return x > 0 ? x : -x;
}
int main() {
int n, m, i, j, pos, move, min, next;
int *a;
printf("请输入磁盘访问序列长度:");
scanf("%d", &n);
a = (int*)malloc(n * sizeof(int));
printf("请输入%d个磁盘访问序列:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入磁头初始位置:");
scanf("%d", &pos);
move = 0;
for (i = 0; i < n; i++) {
min = INT_MAX;
for (j = 0; j < n; j++) {
if (a[j] != -1 && abs(a[j] - pos) < min) {
min = abs(a[j] - pos);
next = j;
}
}
move += min;
pos = a[next];
a[next] = -1;
}
printf("磁臂移动距离:%d\n", move);
free(a);
return 0;
}
```
该程序实现了最短寻道时间优先算法。用户需要输入磁盘访问序列长度和磁盘访问序列,以及磁头的初始位置。程序会计算出磁臂移动的总距离,并输出结果。
阅读全文