操作系统磁盘调度算法java版_第1页
操作系统磁盘调度算法java版_第2页
操作系统磁盘调度算法java版_第3页
操作系统磁盘调度算法java版_第4页
操作系统磁盘调度算法java版_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

1、实用文档实验六磁盘调度算法1 1、实验目的通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先效劳 FCFSFCFS、最短寻道时间优先 SSTFSSTF、SCANSCAN 和循环 SCANSCAN 算法的实现方法.2 2、试验内容问题描述:设计程序模拟先来先效劳FCFSFCFS、 最短寻道时间优先SSTFSSTF、 SCASCAN N和循环SCASCAN N算法的工作过程.假设有n n个磁道号所组成的磁道访问序列,给定开始磁道号 m m 和磁头移动的方向正向或者反向,分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度.3 3、程序要求:1 1利

2、用先来先效劳 FCFSFCFS、最短寻道时间优先 SSTFSSTF、SCANSCAN 和循环 SCASCAN N算法模拟磁道访问过程.2 2模拟四种算法的磁道访问过程,给出每个磁道访问的磁头移动距离.3 3 输入: 磁道个数 n n 和磁道访问序列,开始磁道号 m m 和磁头移动方向 对SCANSCAN 和循环 SCANSCAN 算法有效 ,算法选择 1-FCFS,2-SSTF,3-SCAN1-FCFS,2-SSTF,3-SCAN,4,4-循环 SCANSCAN.4 4输出:每种算法的平均寻道长度.4 4、需求分析文案大全实用文档1 1输入的形式和输入值的范围算法选择要访问的磁道数磁道当前磁道

3、号输入当前移动臂的移动的方向第三个算法2 2输出的形式每种算法的平均寻道长度3 3测试用例先来先效劳 FCFSFCFS从100100号磁道开始?被访问的下一个磁道号移动距唐磁道数555545455S5S3 3393919191S1S212150507Z7Z1601607070150150JOJO3838112112184184146146平均寻道长度工55.55.3 3最短寻道时间优先从1010.号磁道开始被访问的下一个磁道母移动距离磁道散909010105858323255553 3393916163S3S1 11818202015015013213216016010101841842424

4、平均寻道长度1 127.27.5 5实用文档SCASCA 篥法从 1QU1QU 磁道开始.向磁道号增加方向访问被访问的下1个磁道巳移动距离?磁道数1501505D5D1601601O1O1841843434909094945858323255553 3393916163838X X18182020平均寻道长度:/7,g/7,gCSCANCSCAN从 1010.1t磁道开始,访问、向磁道号增加方向被访问的下移动距离一个磁道号磁道数15015050501601601010184184242418181661663S3S202039391 1555516165S5S3 390903232平均寻道长度

5、 1 127.527.55 5、调试分析通过对这次操作系统实验,使我懂得了操作系统磁盘调度的四种算法:先来先效劳算法FCFSFCFS、最短寻道时间优先算法SSTFSSTF、扫描算法SCANSCAN和循环扫描算法CSCANCSCAN.加深了我对这门课程的理解.锻炼了自己在考虑全局也不是细节的水平.通过这次实验,再一次熟悉并深入掌握了程序设计语言和算法设计.文案大全实用文档6 6、测试结果使用FCFST法输入112935558391890160150381844100|输出磁盘扫描序列力:555839189016015038184平均寻道长度:55.33333206176758I(2)使用SSTF

6、B法输入12|2935558391890160150381844100输出排序后的磁盘序列为工183839555890150160184磁盘扫描序列为:995855393818156160184平均寻道长度二27.55555534362793使用SCANT法(向增长方向)输入13293555839189016015038184410051|输出排序后的磁盘序列为:183839555896150160184磁盘扫描序列为:150160184905855393818平均寻道长度:27,77777862548828(4)使用SCANT法(向减少方向)输入13293555839189016015038

7、18441005目文案大全实用文档输出排序后的撤盘序列为,183839555890150160184峨盘扫描序列为二9058s639381815016.184平均寻道长度:27.55555534362793使用CSCA篥法输入2935558391890160150381844100输出排序后的磁盘序列为:183839555890150160184磁盘扫描序列为:150160184183839555890平均寻道长度:35.77777862548828|7 7、附录(java)(java)packageexperiment;importjava.io.BufferedlnputStream;im

8、portjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.util.Scanner;publicclassF_Disc_Dispatchprivatestaticintmaxsize=100;/要访问的磁道数privatestaticintcount;/磁道privatestaticintcidao=newintmaxsize;/当前磁道号privatestaticintnow;/总寻道长度privatestaticintsum=0;/平均寻道长度privatestaticdoubleAverageDi

9、stance;/当前移动臂的移动的方向(1(true)表示向外,0(false)表示向内)privatestaticbooleandirection;/算法选择/1-使用FCFSf法文案大全实用文档/2-使用SST算法/3-使用SCA酷法/4-使用CSCA算法privatestaticintoption=0;/for循环用到变量privatestaticinti;privatestaticintj;privatestaticintk;privatestaticScannerstdin;publicstaticvoidmain(String口args)throwsFileNotFoundExce

