ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:79.71KB ,
资源ID:4356824      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4356824.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(磁盘调度 操作系统实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

磁盘调度 操作系统实验报告.docx

1、磁盘调度 操作系统实验报告实验一 磁盘调度算法实现一、实验目得 本课程设计得目得就是通过磁盘调度算法设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度得特点更简单明了,能使使用者加深对先来先服务算法、最短寻道时间优先算法、扫描算法以及循环扫描算法等磁盘调度算法得理解。二、实验内容系统主界面可以灵活选择某种算法,算法包括:先来先服务算法(CFS)、最短寻道时间优先算法(T)、扫描算法(AN)、循环扫描算法(CSAN)。2、1先来先服务算法( FCFS )这就是一种比较简单得磁盘调度算法。它根据进程请求访问磁盘得先后次序进行调度。此算法得优点就是公平、简单,且每个进程

2、得请求都能依次得到处理,不会出现某一进程得请求长期得不到满足得情况。此算法由于未对寻道进行优化,在对磁盘得访问请求比较多得情况下,此算法将降低设备服务得吞吐量,致使平均寻道时间可能较长,但各进程得到服务得响应时间得变化幅度较小。、最短寻道时间优先算法( )该算法选择这样得进程,其要求访问得磁道与当前磁头所在得磁道距离最近,以使每次得寻道时间最短,该算法可以得到比较好得吞吐量,但却不能保证平均寻道时间最短.其缺点就是对用户得服务请求得响应机会不就是均等得,因而导致响应时间得变化幅度很大。在服务请求很多得情况下,对内外边缘磁道得请求将会无限期得被延迟,有些请求得响应时间将不可预期。2、3 扫描算法

3、(SCAN )扫描算法不仅考虑到欲访问得磁道与当前磁道得距离,更优先考虑得就是磁头得当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择得下一个访问对象应就是其欲访问得磁道既在当前磁道之外,又就是距离最近得。这样自里向外地访问,直到再无更外得磁道需要访问才将磁臂换向,自外向里移动。这时,同样也就是每次选择这样得进程来调度,即其要访问得磁道,在当前磁道之内,从而避免了饥饿现象得出现。由于这种算法中磁头移动得规律颇似电梯得运行,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法得服务集中于中间磁道与响应时间变化比较大得缺点,而具有最短寻道时间优先算法得优点即吞吐量较大,平均响应时

4、间较小,但由于就是摆动式得扫描方法,两侧磁道被访问得频率仍低于中间磁道。2、循环扫描算法( CSCAN )循环扫描算法就是对扫描算法得改进。如果对磁道得访问请求就是均匀分布得,当磁头到达磁盘得一端,并反向运动时落在磁头之后得访问请求相对较少.这就是由于这些磁道刚被处理,而磁盘另一端得请求密度相当高,且这些访问请求等待得时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外得被访问磁道时,磁头立即返回到最里得欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。三、实验流程3、1 系统功能图图-系统功能图、 算法流程图本次实验为实现磁盘调度算法,分别

5、实现四个算法并调试。四个算法算法包括:先来先服务算法(FCF)、最短寻道时间优先算法(STF)、扫描算法(SCA)、循环扫描算法(CSCA)。四个算法得流程图分析如下。1)先来先服务算法(S)得流程图图3-先来先服务算法得流程图2)最短寻道时间优先算法(ST)得流程图图最短寻道时间优先算法得流程图3)扫描算法(CN)得流程图图-4扫描算法得流程图4)循环扫描算法(SCN)得流程图图3-循环扫描算法得流程图4、源程序clusdi、#incudstdib、hnldeosrm、h#ncludedine masiz 0*判断输入数据就是否有效*/i deide(chrstr) /判断输入数据就是否有效

6、 int i=0; while(str!=0) f(ti9) r 0;break; +; ern i;/*将字符串转换成数字*/n tran(chast,int a) /将字符串转换成数字 ini;int sum=0;fo(i=0;ia;i+) sum=sum+(nt)(stri0)*pow(10,ai); eturn um;/*冒泡排序算法*/int buble(itcia,intm) it ,j;it temp;or(i=0;i;i+) /使用冒泡法按从小到大顺序排列for(=i1;jciaoj) tep=cidai; idi=cdoj; cdaotemp; ou” 排序后得磁盘序列为:”

