天津理工大学操作系统实验3:磁盘调度算法地实现_第1页
天津理工大学操作系统实验3:磁盘调度算法地实现_第2页
天津理工大学操作系统实验3:磁盘调度算法地实现_第3页
天津理工大学操作系统实验3:磁盘调度算法地实现_第4页
天津理工大学操作系统实验3:磁盘调度算法地实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、式和大吟实验报告学院(系)名称: 计算机与通信工程学院姓名王远志学号20135632专业计算机科学与技术班级2013级3班实验项目实验二:磁盘调度算法的实现课程名称操作系统课程代码0668036实验时间2015年12月11日第5-8节实验地点软件实验室7-219批改意见成绩教师签字:实验内容:1. 本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不冋来设计磁盘的调度算法。2. 实现的磁盘调度算法有 FCFS, SSTF, SCAN , CSCAN和NStepSCAN算法。3. 设定开始磁道号寻道范围,依据起始扫描磁道号和最大磁道号数,随机产生要进行寻道的磁道号序 列。4. 选择磁盘调度算

2、法,显示该算法的磁道访问顺序,计算出移动的磁道总数和平均寻道总数。5. 按算法的寻道效率进行排序,并对各算法的性能进行分析比较。实验要求:1详细描述实验设计思想、程序结构及各模块设计思路;2. 详细描述程序所用数据结构及算法;3. 明确给出测试用例和实验结果;4. 为增加程序可读性,在程序中进行适当注释说明;5. 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6. 实验报告撰写要求结构清晰、描述准确逻辑性强;7. 实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】#in clude#in clude#in clud

3、eusing n amespace std;const int MaxNumber=100;/-移动距离;/-寻好序列。-平均寻道长度/ 方向true时为向外,false为向里/-开始磁道号。/-磁道数。/-提出磁盘I/O申请的进程数II排序后的序列int TrackOrderMaxNumber; int MoveDista nceMaxNumber;int Fin dOrderMaxNumber; double AverageDista nee; bool direct ion;int Begi nNum;int M;int N;int SortOrderMaxNumber;bool Fi

4、ni shedMaxNumber;void In ith()cout请输入磁道数:;ci nM;cout请输入提出磁盘I/O申请的进程数ci nN;cout请依次输入要访问的磁道号:;for(i nt i=0;i TrackOrderi;for(i nt j=O;jN;j+)MoveDista ncej=0;cout Begi nNum;for(int k=0;kN;k+)Fini shedk=false;for(i nt l=0;l=0;i-)for(i nt j=0;jSortOrderj+1)temp=SortOrderj;SortOrderj=SortOrder|j+1;SortOrd

5、erj+1=temp;=FCFS,先来先服务=void FCFS()int temp;temp=BeginNum;/将BeginNum 赋给temp作为寻道时的当前所在磁道号for(i nt i=0;iN;i+)MoveDista ncei=abs(TrackOrderi-temp);/计算移动磁道数temp=TrackOrderi;/寻到后,将此道作为当前所在磁道号,赋给tempFin dOrderi=TrackOrderi;/寻好的赋给寻好序列=SSTF,最短寻道法=void SSTF()int temp ,n;II将BeginNum赋给temp作为寻道时的当前所在磁道int A=M; t

6、emp=Begi nNum;号for(i nt i=0;iN;i+)for(i nt j=O;jN;j+)II寻找最短的寻道长度if(abs(TrackOrderj-temp)A&Fini shedj=false)A=abs(TrackOrderj-temp); n=j;else con ti nue;Fini shed n=true;MoveDista ncei=A; temp=TrackOrder n; A=M;精彩文档II将已经寻找到的Finished赋值为trueII寻道长度II-当前寻道号。II-重置A值Fin dOrderi=TrackOrder n;/-寻好的赋给寻好序列=SCA

7、N,扫描算法=void SCAN()int m,n, temp;temp=Begi nNum;Sort();/排序cout请选择开始方向:1-向外;0-向里;/-选择扫描方向cinm;if(m=1)direct ion=true;else if(m=0)direct ion=false;elsecout输入错误;for(i nt i=0;iN;i+)if(SortOrderiBegi nNum)con ti nue;elsen=i;break;/选择向外if(direct ion=true)for(int i=n;i=O;j-)MoveDista nceN-1-j=abs(SortOrderj

8、-temp); temp=SortOrderj;Fin dOrderN-1-j=SortOrderj;选择向里else/for(int i=n-1;i=0;i_)MoveDista nceN-i-4=abs(SortOrderi-temp); temp=SortOrderi;Fin dOrderN-i-4=SortOrderi;for(i nt j=n ;jN;j+)MoveDista ncej=abs(SortOrderj-temp); temp=TrackOrderj;Fin dOrderj=SortOrderj;=CSCAN,循环扫描算法=void CSCAN()int m,n, tem

9、p;temp=Begi nNum;Sort();cout请选择开始方向:1-向外;0-向里;cinm;if(m=1)direct ion=true;else if(m=0)direct ion=false;elsecout输入错误;for(i nt i=0;iN;i+)if(SortOrderiBegi nNum)con ti nue;elsen=i;break;if(direct ion=true)for(int i=n;iN;i+)MoveDista ncei-n=abs(SortOrderi-temp); temp=SortOrderi;Fi ndOrderi-n=SortOrderi;

10、for(i nt j=O;j =0;i_)MoveDista ncen-1-i=abs(SortOrderi-temp);temp=SortOrderi;Fin dOrder n-1-i=SortOrderi;for(i nt j=N-1;j=n ;j-)MoveDista nceN-j+n-1=abs(SortOrderj-temp); temp=SortOrderj;Fin dOrderN-j+n-1=SortOrderj;/=计算平均寻道时间= void Cou nt()int Total=0;for(i nt i=0;iN;i+)Total+=MoveDista ncei;Averag

11、eDista nce=(double)Total)/(double)N); void Show()e ndl;cout= 从BeginNum号磁道开始= coutsetw(20)被访问的下一个磁道号 setw(20)移动距离(磁道数)endl; for(i nt i=0;iN;i+)coutsetw(15)Fi ndOrderisetw(15)MoveDista nceie ndl;coutsetw(20)平均寻道长度:AverageDistanceendl; coute ndl;int mai n()int y=1;int s;In ith();while(y)cout s;switch(s

12、)case 1:FCFS();Cou nt();Show();break;case 2:SSTF();Co un t();Show();break;case 3:SCAN();Cou nt();Show();break;case 4:CSCAN();Co un t();Show();break;cout p;y=p;return 0;实验结果:FCFS方式:被访问的下一个磁道号322727272727Sstf方式:尾否继续选择寻道算法? 1是;2否1春选择寻道方式;1FCFS; 2SSTF; 3SCAN; 4CSCSN; 2 =从 40 号进道开 iq= 移动距离(磁道数)656666平均寻道长度:5. 83333SCAN方式: C;U 5er5Sol d i erDocu m entwdev c+十厲件盏统实验三.exe般访问的下一个磁道号移动距离(磁道数)2054175451FCFS; 2SSTF; 3SCAN;4CSCSN;3 请选擡开始方向;

温馨提示

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

评论

0/150

提交评论