10、ption/输入数据input();/inta;switch(option)case 1:/使用FCFSf法FCFS();break;case 2:/使用SST算法SSTF();break;case 3:/使用SCAN1法SCAN();break;case 4:/使用CSCAN法CSCAN();break;/输入数据publicstaticvoidinput()throwsFileNotFoundExceptionBufferedInputStreamin=newBufferedInputStream(newFileInputStream(./file/06);System.setIn(in)

11、;stdin=newScanner(System.in);/算法选择case 5:1-使用FCFS1法case 6:2-使用SST算法/3-使用SCANT法文案大全实用文档/4-使用CSCA算法option=stdin.nextInt();/要访问的磁道数count=stdin.nextInt();/磁道for(i=0;icount;i+)cidaoi=stdin.nextInt();/当前磁道号now=stdin.nextInt();if(option=3)/输入当前移动臂的移动的方向(1表示向外,0表示向内):tryintg=stdin.nextInt();if(g=1)direction

12、=true;elsedirection=false;catch(Exceptione)/TODO:handleexceptionSystem.out.println(direction没有正确输入);return;stdin.close();/*先来先效劳调度算法*/publicstaticvoidFCFS()sum+=Math.abs(cidao0-now);System.out.print(磁盘扫描序列为:);for(i=0;icount;i+)/输出磁盘扫描序列System.out.print(cidaoi+);文案大全实用文档)for(i=0,j=1;jcount;i+,j+)求平均寻

13、道长度(sum+=Math.abs(cidaoj-cidaoi);AverageDistance=(float)(sum)/(float)(count);)System.out.println();System.out.println(平均寻道长度:+AverageDistance);)/*最短寻道时间优先调度算法*/publicstaticvoidSSTF()k=1;intl,r;bubble();/调用冒泡排序算法排序if(cidaocount-1=0;i-)System.out.print(cidaoi+);)sum=now-cidao0;)if(cidao0=now)/假设当前磁道号小

14、于请求序列中最小者,那么直接由内向外依次给予各请求效劳System.out.print(磁盘扫描序列为:);for(i=0;icidao0&nowcidaocount-1)/假设当前磁道号大于请求序列中最小者且小于最大者System.out.print(磁盘扫描序列为:);while(cidaok=0)&(rcount)/当前磁道在请求序列范围内(if(now-cidaol)=(cidaor-now)/选择与当前磁道最近的请求给予效劳(System.out.print(cidaol+);sum+=now-cidaol;now=cidaol;l=l-1;elseSystem.ou

15、t.print(cidaor+);sum+=cidaor-now;now=cidaor;r=r+1;if(l=-1)/磁头移动到序列的最小号,返回外侧扫描仍未扫描的磁道for(j=r;j=0;j-)System.out.print(cidaoj+);sum+=cidaocount-1-cidao0;AverageDistance=(float)(sum)/(float)(count);System.out.println();System.out.println(平均寻道长度:+AverageDistance);/*/publicstaticvoidSCAN()/k=1;intl,r;bubb

16、le();/调用冒泡排序算法排序if(cidaocount-1=0;i-)System.out.print(cidaoi+);扫描调度算法先要给出当前磁道号和移动臂的移动方向假设当前磁道号大于请求序列中最大者,那么直接sum=now-cidao0;if(cidao0=now)/假设当前磁道号小于请求序列中最小者,那么直接由内向外依次给予各请求效劳,此情况同最短寻道优先System.out.print(磁盘扫描序列为:);for(i=0;icidao0&nowcidaocount-1)/假设当前磁道号大于请求序列中最小者且小于最大者while(cidaok=0;j-)System.out

17、.print(cidaoj+);/输出向内扫描的序列for(j=r;jcount;j+)/磁头移动到最小号,那么改变方向向外扫描未扫描的磁道System.out.print(cidaoj+);/输出向外扫描的序列sum=now-2*cidao0+cidaocount-1;else/选择移动臂方向向外,那么先向外扫描System.out.print(磁盘扫描序列为:);for(j=r;j=0;j-)/磁头移动到最大号,那么改变方向向内扫描未扫描的磁道文案大全实用文档(System.out.print(cidaoj+);)sum=-now-cidao0+2*cidaocount-1;)Averag

18、eDistance=(float)(sum)/(float)(count);System.out.println();System.out.println(平均寻道长度:+AverageDistance);)/*循环扫描调度算法*/publicstaticvoidCSCAN()k=1;intl,r;bubble();/调用冒泡排序算法排序if(cidaocount-1=now)/假设当前磁道号大于请求序列中最大者,那么直接将移动臂移动到最小号磁道依次向外给予各请求效劳System.out.print(磁盘扫描序列为:);for(i=0;i=now)/假设当前磁道号小于请求序列中最小者,那么直接由内向外依次给予各请求效劳,此情况同最短寻道优先System.out.print(磁盘扫描序列为:);for(i=0;icidao0&nowcidaocount-1)/假设当前磁道号大于请求序列

温馨提示

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

评论

0/150

提交评论