7、;for( i=0;i;i+) /输出排序结果 outcidaoi” ”; cotendl; return iao;*先来先服务调度算法*/oi FCFS(int iao,it m) /磁道号数组,个数为m int w;/当前磁道号 num=0; /总寻道长度 t ,i; int a;char st10;float ave; /平均寻道长度cot” 磁盘请求序列为:”; or( =0;i;+)/按先来先服务得策略输出磁盘请求序列 coutidi” ; coutend;cut 请输入当前得磁道号:; B: cinstr; /对输入数据进行有效性判断=dece(str);i(a=0) cot输入数

8、据得类型错误,请重新输入!”dl; goto B; elsno=tras(s,a); /输入当前磁道号su+ab(ciao0-ow);ou 磁盘扫描序列为:; fr( i=0;im;i+) /输出磁盘扫描序列cotcao” ;fr(i0,j=1;jm;i+,j+) /求平均寻道长度 sum+abs(ciaocao); ae=(lt)(sm)/(float)(m);cutendl; u 平均寻道长度:”aestr; /对输入数据进行有效性判断 a=deide(str);f(=0) out 输入数据得类型错误,请重新输入!enl; goto C; esnow=tran(str,);/输入当前磁道号

9、if(cidaom1=o) /若当前磁道号大于请求序列中最大者,则直接由外向内依次给予各请求服务 cout=0;-) coutcdao=ow) /若当前磁道号小于请求序列中最小者,则直接由内向外依次给予各请求服务 co”磁盘扫描序列为:; or(i=;im;+)outcidaoi ; =cdaom-1-now; f(nociao0&nociaom-1) /若当前磁道号大于请求序列中最小者且小于最大者 cou” 磁盘扫描序列为:”;he(cidaonow) /确定当前磁道在已排得序列中得位置,后面得算法都用到了,可以直接复制后少量修改,节省时间。 k+; lk-1; =k; wl(=0)&(m)

10、) /当前磁道在请求序列范围内 if(owidao)=(daor-now))/选择与当前磁道最近得请求给予服务 outidl” ; sum=nw-io; now=cidao; l=l1; else tcidaor” ; sum+=caor-now; o=iaor;r=r+1; f(l=1) /磁头移动到序列得最小号,返回外侧扫描仍未扫描得磁道 fr(r;jm;j+)ou=0;-) coutcidaoj ”; sum+=cdaom1cdao0; ae=(loat)(sum)(floa)();coundl;cout 平均寻道长度: ”avedl;/*扫描调度算法*/oid CAN(in o,int

11、 m) /先要给出当前磁道号与移动臂得移动方向 int=1;into,l,r,d; t i,j,sum=0;int a; char r100;foat ave;ido=bule(cd,m); /调用冒泡排序算法排序 cou请输入当前得磁道号:; D:cnsr; /对输入数据进行有效性判断 a=decie(tr);if(a=0) cou 输入数据得类型错误,请重新输入!ndl; goto ; else nowtran(str,a); /输入当前磁道号 if(cidaom-1=0;i) cutidaoi ”; sum=now-cida0; i(io=nw) /若当前磁道号小于请求序列中最小者,则直

12、接由内向外依次给予各请求服务,此情况同最短寻道优先 cou” 磁盘扫描序列为:”; o(=0;icidao&nwcidm-1) /若当前磁道号大于请求序列中最小者且小于最大者 ile(cdaoknow) k+; =-; rk;ot” 请输入当前移动臂得移动得方向:n”endl;cou 0:表示向内1 :表示向外: d; f(=) /选择移动臂方向向内,则先向内扫描 cut=0;j)ctcidaoj” ;输出向内扫描得序列 fo(jr;j+) /磁头移动到最小号,则改变方向向外扫描未扫描得磁道 utcidj”; /输出向外扫描得序列 sum=no2cidao0+cidom-1; lse /选择移

13、动臂方向向外,则先向外扫描 ut” 磁盘扫描序列为:;fo(;jm;j+)otcidaoj=0;j-) /磁头移动到最大号,则改变方向向内扫描未扫描得磁道 cutcidao ; sunwcidao0+2*cidom; ave=(foat)(sm)(flat)(m);ouendl;cou” 平均寻道长度: ”aveenl;*循环扫描调度算法*/vodCSCAN(int d,intm) ntk=1; int o,l,r;nt ,j,su=0;in a; har str00; foat ave; cida=buble(cao,m); /调用冒泡排序算法排序cotstr; /对输入数据进行有效性判断a

