操作系统移动臂调度算法的实现_第1页
操作系统移动臂调度算法的实现_第2页
操作系统移动臂调度算法的实现_第3页
操作系统移动臂调度算法的实现_第4页
操作系统移动臂调度算法的实现_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京工程学院上机实验报告课程名称:操作系统实验项E名称:移动臂调度算法的实现学生班级:学生学号:学生姓名:指导教师:实验时间:实验地虫:信息楼专业机房实验成绩评定:2016-2017-1 学期、实验目的及内容掌握操作系统的设备管理功能,熟悉移动臂调度算法,设计恰当 的数据结构和算法,模拟实现移动臂调度算法。要求至少模拟实现一 种磁盘移臂调度算法。二、实验相矣知识简介磁盘移臂调度的目标就是要使磁盘访问的总时间中的寻找时间最小。因此,磁盘移臂调度要尽量减少磁盘移动臂移动的距离。磁盘 移臂 调度算法很多,常用的也有好几种,一个好的磁盘调度算法,不仅要使 磁盘寻找时间最小,同时,还要避免移动臂频繁地改

2、变移动方向,因 为频繁的改向不仅使时间增加,还容易损耗机械部件。常用的磁盘移臂调度算法有:先来先服务、最短寻找时间优先、单 向扫描、双向扫描调度算法等。三、解决问题思路及矢键程序代码分析(一)最短寻找时间优先调度算法简介最短寻找时间调度算法总是使寻找时间最短的请求最先得到服务, 跟请求者的请求时间先后顺序无尖。这种算法具有比先来先服务更好 的性能。但是该算法可能会出现请求者被“饿死”的情况,当靠近磁头 的请求源源不断地到来,这会使早来的但离磁头较远的请求长时间得 不到服务。该算法的优点是可以得到较短的平均响应时间,有较好的吞吐 量。该算法的缺点是缺乏公平性,对中间磁道的访问比较“照顾”,对两端

3、 磁道访问比较“疏远”,相应时间的变化幅度较大。该算法与 先来先服 务算法一样,都会导致移动臂频繁改向。(二)算法模拟1.对算法设计进行说明该算法的实现中,主要是选择调度处理的磁道是与当前磁头所在 磁 道距离最近的磁道,以使每次的寻道时间最短。当选择了某个离当前磁 头所在磁道最近的磁道,下一轮的当前磁道便改成了上一轮的最 近磁 道,并且把这个最近的磁道从请求序列取消,直到请求序列中不 再有请求的磁道。2尖键代码分析import import public classprivatestaticintmaxsize = 100;privatestaticintDisc =new int maxsi

4、ze ;/请求序列privatestaticintcou nt; /要访问的磁道数privatestaticintdisc ; /当前磁道号privatestaticintperTime ; 移过每个柱面需要时间privatestaticintDista nee =0; 总寻道长度privatestaticintFin dTime;/查找时间privatestaticdouble AvgDistanee; / 平均寻道长度publicSua nfa(intdisc, intcou nt, int perTime, intDisc)=cou nt;=perTime;for (int i=0;iv

5、;i+)Disci=Disci;public void input()”请输入当前磁道号:“);Scanner s1 丄 new Scanner;disc =();”请输入要访问的磁道数:“);Scanner s2 匕 new Scanner;cou nt =();”请输入移过每个柱面需要的时间:”);Scanner s3 二 new Scanner;perTime =();”请输入磁盘请求序列(以空格隔开):“);Scanner s4 二 new Scanner;for (int i=0;i< count ;i+)Disc i=();public void Delete( int ar

6、r, int n)for (int i=n;iv;i+)arri=arri+1;public void running()int j=0,count1= count;int mi n;int discc= disc ;int Discc= new int count ;while (j< count)int n um=0;min=( Disc 0>=discc)( Disc O-discc):(discc- for (int i=0;i<count1 ;i+)Disc 0);if ( Disc i>=discc; )&&( <mi n)min=(D

7、isc i<discc)&&(discc-11Disc i>=discc)(um=i;Disc i-discc):(discc-Disc i);Disccj+=Disc num;Dista nee +=min; discc= Disc num; Delete( Disc ,num); cou nt1-;AvgDistanee =( double ) Distanee/ countFindTime =perTime * Distanee "n 服务序列:”+disc +”); for (int i=0;i< count ;i+)"n 总寻道长度:”+ Distanee );”平均寻道长度:U+AvgDistanee);”寻道时间:H+FindTime +“ms”);public static void main( Str in g args)"最短寻找时间优先算法 “);Suanfa Suanfa= new Suanfa( disc , count, perTime , Disc );(); 0;四、运行结果程序的运行结果如图所示:五、体会与提高通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论