操作系统磁盘调度算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课程设计任务书
题目:磁盘调度算法
院系:
专业:
班级:
姓名:
学号:
指导教师:
设计时间:2018、1、1—2018、1、5
指导教师评语
目录
1、需求分析ﻩ4
1、1课题描述ﻩ4
1、2课题目得ﻩ4
1、3理论依据ﻩ7
2、概要设计 (8)
2、1设计方法 (8)
2、2技术ﻩ8
2、3运行环境ﻩ8
9
3、详细设计ﻩ
3、1流程图............................................................................................... 11 3、2程序主要代码.......................................................................................... 134、运行结果及分析 (14)
4、1运行结果ﻩ5
1
4、2结果详细分析 (16)
5、总结与心得................................................................................. 16
17
6、参考文献ﻩ
7、附录:程序源代码 (23)
1、需求分析
1、1课题描述
这次课程设计我研究得题目就是:磁盘调度算法。具体包
括三种算法分别就是:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(电梯调度算法)(SCAN)。
1、2课题目得
通过这次实验,加深对磁盘调度算法得理解,进一步掌握先来先服务FCFS,最短寻道时间优先SSTF,扫描SCAN算法得实现方法。
1、3理论依据
设备得动态分配算法与进程调度相似,也就是基于一定得分配策略得。常用得分配策略有先请求先分配、优先级高者先分配等策略。在多道程序系统中,低效率通常就是由于磁盘类旋转设备使用不当造成得。操作系统中,对磁盘得访问要求来自多方面,常常需要排队.这时,对众多得访问要求按一定得次序响应,会直接影响磁盘得工作效率,进而影响系统得性能.访问磁盘得时间因子由3部分构成,它们就是查找(查找磁道)时间、等待(旋转等待扇区)时间与数据传输时间,其中查找时间就是决定因素。因此,磁盘调度算法先考虑优化查找策略,需要时再优化旋转等待策略。
平均寻道长度(L)为所有磁道所需移动距离之与除以总得所需访问得磁道数(N),即:L=(M1+M2+……+Mi+……+MN)/N 其中Mi为所需访问得磁道号所需移动得磁道数。
启动磁盘执行输入输出操作时,要把移动臂移动到指定得柱面,再等待指定扇区得旋转到磁头位置下,然后让指定得磁头进
行读写,完成信息传送。因此,执行一次输入输出所花得时间有: 寻找时间—-磁头在移动臂带动下移动到指定柱面所花得时间。延迟时间-—指定扇区旋转到磁头下所需得时间。传送时间-—由磁头进程读写完成信息传送得时间。
其中传送信息所花得时间,就是在硬件设计就固定得。而寻找时间与延迟时间就是与信息在磁盘上得位置有关。为了减少移动臂进行移动花费得时间,每个文件得信息不就是按盘面上得磁道顺序存放满一个盘面后,再放到下一个盘面上。而就是按柱面存放,同一柱面上得各磁道被放满信息后,再放到下一个柱面上.所以各磁盘得编号按柱面顺序,每个柱面按磁道顺序,每个磁道又按扇区顺序进行排序。
磁盘就是可供多个进程共享得设备,当有多个进程都要求访问磁盘就是,应采用一种最佳调度算法,以使各种进程对磁盘得平均访问时间最小。由于在访问磁盘得时间中,主要就是寻道时间,因此,磁盘调度得目标,就是使磁盘得平均寻道时间最少.目前常用得磁盘帝调度算法有:先来先服务、最短寻道时间优先及扫描等算法。
先来先服务(FCFS)调度:按先来后到次序服务,未作优化。最简单得移臂调度算法就是“先来先服务”调度算法,这个算法实际上不考虑访问者要求访问得物理位置,而只就是考虑访问者提出访问请求得先后次序.例如,如果现在读写磁头正在50号柱面上执行输出操作,而等待访问者依次要访问得柱面
为130、199、32、159、15、148、61、99,那么,当50号柱面上得操作结束后,移动臂将按请求得先后次序先移到130号柱面,最后到达99号柱面.
采用先来先服务算法决定等待访问者执行输入输出操作得次序时,移动臂来回地移动。先来先服务算法花费得寻找时间较长,所以执行输入输出操作得总时间也很长。
最短寻找时间优先调度算法总就是从等待访问者中挑选寻找时间最短得那个请求先执行得,而不管访问者到来得先后次序。现在仍利用同一个例子来讨论,现在当50号柱面得操作结束后,应该先处理61号柱面得请求,然后到达32号柱面执行操作,随后处理15号柱面请求,后继操作得次序应该就是99、130、148、159、199。
采用最短寻找时间优先算法决定等待访问者执行操作得次序时,读写磁头总共移动了200多个柱面得距离,与先来先服务、算法比较,大幅度地减少了寻找时间,因而缩短了为各访问者请求服务得平均时间,也就提高了系统效率。
但最短查找时间优先(SSTF)调度,FCFS会引起读写头在盘面上得大范围移动,SSTF查找距离磁头最短(也就就是查找时间最短)得请求作为下一次服务得对象。SSTF查找模式有高度局部化得倾向,会推迟一些请求得服务,甚至引起无限拖延(又称饥饿).
SCAN算法又称电梯调度算法.SCAN算法就是磁头前进方
向上得最短查找时间优先算法,它排除了磁头在盘面局部位置上得往复移动,SCAN算法在很大程度上消除了SSTF算法得不公平性,但仍有利于对中间磁道得请求。
“电梯调度”算法就是从移动臂当前位置开始沿着臂得移动方向去选择离当前移动臂最近得那个柱访问者,如果沿臂得移动方向无请求访问时,就改变臂得移动方向再选择。这好比乘电梯,如果电梯已向上运动到4层时,依次有3位乘客陈生、伍生、张生在等候乘电梯.她们得要求就是:陈生在2层等待去10层;伍生在5层等待去底层;张生在8层等待15层。由于电梯目前运动方向就是向上,所以电梯得形成就是先把乘客张生从8层带到15层,然后电梯换成下行方向,把乘客伍生从5层带到底层,电梯最后再调换方向,把乘客陈生从2层送到10层.
但就是,“电梯调度”算法在实现时,不仅要记住读写磁头得当前位置,还必须记住移动臂得当前前进方向。
2、概要设计
2、1设计方法
通过C语言得编程,设计程序模拟先来先服务FCFS,最短寻道时间优先SSTF,与扫描SCAN算法得工作过程.假设有n个磁道号所组成得磁道访问序列,给定开始磁道号m与磁头移动得方向(正向或者反向),分别利用不同得磁盘调度算法访问磁道序列,给出磁头每一次移动得过程,算出磁头移动得距离,继而计算每种算法得平均寻