磁盘驱动调度算法
更新时间:2023-11-26 10:38:01 阅读量: 教育文库 文档下载
操作系统课程设计
题 目: 磁盘驱动调度算法模拟
班 级: 姓 名: 学 号: 指导教师: 成 绩:
2014年6月
操作系统课程设计
一、课程设计目标
1.进一步加深对磁盘驱动调度算法的理解。
2.编程实现“先来先服务”、“最短寻道时间优先”、“电梯调度”、“循环扫描”算法。
二、课题内容
1.假设一个磁盘具有4个盘片,每个盘片有100个磁道,每道有8个扇区,模拟格式化时对柱面和扇区进行编号的过程。
2.设计若干磁道访问请求,要求用户输入线性块号,系统能将其转换为对应的磁道号(柱面号),并计算出分别采用“先来先服务”、“最短寻道时间优先”、“电梯调度”、“循环扫描”算法的寻道总长度。
3.提供可视化且简洁清晰的用户界面,能直观且动态地描述磁头移动。
三、设计思路
(一)系统概要设计 1.整体模块设计图
第 1 页 共 2 页
磁盘驱动调度算法模拟 菜单显示 FCFS算法 SCAN 算法 SSTF算法 CSCAN算法 沿磁道增加方向 沿磁道减小方向 沿磁道增加方向 沿磁道减小方向
操作系统课程设计
2. 相关知识
磁盘调度:当有多个进程都请求访问磁盘时,采用一种适当的驱动调度算法,使各进程对磁盘的平均访问(主要是寻道)时间最小。目前常用的磁盘调度算法有:1)先来先服务2)最短寻道时间优先3)扫描算法4)循环扫描算法等 3.算法思想介绍
(1)先来先服务算法(FCFS)
即先来的请求先被响应。FCFS策略看起来似乎是相当\公平\的,但是当请求的频率过高的时候FCFS策略的响应时间就会大大延长。FCFS策略为我们建立起一个随机访问机制的模型,但是假如用这个策略反复响应从里到外的请求,那么将会消耗大量的时间。为了尽量降低寻道时间,看来我们需要对等待着的请求进行适当的排序,而不是简单的使用FCFS策略。这个过程就叫做磁盘调度管理。有时候FCFS也被看作是最简单的磁盘调度算法。 (2)最短寻道时间优先算法(SSTF)
最短时间优先算法选择这样的进程。要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。 (3)电梯调度算法(SCAN)
电梯(SCAN)调度算法:该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象,应是其欲访问的磁道,既在当前磁道之外,又是距离最近的。这样自里向外的访问,直至再无更外的磁道需要访问时,才将磁道换向自外向里移动。这时,同样也是每次选择这样的进程来调度,也就是要访问的当前位置内距离最近者,这样,磁头又逐步地从外向里移动,直至再无更里面的磁道要访问,从而避免了出现“饥饿”现像。 (4)循环扫描算法(CSCAN)
循环扫描(CSCAN)算法:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该里程就必须等待,为了减少这种延迟,CSCAN算法规定磁头单向移动,而本实验过程中我们所设计的是磁头从里向外移动,而从外向里移动时只须改方向而已,本实验未实现。但本实验已完全能演示循环扫描的全过程。 (二)系统详细设计 1.数据结构设计
本系统采用数组a[3200]保存用户输入的线性块号,用数组array[100]保存将线性块号转换为磁道号。 2.模块接口设计 (1)各函数原型为:
第 2 页 共 3 页
操作系统课程设计
void main(); //主函数 int menu() ; // 菜单界面 void FCFS(); //FCFS算法 void SSTF(); //SSTF算法 void SCAN(); //SCAN算法 void CSCAN(); //CSCAN算法 (2)系统界面切换的实现
利用清屏函数system(\实现屏幕切换,在从本界面返回上一界面时,根据提示输入即可,例如:
cout<<\输入任意键返回主菜单\cin>>c;
则输入输入任意键都能返回上一界面,在main()函数中用do-while语句实现各函数的循环调用,以使各功能能够重复实现,直至用户退出系统为止。 3.流程图 (1)主函数
开始调用menu()函数输入选择x1调用FCFS()函数调用SSTF()函数23调用SCAN()函数45调用CSAN()函数默认退出(跳出循环)错误信息提示 (2)界面函数
第 3 页 共 4 页
操作系统课程设计
开始调用清屏函数输出“磁盘驱动调度算法模拟”输出“算法选择:”输出“1.先来先服务算法(FCFS)”输出“2.最短寻道时间优先算法(SSTF)”输出“3.电梯调度算法(SCAN)”输出“4.循环扫描算法(CSCAN)”输出“5.退出”输出“请输入您想选择的操作:(1-5)”输入x返回x结束
第 4 页 共 5 页
正在阅读:
磁盘驱动调度算法11-26
关于未能及时上报信息及新闻稿的情况说明07-08
齿轮传动习题(含答案)12-05
2019四年级下册语文单元测试第七单元人教新课标语文12-02
辞职模板02-25
速食燕麦片加工技术09-11
第一次潜水作文500字06-30
一场火灾的启示作文600字07-06
调研报告【优秀5篇】03-22
爆破施工方案07-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 磁盘驱动
- 调度
- 算法