c语言实现sstf调度算法
时间: 2023-08-13 11:05:59 浏览: 156
SSTF(Shortest Seek Time First)调度算法是一种磁盘调度算法,其核心思想是优先选择与当前磁头位置最近的磁道进行磁盘读写操作。下面是C语言实现SSTF调度算法的示例代码:
```
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 100
int n,req[N],visited[N]={0},pos;
void sstf()
{
int i,min,diff,minj;
printf("Enter the initial position:");
scanf("%d",&pos);
printf("Enter the number of disk requests:");
scanf("%d",&n);
printf("Enter the disk requests:");
for(i=0;i<n;i++)
scanf("%d",&req[i]);
printf("\n");
for(i=0;i<n;i++)
{
min=9999;
for(int j=0;j<n;j++)
{
if(visited[j]==0)
{
diff=abs(req[j]-pos);
if(diff<min)
{
min=diff;
minj=j;
}
}
}
visited[minj]=1;
printf("Move from %d to %d\n",pos,req[minj]);
pos=req[minj];
}
}
int main()
{
sstf();
return 0;
}
```
代码主要分为两个部分:输入和SSTF算法。其中,输入部分获取磁头的初始位置和磁盘请求序列,SSTF算法部分实现了SSTF调度算法的核心逻辑。在算法部分,首先遍历整个请求序列,找出与当前磁头位置最近的磁道,然后将其标记为已访问,并输出磁头移动的过程。最后更新磁头的位置。
阅读全文