版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统课程设计题目名称仿真各种磁盘调度算法学院计算机学院专业软件工程班 别12级4班学号3112006291姓名林炳城指导教师丁国芳2015年6月27日仿真各种磁盘调度算法,并进行性能分析一、设计目的设计四个算法 ,分别是 先来 先服务算法,最短 寻道时间 优先算法 , 扫描(SCAN)算法,循环扫描(CSCAN)算法。由人工输入当前的磁道数和要访问 的磁道。二、设计原理先来先服务算法(FCFS):公平,简单,每个进程的请求都能依次得到处理。 没有对寻道优化,平均寻道时间长。最短寻道时间优先算法 (SSTF) :要求访问的磁道是当前磁头所在的磁道最 近,每次寻道时间最短, 但不能保证平均寻道
2、时间最短。 可能导致一些请求无限 期推延,产生饥饿现象。扫描算法(SCAN):不仅考虑当前磁道的距离,优先考虑在磁道前进方向 的最短时间,排除磁头在盘面上的往复运动,避免了出现“饥饿”现象。电梯原 理。循环扫描算法(CSCAN):是SCAN勺改良。磁头改变方向时,以到达请求服务的最短时间。对中间请求服务更有利,同时消除了对两端请求的不公平。三、实验环境与工具( 1)计算机及操作系统: PC 机, Win8.1( 2)程序设计语言: java( 3)编译程序: eclipse四、算法流程图先来先服务算法(FCFS):最短寻道时间优先算法(SSTF)结束结束扫描算法(SCAN):循环扫描(CSCA
3、N算法开始输入磁道号使用冒泡法对磁道号从小到大排序输入当前磁道号判断当前磁头在序列中的位置根据磁头在序列中的位置方向,开芋选择移动臂移动 始扫描r移动到最小(大)号,改向外(内)移动扫 描未扫描的磁道规定移动臂单向反复的从内向外扫描1r求平均寻道长度结束移动到最小(大)号,改向外(内)移动扫 描未扫描的磁道结束五、测试程序结果:测试数据:访问磁道一20访问磁道二50访问磁道三30当前的磁道数40一次输入要访问的磁道数以及当前的磁道数I操作系统课程设计仿真各种晞盘调度算法 软样工程3班|3112006291I林炳城青输入要访问骼盅道决對:输入要访口1的83道:oi20编入喪访冋的晞道;11输入要
4、访冋餉确道:513 0编人当前遊头所柱対应追号:先来失;服务(冗FS杲矩寻道时间优先(SSTT) 乞、*弓描算法 3匸顷 S循痢=|揃 C5C1N Q、退出程序 青选择算:去:选择一:先来先服务算法(FCFS):得到的访问顺序以及平均寻道长度为1、先来先服务 FCFS )“最矩寻道时间优先5STE)3扫描算建 (5CAN)弓、擔环扫描Ccscan)S退岀程序请选择鼻法:第01次访冋的道数:20移动距罔:20第11次访问的道数:50摻动距&X30第2丄次访问的道藪! 30=移动距:20平均寻道长度为:23.333333333533332选择二:最短寻道时间优先(SSTF)得到的访问顺序以
5、及平均寻道长度为先来先服务FCFS) 2.最世寻道时间优先CSSTF)3扫描算法(5GAN)弓、循环扫描G5CAN)S退出程序请选:第工次谊冋的道数:S0-移动距高:10第2坎谊问的道数!30=移劲距®:20 第斂巧问的道数也一移动距禽注。平均寻道长度;13.33333333333333 选择三:扫描算法(SCAN):分别采用移动臂向里和移动臂向外,得到的访问顺序 以及平均寻道长度为1、先来先服务(比咋)2.最短寻道时间优先(SSTF)3扫描算法SCAN) q、循环扫描(CSCAN)Os退出程序谴逸择算送;扫描算法移动臂由里冋外芜移动臂由外向里口返回上一层请输入你的选扌呈;幽二攵访冋
6、的道数沽穆动距萄" 第2次访问的道£4:30=霧动距离:20 第勺尖阪问的道数ME“移动距离:8 平均寻道长度:23.33333333333333扫1 移勿臂由里冋夕卜全移动臂由外向里 返回上一层请输入佩的选扌圣:第1次访问的道数:30=移动距离:10 第2坎访问的道:20移动距离:L0 第披丙问的道 = 50 霧动距离3 平均寻道长度;1石6机时師机徒価钳选择四:循环扫描算法(SCAN):分别采用由里向外和由外向里都得到的结果由里向外1、先来先服势FCFS)4 扫擋算注 (.scan) 0退出程序 请选择算法:2、最短寻道时间优先5STF)哎、循环扫描(CSCA1T)1-
7、 移动由里向外2- 穆动由外向里 输入隹择第01皮访冋的道数;5F-移动距罔:工0第11次访问的道数:20“移动距:30第21次谊问的lSi:30-移动距离注D平均寻道长度:1. 65666666656666Si=L =三=:=三=一":三三J=M=L =.=;=: = =二=由外向里1.先来先服务丘® “最短寻道时间优先(S5TF)3 k扫描章法(SCA2T) J 循环扫描(CSCAX)0.退出程瘁谓送择算法:1. 移动由里向外2. 孩动由外向里谕入搖择罷01次彷冋的il:3O 穆动距S:1O第11;%问的道数:20=移动距S :20第2“久访问的道数:SO移动距S :1
8、0平均寻道长度:六、性能分析:从测试结果得到的访问顺序与预期的结果一致,并且经计算从中求出移动距离以及平均寻道长度都正确,符合要求。这次课设我是用数组来实现的。 从实验 的结果得到的数据中也可以看出,光是访问三次磁道,得到的平均磁道数就各不 相同,当用户访问的磁道次数频繁且不一致时, 好的磁道访问算法才能加快磁道 访问的速度。七、课设感想从这次课程设计中学到了磁盘的调度算法,以及如何利用各个算法来各/*种需求的功能,锻炼了自己的编码能力,觉得自己受益良多八、附录:(源码以及详细注释)for (i = 0; i < n; i+) * 先来先服务算法System. out .println(
9、"第*authorLinBin gche ng"+ i + 1 +"次访问的道数:"+ bi +II移动距离:"*/+ Math. abs (s -publicclass FCFS bi);publicstaticvoidexecate( intsum += Math.abs (s -a,int n,int k) /bi);/ Math.abs函数取绝对值,再求和inti, s, sum = 0;s = ai;intb =newint 100;for(i = 0; i < n; i+)System. out .println("
10、平均寻/ 将数组a内容复制到另道长度为:"+ sum * 1.0 / n);一个数组存放System. out .println();bi = ai;s = k; / k表示当前的磁道=" );道长度: " + sum * 1.0 / n);System. out .println();System. out .println("" );JSystem.out .println( "=/*I!);*最短寻道优先算法*author LinBingcheng*/*/*扫描算法 -磁道由里向外public class SSTF *autho
11、rLinBingchengpublic static voidexecate( int*a,int n, int k) /*/int i, j, sum = 0, p, spublic classSCAN1 int b = newint 100;for(i = 0; i < n; i+)publicstaticvoid execate( int/ 将数组 a内容复制到另a, int n,int k) /一个数组存放inti, j, sum =0, flag, s,bi = ai;p = 0;for(i = n - 1;i >=0; i-)intb =new int 100;/ 找出
12、与磁头最近的磁道号for(i = 0; i <n; i+)/ 将数组 a 内容复制到另s = b0;一个数组存放p = 0;bi = ai;for (j = 0;j <=i; j+)for(i = n- 1; i >= 0; i-)if (Math.abs(k -bj) < Math.abs (k - s)/求最短的flag = 0;移动距离for (j= 0; j <= i; j+)/找到比当前磁头所在s = bj;磁道大的磁道号p = j;if(bj - k > 0) flag = 1;bp = bi;/将入已被p = j;访问的磁道号的位置转存为未被访
13、问的磁道 break数System. out .println( " 第 " + new Integer(n - i) +" 次访问的道数:" + s+ "= 移动距离 :" + Math.abs (k - s);s = bp;sum += Math. abs (k - s);for (j = 0; j <= i;k = s; / 记录新的当前磁道j+)的位置if (bj > k &&if (flag = 1)/ 找到比当前磁头所在磁道大且又是距离最近的磁道 号,磁臂由里向外移动访问磁道bj - k <
14、; s - k) System. out .println(" 平均寻s = bj;p = j;/*System. outbp = bi;.println(" 第 " +newInteger(n - i) +" 次访问的道数 :"+ s*扫描算法- 磁道由外向里+ "=移动*authorLinBingcheng距离 :" + Math.abs (k - s);*sum += Math. abs (s -*/k = s; / ifelse / 磁头由里向外访问直 至再无更外磁道需要访问, 磁臂换向为由外向 里移动s = b0;
15、for (j = 0; j <= i;j+)if (k - bj <= k- s) s = bj;p = j; / ifbp = bi; / 将未 被访问的磁道号移入已被访问的磁道号的位 置System. out .println(" 第 " + newInteger(n - i) +" 次访问的道数 :" + s+ "= 移动 距离 :" + Math. abs (k - s);sum += Math. abs (s - k);k = s; / elseSystem. out .println(" 平均寻道长度
16、: " + sum * 1.0 / n);System. out .println("" );publicstatic voidexecate( inta,int n,int k) /inti, j, sum =0, p = 0, s,flag;intb = newint 100;for(i = 0; i < n; i+)/ 将数组 a内容复制到另一个数组存放bi = ai;for(i = n - 1;i >= 0; i-)flag = 0;for (j = 0; j <= i; j+)/ 找到比当前磁头所在 磁道小的磁道号if (k - bj
17、> 0) flag = 1; p = j; break ;if (flag = 1) / 找到比 当前磁头所在磁道小且又是距离最近的磁道 号,磁臂由外向里移动访问磁道s = bp;for (j = 0; j <= i;j+)if (bj < k && k- bj < k - s) s = bj;p = j;k); public class SCAN2 System. out .println(I!I!);bp = bi;( "resource" )newSystem. out .println(" 第 " + ne
18、wInteger(n - i) + " 次访问的道数 :" + s + "= 移动 距离 :" + Math. abs (k - s);sum += Math. abs (s - k);k = s;else / 磁臂有外向里访问直 至再无更内磁道需要访问, 磁臂换向为由里向 外移动s = b0; for (j = 0; j <= i;* 循环扫描算法* author LinBingcheng*/import java.util.Scanner;public class CSCAN public static void execate( int a,
19、 int n, int k) /SuppressWarningsScanner scanner =Scanner(System. in );int i, j, sum, temp, s, select, flag = 0;j+)if (bj<=int b = new int 100; s = k;- k) fors = bj; p = j;一个数组存放(i = 0; i < n; i+)/ 将数组 a 内容复制到另bp = bi;/被访问的磁道号移入已被访问的磁道号的位 置将未排序forbi = ai;(i = 0; i < n - 1; i+) 冒泡法将磁道号由小到大/fo
20、r(j = 0; j < n - i -Integer(n- i) +" 次访问的道数 :" + s+ "= 移动if(bj > bj +1)距离 :"+ Math.abs (k - s);temp = bj;sum += Math. abs (s -bj = bj + 1;k);bj + 1 = temp;k = s;System.out.println( "1.移System.out .println( " 平均寻动由里向外 " );道长度:" + sum *1.0 / n);System.out.
21、println( "2.移System.out .println( "" );动由外向里 " );System.out.println( " 输入选System. out.println( "=择 " );=" );select =scanner.nextInt();if (select=1) " 第 " +1; j+)System. out.println(newsum = 0;for (i = 0; i < n; i+)/ 找到已排序磁道中第一个大于等于当然磁头所在位置的磁道号if (
22、k <= bi) flag = i; break ;for (i = flag, j = 0; i< n; i+, j+)/ 磁臂由里向外移动访问System. out .println( " 第 " + j + 1 + " 次访问的道数 :" + bi+ "= 移动 距离 :" + Math. abs (k - bi);sum += Math. abs (k - bi);k = bi;for (i = 0; i < flag; i+, j+) / 磁臂循环由里向外访问剩余的磁道System. out .printl
23、n( " 第 " + j + 1 + " 次访问的道数 :" + bi+ "= 移动 距离 :" + Math. abs (k - bi);sum += Math. abs (k - bi);k = bi;System. out .println(" 平均寻道长度: " + sum * 1.0 / n);System. out .println("" );System. out .println("=" );if (select = 2) sum = 0;for (i = 0
24、; i < n; i+)/ 找到已排序磁道中第一个大于等于当然磁头所在位置的磁道号if(s < bi) flag = i;break ;for(i= flag - 1, j = 0;i >= 0; i-, j+)/ 磁臂先由外向里移动访问System.out.println(" 第 " + j + 1+ " 次访问的道数 :" + bi+ "= 移动 距离 :" + Math. abs (k - bi);sum += Math. abs (s - bi);s = bi;for (i = n - 1; i >=
25、flag;i-, j+)/ 磁臂循环由外向里访问剩余的磁道System. out .println(" 第 " + j + 1+ " 次访问的道数 :" + bi+ "= 移动 距离 :" + Math. abs (k - bi);sum += Math.abs (s -bi);s = bi;System. out .println( " 平 均寻道长度: " +sum * 1.0 / n);System. out .println("" );System. out .println("
26、;=" );import java.util.Scanner;* 主函数* author LinBin gche ngSystem.前磁头所在的磁道号:out .println(");"输入当*k = sca nner.n extI nt();*/System.out .println("");publicclass Main p=1;public staticvoidmain( Stri ngwhile (p !=0)args) Scanner scanner =newSystem.out .println("1、先Scanner(System.in );来先服务(FCFS)2 、最短寻道时间优System. out .println("1先(SSTF)");out .println(no土二I|System.3、扫=|");描算法 (SCAN)4、循环扫描(CSCAN)System.out .println("");|操作系统课程设计System.out .println("0、退|");出程序" )JSystem. out .println(&qu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 支部联谊活动方案
- 教学能力提升课程设计
- 教学实践课程设计
- 教写诗的教学课程设计
- 教学质量监控工作总结
- 故事场景写作特色课程设计
- 政府值班补贴方案
- 放油螺栓剖面图课程设计
- 放大电路的课程设计
- 8-12、党支部联系服务党员和干部职工制度
- 膨化食品生产的国家法规与标准要求解读
- 2023年小学世界湿地日主题班会课件
- 统编版小学语文三年级上册第五单元教材分析
- 孙燕姿所有歌曲歌词大全(11张专辑)
- 百万英镑英语剧本
- 云数据中心迁移解决方案
- 江苏省扬州市四年级上学期语文期中试卷A(含答案)
- 初中化学项目式教学的实施策略探究
- 辽宁省重点高中沈阳市郊联体2023-2024学年高一上学期10月月考地理试题
- (2023版)小学语文三年级上册全册单元同步训练及期中期末测试合集(含答案)【可编辑修改】
- 云计算管理项目验收方案
评论
0/150
提交评论