模拟磁盘调度算法操作系统课程设计报告

上传人:桔**** 文档编号:487350577 上传时间:2023-01-16 格式:DOC 页数:23 大小:79.50KB
返回 下载 相关 举报
模拟磁盘调度算法操作系统课程设计报告_第1页
第1页 / 共23页
模拟磁盘调度算法操作系统课程设计报告_第2页
第2页 / 共23页
模拟磁盘调度算法操作系统课程设计报告_第3页
第3页 / 共23页
模拟磁盘调度算法操作系统课程设计报告_第4页
第4页 / 共23页
模拟磁盘调度算法操作系统课程设计报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《模拟磁盘调度算法操作系统课程设计报告》由会员分享,可在线阅读,更多相关《模拟磁盘调度算法操作系统课程设计报告(23页珍藏版)》请在金锄头文库上搜索。

1、. .某某大学课程设计报告课程名称: 操作系统设计题目:模拟磁盘调度算法系 别:计算机系 专 业:计算机科学与技术 组 别:学生:学 号:起止日期:指导教师:目录第一章需求分析11.1课程设计的简介11.2课程设计的目的11.3磁盘调度主要思想11.4课程设计容2第二章概要设计32.1设计思想32.2 数据构造32.3模块调用关系图32.4子模块程序流程图5第三章详细设计63.1模块划分6第四章代码测试94.1先来先效劳94.1最短寻道时间优先114.1扫描算法12第五章心得体会13第六章致13参考文献1附源代码2优选. -第一章 需求分析1.1课程设计的简介这是一个用VC+6.0为工具、C+

2、为编程语言而实现模拟先来先效劳算法FCFS、最短寻道时间优先算法SSTF、扫描算法SCAN的一个磁盘调度程序。该程序设计系统主界面可以灵活选择某种算法并算出磁头移动的总磁道数以及平均磁道数。1.2课程设计的目的本课程设计的目的是通过设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度的特点更简单明了,能使使用者加深对先来先效劳算法FCFS、最短寻道时间优先算法SSTF、扫描算法SCAN等磁盘调度算法的理解。1.3磁盘调度主要思想设备的动态分配算法与进程调度相似,也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配等策略。在多道程序系统中,低效率通

3、常是由于磁盘类旋转设备使用不当造成的。操作系统中,对磁盘的访问要求来自多方面,常常需要排队。这时,对众多的访问要求按一定的次序响应,会直接影响磁盘的工作效率,进而影响系统的性能。访问磁盘的时间因子由3局部构成,它们是查找查找磁道时间、等待旋转等待扇区时间和数据传输时间,其中查找时间是决定因素。因此,磁盘调度算法先考虑优化查找策略,需要时再优化旋转等待策略。平均寻道长度L为所有磁道所需移动距离之和除以总的所需访问的磁道数N,即:L=M1+M2+Mi+MN/N。其中Mi为所需访问的磁道号所需移动的磁道数。启动磁盘执行输入输出操作时,要把移动臂移动到指定的柱面,再等待指定扇区的旋转到磁头位置下,然后

4、让指定的磁头进展读写,完成信息传送。因此,执行一次输入输出所花的时间有:寻找时间磁头在移动臂带动下移动到指定柱面所花的时间。延迟时间指定扇区旋转到磁头下所需的时间。传送时间由磁头进程读写完成信息传送的时间。其中传送信息所花的时间,是在硬件设计就固定的。而寻找时间和延迟时间是与信息在磁盘上的位置有关。为了减少移动臂进展移动花费的时间,每个文件的信息不是按盘面上的磁道顺序存放满一个盘面后,再放到下一个盘面上。而是按柱面存放,同一柱面上的各磁道被放满信息后,再放到下一个柱面上。所以各磁盘的编号按柱面顺序从0号柱面开场,每个柱面按磁道顺序,每个磁道又按扇区顺序进展排序。1.4课程设计容系统主界面可以灵

5、活选择某种算法,算法包括:先来先效劳算法FCFS、最短寻道时间优先算法SSTF、扫描算法SCAN。并计算及比较磁头移动总磁道数和平均磁道数。、先来先效劳算法FCFS这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进展调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进展优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备效劳的吞吐量,致使平均寻道时间可能较长,但各进程得到效劳的响应时间的变化幅度较小。、最短寻道时间优先算法SSTF该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,

6、以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的效劳请求的响应时机不是均等的,因而导致响应时间的变化幅度很大。在效劳请求很多的情况下,对外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。、扫描算法SCAN扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,