14、=decide(r); f(a=) c” 输入数据得类型错误,请重新输入!”endl; got E; els nowtrans(str,a); /输入当前磁道号 if(cidomnow) /若当前磁道号大于请求序列中最大者,则直接将移动臂移动到最小号磁道依次向外给予各请求服务 out 磁盘扫描序列为:; for(=;im;i+)cutcanow) /若当前磁道号小于请求序列中最小者,则直接由内向外依次给予各请求服务,此情况同最短寻道优先 cut 磁盘扫描序列为:;fr(i0;m;+) coucidoi”; sm=ciaom1no; i(nocidao0nidam1) /若当前磁道号大于请求序列

15、中最小者且小于最大者 cout” 磁盘扫描序列为:; while(cidaow)/单向反复地从内向外扫描 +; =k1; k;(jr;jm;+)coutciao” ”; /输出从当前磁道向外扫描得序列 or(j=0;r;j+) /当扫描完最大号磁道,磁头直接移动到最小号磁道,再向外扫描未扫描得磁道 cutcidaoj ”; sum=cidaom-1+cidao-nw-2cido0; ave(float)(sm)/(foa)(m);coen;cout 平均寻道长度:”avendl;voidmai() inta; int;/菜单项 itidamse; int i,on;cha str10;out

16、请输入磁道序列(输入结束): st; /对输入数据进行有效性判断a=decide(sr);if(a=0) cout” 输入数据得类型错误,请重新输入!”tr; /对输入数据进行有效性判断 a=ecie(st); if(a=) ut 输入数据得类型错误,请重新输入!endl;s cidaoi=trans(str,a); i+; cunt=i-1; /要访问得磁道数 cu” 输入得磁道序列为:”;f(i=0;icount;+)outidaoi”; /输出磁道序列 coutndl;while() otedl; cout” -”end; cutn1、先来先服务 2、最短寻道时间优先 3、扫描调度 4、

17、循环扫描 5、退出 nedl;cout -endl; :cutstr; /对输入数据进行有效性判断 =ecid(sr);i(a=) cut” 输入数据得类型错误,请重新输入!ndl; got F;/输入错误,跳转到F,重新输入 lc=ans(str,a); if(c=)be; if(5) cut 输入得数据错误!请重新输入ndl; oto G; swic() ce 1: /使用FFS算法FCF(cidao,ont); bre; c 2: /使用STF算法 STF(cidao,cont); brek; ase 3:/使用SA算法 SC(cidao,cou); brek; cae 4: /使用CS

18、AN算法 CSAN(cid,count);brk;5、实验结果5、1 程序主界面运行程序后,将会提示用户输入磁道序列,并且以0结束。当用户输入磁道序列后,系统将会重新显示用户输入得磁道序列。程序主界面运行图如图-1所示。图51程序主界面5、2 先来先服务算法(FCFS)运行结果选择算法之后,进入算法1得操作。系统会显示磁盘得请求序列。用户需要输入当前得磁道号,系统会显示出磁盘得扫描序列与平均寻道长度。由运行结果可得出,先来先服务算法得平均寻道长度为24、7.先来先服务算法得运行图如图52所示。图5- 先来先服务算法运行结果图、3 最短寻道时间优先算法(SST)运行结果选择算法2之后,进入算法

19、得操作.系统会显示磁盘得请求序列.用户需要输入当前得磁道号,系统会显示出磁盘得扫描序列与平均寻道长度。由运行结果可得出,先来先服务算法得平均寻道长度为0、625。最短寻道时间优先算法得运行图如图53所示.图5-3 最短寻道时间优先算法运行结果图5、 扫描算法(AN)运行结果选择算法之后,进入算法得操作。系统会显示磁盘得请求序列。用户需要输入当前得磁道号,系统会显示出磁盘得扫描序列与平均寻道长度。由运行结果可得出,先来先服务算法得平均寻道长度为1。扫描算法得运行图如图5所示。图54 扫描算法运行结果图5、5 循环扫描算法(CAN)运行结果选择算法之后,进入算法4得操作。系统会显示磁盘得请求序列。用户需要输入当前得磁道号,系统会显示出磁盘得扫描序列与平均寻道长度。由运行结果可得出,先来先服务算法得平均寻道长度为1。扫描算法得运行图如图55所示.图5-5 循环扫描算法运行结果图6、总结通过本次实验,学习了解磁盘调度四种调度算法(先来先服务算法;最短寻道时间优先算法;扫描算法;循环扫描算法)得工作原理以及四种调度算法之间得差异与共性,并且在当中发现了自己得不足,对以前所学过得知识理解得不够深刻,掌握得不够牢固,瞧到了自己得实践经验还就是比较缺乏,实践能力还需要提高。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1