2022年磁盘调度算法的实现与分析 2.pdf
《2022年磁盘调度算法的实现与分析 2.pdf》由会员分享,可在线阅读,更多相关《2022年磁盘调度算法的实现与分析 2.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 目录1. 程设计简介 . 5 2. 课程设计目的 . 5 3. 数据结构的设计 . 5 3.1 数组. 5 4.课程设计内容 . 5 4.1 系统分析 . 5 4.2.1先来先服务( FCFS )的策略 . 6 4.2.2最短时间优先算法选择这样的进程。. 6 4.2.3扫描( SCAN)调度算法 . 6 4.2.4循环扫描( CSCAN)算法 . 6 5.程序设计流程图或N-S 图 . 6 5.1 系统流程图: . 6 5.2 先来先服务 (FCFS). 7 5.3 最短寻道时间优先 (SSTF): . 8 5.4 扫描算法 (SCAN) . 9 5.5 循环扫描 (CSCAN)算法.
2、10 6.功能模块(或算法)描述. 11 6.1 先来先服务调度 (FCFS) . 12 6.2 最短寻道时间优先调度 (SSTF) . 12 6.3 扫描调度算法 (SCAN) . 13 6.4 循环扫描算法 (CSCAN). 14 7.心得体会及结束语 . 15 参考文献8 . 15 附源代码9 . 16 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 2 1. 程设计简介磁盘调度程序模拟加深对操作系统原理的进一步认识,加
3、强实践动手能力和程序开发能力的培养,提高分析问题解决问题的能力,培养合作精神,以巩固和加深磁盘调度的概念。操作系统是一门工程性很强的课程, 它不仅要求学生掌握操作系统的工作原理和理论知识, 也要求学生的实际动手能力,以加深对所学习内容的理解, 使学生熟练地掌握计算机的操作方法, 使用各种软件工具, 加强对课程内容的理解。 这次课程设计,就是通过模拟磁臂调度来加深对操作系统中磁臂调度概念的理解2. 课程设计目的使学生熟悉磁盘管理系统的设计方法;加深对所学各种磁盘调度算法的了解及其算法的特点。3. 数据结构的设计3.1 数组Hand:当前磁道号 ;DiscLine10:随机生成的磁道号; void
4、 SetDI(int DiscL)生成随机磁道号算法; void CopyL(int Sour,int Dist ,int x) 数组 Sour 复制到数组Dist ,复制到x 个数(四)详细设计; void DelInq(int Sour,int x,int y) 数组 Sour 把 x 位置的数删除 ,x 后的数组元素向前挪一位 .void PaiXu()寻道长度由低到高排序void FCFS(int Han,int DiscL)先来先服务算法(FCFS) void SSTF(int Han,int DiscL)最短寻道时间优先算法(SSTF) int SCAN(int Han,int D
5、iscL,int x,int y) 扫描算法 (SCAN) void CSCAN(int Han,int DiscL)循环扫描算法 (CSCAN)4. 课程设计内容4.1 系统分析选择一个自己熟悉的计算机系统和程序设计语言模拟操作系统基本功能的设计方法及其实现过程完成各分项功能。在算法的实现过程中,要求可决定变量应是动态可变的;同时模块应该有一个合理的输出结果。具体可参照实验的程序模拟 . 各功能程序要求自行编写程序实现, 不得调用现有操作系统提供的模块或功能函数。磁盘调名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整
6、理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 3 度程序模拟。先来先服务调度算法. 最短寻道时间优先调度,循环(SCAN )调度算法。程序设计语言自选,最终以软件(含源代码以及执行程序)和设计报告的形式提交课程设计结果.。磁盘调度让有限的资源发挥更大的作用4.2 磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/ 写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列。4.2.1先来先服务( FCFS :afirst-come-first-served)的策略
7、,即先来的请求先被响应。 FCFS 策略看起来似乎是相当 公平的,但是当请求的频率过高的时候 FCFS 策略的响应时间就会大大延长。FCFS 策略为我们建立起一个随机访问机制的模型, 但是假如用这个策略反复响应从里到外的请求,那么将会消耗大量的时间。 为了尽量降低寻道时间, 看来我们需要对等待着的请求进行适当的排序,而不是简单的使用FCFS 策略。这个过程就叫做磁盘调度管理。有时候fcfs 也被看作是最简单的磁盘调度算法。4.2.2最短时间优先算法选择这样的进程。要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。4.2.3扫描( SCAN)调度算法 :该算法不仅考虑到欲访问
8、的磁道与当前磁道间的距离, 更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动时,SCAN 算法所考虑的下一个访问对象,应是其欲访问的磁道, 既在当前磁道之外,又是距离最近的。 这样自里向外的访问, 直至再无更外的磁道需要访问时,才将磁道换向自外向里移动。这时,同样也是每次选择这样的进程来调度,也就是要访问的当前位置内距离最近者,这样,磁头又逐步地从外向里移动,直至再无更里面的磁道要访问,从而避免了出现“ 饥饿” 现像。 4.2.4循环扫描(CSCAN )算法:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道, 这时,该里程就必须等待, 为了减少这种延迟,CSC
9、AN 算法规定磁头单向移动, 而本实验过程中我们所设计的是磁头从里向外移动,而从外向里移动时只须改方向而已,本实验未实现。 但本实验已完全能演示循环扫描的全过程。5. 程序设计流程图或 N-S 图5.1 系统流程图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 4 5.2 先来先服务 (FCFS): 这是一种简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。 此算法的优点是公平、 简单,且每个进程的请求都能依次得
10、到处理, 不会出现某一进程的请求长期得不到满足的情况。但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 5 先来先服务算法 (FCFS)流程图:5.3 最短寻道时间优先 (SSTF):该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。最短寻道时间优先流程图:名师资料总结 - - -精品资料欢
11、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 6 5.4 扫描算法 (SCAN):SCAN 算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,SCAN算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问, 直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内, 从而避免了饥饿现象的出
12、现。 由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 7 扫描算法( scan )流程图开Ordeall5.5 循环扫描 (CSCAN) 算法: 处理该进程的请求,致使该进程的请求被严重地推迟。为了减少这种延迟, CSCAN 算法规定磁头单向移动。 例如,只自里向外移动,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
13、 - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 8 当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。循环扫描算法( cscan )流程图:6.功能模块(或算法)描述名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 9 6.1 先来先服务调度 (FCFS) 输入起始磁道(你可以输入100 ),
14、点确定,进入第二个界面,再输入你要输入的最大磁道(你可以输入50 ),然后点确定。选择磁盘调度算法1 2 3 4中的任意一个,若选择1 后确认,则随机输出10 个小于 50 的磁道数 (41 17 34 0 19 24 28 8 12 14), 则先来先服务调度 (FCFS) 输出:(41 17 34 0 19 24 28 8 12 14) ,在选择 1 或者 0,选着 1 则继续其它算法的磁盘调度,选着0则结束磁盘调度运行结果图:6.2 最短寻道时间优先调度 (SSTF) 输入起始磁道(你可以输入100 ),点确定,进入第二个界面,再输入你要输入的最大磁道(你可以输入50 ),然后点确定。选
15、择磁盘调度算法1 2 3 4中的任意一个, 若选择 2 后确认,则随机输出 10 个小于 50 的磁道数 (5 45 31 27 11 41 45 42 27 36) , 则最短寻道时间优先调度 (SSTF) :(45 45 42 41 36 31 27 27 11) 。在选择 1 或者 0,选着 1 则继续其它算法的磁盘调度,选着 0 则结束磁盘调度运行结果图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 10 6.3 扫
16、描调度算法 (SCAN) 输入起始磁道(你可以输入100 ),点确定,进入第二个界面,再输入你要输入的最大磁道 (你可以输入 50 ),然后点确定。 选择磁盘调度算法 1 2 3 4 中的任意一个,若选择 3 后确认,则随机输出 10 个小于 50 的磁道数 : (41 4 2 3 42 32 21 16 18 45),则扫描调度算法 (SCAN) :(45 42 41 32 21 18 16 4 3 2) 。在选择 1 或者 0,选着 1 则继续其它算法的磁盘调度,选着 0 则结束磁盘调度。运行结果图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
17、- - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 11 6.4 循环扫描算法 (CSCAN) 输入起始磁道(你可以输入100 ),点确定,进入第二个界面,再输入你要输入的最大磁道(你可以输入50 ),然后点确定。选择磁盘调度算法1 2 3 4中的任意一个, 若选择 4 后确认,则随机输出 10 个小于 50 的磁道数 : (47 26 21 38 19 12 17 49 35 44),则循环扫描算法 (CSCAN) :(12 17 19 21 26 35 38 44 47 49)。运行结果图:名师资料总结 - -
18、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 12 7. 心得体会及结束语至此,计算机操作系统课程设计算法已经完成。此次设计基本完成了所规定的功能, 但由于这次设计的时间比较仓促,其中不免会有些纰漏, 比如在程序的实现上还不够严谨,出错处理不够完善等多方面问题,这些都有进一步改善。由于平时上课不是很认真许多概念没有理解清楚,导致在做设计时有点无从下手的感觉,只好边实验边看书直到弄懂概念后才开始做设计导致时间有点紧张,最终在同学和老师的指导下我完
19、成了设计,此设计基本能够实现规定的要求但是还是不够完善, 很多东西做的不够好, 程序不够完善和严谨。 此次课程设计中我学到了很多东西, 无论在理论上还是实践中, 都得到不少的提高, 这对于我以后的工作和学习都有一种巨大的帮助。参考文献8 (1)胡志刚,谭长庚等. 计算机操作系统.中南大学出版社. 2005 (2)罗宇,邹鹏等.操作系统 (第 2 版). 电子工业出版社. 2007.4 (3)汤子瀛、哲凤屏、汤小丹. 计算机操作系统.西安电子科技大学出版社, 2001,8. (4)陈向群杨芙清 .操作系统教程. 北京大学出版社,2004,7. (5)张尧学史美林 .计算机操作系统教程. 清华大学
20、出版社, 2000. (6)庞丽萍 .操作系统原理(第三版 ). 华中理工大学出版社,2000. (7)Tanenbaum 译著. 现代操作系统(第2 版). 机械工业出版社2005,6. (8)徐虹 .操作系统实验指导_基于 LINUX内核 , 清华大学出版社, 2004. (9)马季兰等 .Linux 操作系统 , 电子工业出版社, 2002. (10) 任爱华 ,李鹏,刘方毅 .操作系统实验指导, 清华大学出版社,2004. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12
21、 页,共 22 页 - - - - - - - - - 13 附源代码9 #include stdio.h #include stdlib.h void CopyL(int Sour,int Dist ,int x); /数组 Sour复制到数组Dist ,复制到 x 个数void SetDI(int DiscL); / 随机生成磁道数void Print(int Pri,int x); / 打印输出数组Pri void DelInq(int Sour,int x,int y); / 数组 Sour 把 x 位置的数删除,并把y 前面的数向前移动,y后的数保持不变 ( 即会出现 2 个 y)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年磁盘调度算法的实现与分析 2022 磁盘 调度 算法 实现 分析
限制150内