7、在当前磁道之,从而防止了饥饿现象的出现。由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。此算法根本上抑制了最短寻道时间优先算法的效劳集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。第二章概要设计2.1设计思想本次课程设计我们是以面向对象的思想为主,利用Visual C为工具实现模拟磁盘调度。程序主要是利用冒泡排序函数、FCFS函数、SSTF函数、SCAN函数、CSCAN函数实现函数的功能。利用菜单式的选择界面,方便的用户操作。最终对每一种模拟磁盘调度输出磁头

8、平均移动的磁道数以及总磁道数。2.2 数据构造该程序主要是利用7个函数。Panduan函数:对输入的字符进展判断是否合法,zhuanhua函数:对输入合法的字符进展转化,bubble函数:对输入的磁道进展冒泡排序,FCFS函数,即先来先效劳函数,SSTF函数:最短最短寻道时间函数,SCAN函数:扫描函数,CSCAN函数:循环扫描函数。各函数之间有点可以相互调用,共同实现要求。本程序主要用到的数据构造为数组、字符串,包括对字符串的合法性判断,利用数组算磁头移动的总磁道数,平均移动磁道数。2.3模块调用关系图磁盘调度模拟系统先来先效劳最短寻道时间优先扫描算法退出图2-1 磁盘调度模拟系统2.4子模

9、块程序流程图先来先效劳算法FCFS流程图:最短寻道时间优先算法SSTF流程图扫描算法SCAN流程图第三章 详细设计3.1模块划分本系统划分为四个模块:先来先效劳算法模块int FCFS(int array,int m)、最短寻道时间优先算法模块int SSTF(int array,int m)、扫描算法模块int SCAN(int array,int m) 先来先效劳算法模块:int FCFS(int array,int m)输入磁道号,按先来先效劳的策略输出磁盘请求序列,求平均寻道长度,输出移动平均磁道数。主要代码:for(i=0,j=1;jm;i+,j+) sum+=abs(arrayj-

10、arrayi);ave=(float)(sum)/(float)(m); 最短寻道时间优先算法模块:int SSTF(int array,int m)将磁道号用冒泡法从小到大排序,输出排好序的磁道序列,输入当前磁道号,根据前磁道在已排的序列中的位置,选择扫描的顺序,求出平均寻道长度,输出移动的平均磁道数。主要代码:for(i=0;im;i+) /*使用冒泡法按从小到大顺序排列*/for(j=i+1;jarrayj)temp=arrayi; arrayi=arrayj;arrayj=temp; if(arraym-1=0;i-)coutarrayi=now) /*假设当前磁道号小于请求序列中最小

11、者,那么直接由向外依次给予各请求效劳*/while(l=0)&(rm) /*当前磁道在请求序列围*/ if(now-arrayl)=(arrayr-now) /*选择与当前磁道最近的请求给予效劳*/coutarrayl=0;j-) coutarrayj ; /*输出向扫描的序列*/for(j=r;jm;j+) /*磁头移动到最小号,那么改变方向向外扫描未扫描的磁道*/ coutarrayj ; /*输出向外扫描的序列*/sum=now-2*array0+arraym-1; else /*选择移动臂方向向外,那么先向外扫描*/ for(j=r;jm;j+)coutarrayj=0;j-) /*磁

12、头移动到最大号,那么改变方向向扫描未扫描的磁道*/coutarrayj ;sum=-now-array0+2*arraym-1; ave=(float)(sum)/(float)(m);第四章 测试4.1 先来先效劳算法输入磁道序列:65 78 34 23 87 100 18 26当前磁道号:80磁盘扫描序列为:65 78 34 23 87 100 18 26平均寻到长度:31.25磁头移动总磁道数:2504.2 最短寻道时间优先算法1当前磁道号大于磁道序列中的最大的磁道号时 输入磁道序列:65 78 34 23 87 100 18 26 排序后的磁道序列为:18 23 26 34 65 78

13、 87 100当前磁道号:200磁盘扫描序列为100 87 78 65 34 26 23 18平均寻到长度:22.75磁头移动总磁道数:1822当前磁道号小于磁道序列中的最小的磁道号时输入磁道序列:65 78 34 23 87 100 18 26排序后的磁道序列为:18 23 26 34 65 78 87 100当前磁道号:10磁盘扫描序列为:18 23 26 34 65 78 87 100平均扫描长度:11.25磁道移动总磁道数:903当前磁道号大于磁道序列中的最小的磁道号且小于最大磁道号时输入磁道序列:65 78 34 23 87 100 18 26排序后的磁道序列为:18 23 26 34 65 78

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号