#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#include<math.h>
#define MAX 100 //磁道范围
#define N 20 //序列数目
int list[MAX]; //存放随机产生的序列
int visit[MAX]; //标记数组
int location;//初始磁头位置
int closedistant; //保存其他磁道与当前磁头所在磁道的最短距离
//按磁道从小到大排序
void sort()
{
int i;
int j;
int t;
for(i=0;i<N-1;i++){
for(j=i+1;j<N;j++){
if(list[j]<list[i]){
t=list[i];
list[i]=list[j];
list[j]=t;
}
}
}
}
//随机产生磁头初始位置和访问序列
void CreateList()
{
int j;
int i;
location=rand()%MAX+1;//随机产生初始磁头位置
printf("当前磁头位置:%d\n\n",location);
printf("请求访问的磁道号序列:\n");
for(i=0;i<N;i++){ //随机产生请求磁道号序列
list[i]=rand()%MAX+1;
printf("%d ",list[i]);
}
printf("\n\n");
}
//最短寻道优先算法
void SSTF()
{
c语言模拟磁盘寻道算法:SSTF(最短寻道优先算法、CSCAN(循环扫描算法、SCAN(扫描算法)
最新推荐文章于 2024-09-19 04:45:06 发布
本文详细介绍了如何使用C语言模拟三种磁盘寻道算法:SSTF(最短寻道优先),SCAN(扫描算法)和CSCAN(循环扫描算法)。通过实例代码,读者将理解这些算法的工作原理及其在磁盘调度中的应用。
摘要由CSDN通过智能技术生成