操作系统实验七-磁盘调度:先来先服务、最短寻道时间算法 下载本文

内容发布更新时间 : 2024/5/11 17:12:47星期一 下面是文章的全部内容请认真阅读。

实验报告

【实验名称】 实验7磁盘调度(一) 【实验目的】

1.理解、掌握先来先服务(FCFS)算法; 2.理解、掌握最短寻道时间(SSTF)算法。

【实验原理】

先来先服务(FCFS)算法

先来先服务算法根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平,简单,且每个进程的请求都能依次地得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由于未寻道进行优化,致使平均寻道时间可以较长。

最短寻道时间(SSTF)算法

最短寻道时间算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法不能保证平均寻道时间最短。

【实验内容】

模拟实现早期的磁盘调度,编程实现先来先服务和最短寻道时间优先算法。 数据结构和符号说明:

typedef struct Track {

int Track_ID;//磁道号

int Track_State;//磁道标志,未被访问置为0 }Track;

Track track[N];//最大磁道数N为100 Track trackOut[N];

int Distance[N];//移动距离

int Track_Num;//需访问的磁道数目 int Current_Track;//当前磁道

int TrackBackup;//存放初始磁道位置 算法流程图:

先来先服务算法

开始基本信息初始化重置,输入开始磁道、访问数和磁道号依次访问数组计算移动距离=|当前位置-目标位置|指向下一个磁道否否是否访问完所有磁道?是是是是是否继续?否否计算平均寻道时间结束

最短寻道时间优先算法

开始基本信息初始化重置,输入开始磁道、访问数和磁道号依次访问数组,寻找到距离当前磁道最近的磁道计算移动距离=|当前位置-目标位置|指向下一个磁道否否是否访问完所有磁道?是是是是是否继续?否否计算平均寻道时间结束

程序代码及截图:

/* /*操作系统实验7磁盘调度(一) */ #include #include