版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大洋球,大殍实验报告学院(系)名称: 计算机与通信工程学院姓名王远志学号专业计算机科学与技术班级2013级3班实验项目实验二:磁盘调度算法的实现课程名称操作系统课程代码实验时间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 .实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】#include<iostream>#include<i
3、omanip>#include<math.h>using namespace std;const int MaxNumber=100;/ 移动距离;int TrackOrderMaxNumber;int MoveDistanceMaxNumber;intFindOrderMaxNumber;double AverageDistance;bool direction;int BeginNum;int M;int N;int SortOrderMaxNumber;/ 寻好序列。/ 平均寻道长度/方向true时为向外,false为向里/开始磁道号。/ 磁道数。/ 提出磁盘I/O 申
4、请的进程数/ 排序后的序列bool FinishedMaxNumber;void Inith()cout<<" 请输入磁道数:"cin>>M;cout<<" 请输入提出磁盘I/O 申请的进程数cin>>N;cout<<" 请依次输入要访问的磁道号:"for(int i=0;i<N;i+)cin>>TrackOrderi;for(int j=0;j<N;j+)MoveDistancej=0;cout<<" 请输入开始磁道号:"cin
5、>>BeginNum;for(int k=0;k<N;k+)Finishedk=false;for(int l=0;l<N;l+)SortOrderl=TrackOrderl;/= 排序函数,将各进程申请的磁道按从小到大排列=void Sort() / 冒泡排序int temp; for(int i=N-1;i>=0;i-)for(int j=0;j<i;j+) if(SortOrderj>SortOrderj+1) temp=SortOrderj;SortOrderj=SortOrderj+1;SortOrderj+1=temp;) )/=FCFS,
6、先来先服务=void FCFS() (int temp;temp=BeginNum;/将BeginNum 赋给temp作为寻道时的当前所在磁道号for(int i=0;i<N;i+)(MoveDistancei=abs(TrackOrderi-temp);/计算移动磁道数temp=TrackOrderi;/寻到后,将此道作为当前所在磁道号,赋给tempFindOrderi=TrackOrderi;/寻好的赋给寻好序列) )/=SSTF,最短寻道法= void SSTF() (int temp,n;int A=M;temp=BeginNum;/将BeginNum赋给temp作为寻道时的当前
7、所在磁道号for(int i=0;i<N;i+)( for(int j=0;j<N;j+)/寻找最短的寻道长度(if(abs(TrackOrderj-temp)<A&&Finishedj=false) ( A=abs(TrackOrderj-temp);n=j;)else continue;)Finishedn=true;/将已经寻找到的 Finished 赋值为 trueMoveDistancei=A;/寻道长度temp=TrackOrdern;/当前寻道号。A=M;/重置A值FindOrderi=TrackOrdern;/-寻好的赋给寻好序列)/=SCAN
8、,扫描算法= void SCAN()(int m,n,temp;temp=BeginNum;Sort();/排序cout<<”请选择开始方向:1-向外;0-向里"/选择扫描方向cin>>m;if(m=1)direction=true;else if(m=0)direction=false;elsecout<<"输入错误"for(int i=0;i<N;i+)(if(SortOrderi<BeginNum)continue;else(n=i;break;)if(direction=true)/选择向夕卜(for(int
9、 i=n;i<N;i+)(MoveDistancei-n=abs(SortOrderi-temp);temp=SortOrderi;FindOrderi-n=SortOrderi;)for(int j=n-1;j>=0;j-)(MoveDistanceN-1-j=abs(SortOrderj-temp);temp=SortOrderj;FindOrderN-1-j=SortOrderj;)else/选择向里for(int i=n-1;i>=0;i-)(MoveDistanceN-i-4=abs(SortOrderi-temp);temp=SortOrderi;FindOrde
10、rN-i-4=SortOrderi;for(int j=n;j<N;j+)(MoveDistancej=abs(SortOrderj-temp);temp=TrackOrderj; FindOrderj=SortOrderj;/=CSCAN,循环扫描算法= void CSCAN() (int m,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1-向外;0-向里"cin>>m;if(m=1)direction=true;else if(m=0)direction=false;elsecout<<
11、"输入错误"for(int i=0;i<N;i+)(if(SortOrderi<BeginNum)continue;else(n=i;break;if(direction=true)(for(int i=n;i<N;i+)MoveDistancei-n=abs(SortOrderi-temp);temp=SortOrderi;FindOrderi-n=SortOrderi;for(int j=0;j<n;j+)(MoveDistanceN-n+j=abs(SortOrderj-temp);temp=SortOrderj;FindOrderN-n+j=
12、SortOrderj;else(for(int i=n-1;i>=0;i-)(MoveDistancen-1-i=abs(SortOrderi-temp);temp=SortOrderi;FindOrdern-1-i=SortOrderi;for(int j=N-1;j>=n;j-)(MoveDistanceN-j+n-1=abs(SortOrderj-temp);temp=SortOrderj;FindOrderN-j+n-1=SortOrderj;/=计算平均寻道时间=void Count()(int Total=0;for(int i=0;i<N;i+)(Total+=
13、MoveDistancei;AverageDistance=(double)Total)/(double)N); void Show()(cout<<"= 从"<<BeginNum<<”号磁道开始="<<endl;cout<<setw(20)<<"被访问的下一个磁道号 "<<setw(20)<<"移动距离(磁道数)"<<endl;for(int i=0;i<N;i+)cout<<setw(15)<
14、;<FindOrderi<<setw(15)<<MoveDistancei<<endl;cout<<setw(20)<<" 平均寻道长度:"<<AverageDistance<<endl;cout<<endl;int main()int y=1;int s;Inith();while(y)cout<<" 请选择寻道方式:1-FCFS; 2-SSTF; 3-SCAN;4-CSCSN;"cin>>s;switch(s)case 1:F
15、CFS();Count();Show();break;case 2:SSTF();Count();Show();break;case 3:SCAN();Count();Show();break;case 4:CSCAN();Count();Show();break;cout<<" 是否继续选择寻道算法?1-是;2-否 "int p;cin>>p;y=p;return 0;实验结果:FCFS 方式:移动距离(磁道数)656666Sstf方式:是否继续选择寻道算法? 1一是;2否1青选择寻道方式;1FCFS; 2SSTF; 3 SCAJI: 4CSCSN; 2 =从 40 号磁道开始= 减访问的下一磁道号222727272727平均寻造长度5 83333SCAN方式:' C:U? ers&o I d ierDo cu mentAd r什+避咋系统实盘三房其片请选择再道方式JiFCFS; 2一£STF; WS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小型国企考勤制度
- 小学教师绩效考勤制度
- 2026年兰州外语职业学院单招职业倾向性考试题库带答案详解(能力提升)
- 2026年内蒙古北方职业技术学院单招职业倾向性测试题库及参考答案详解1套
- 2026年兰州石化职业技术学院单招职业技能考试题库附答案详解(突破训练)
- 2026年内蒙古化工职业学院单招职业倾向性测试题库含答案详解(突破训练)
- 2026年内蒙古科技职业学院单招职业技能考试题库附答案详解(达标题)
- 2026年内蒙古伊克昭盟单招职业倾向性考试题库带答案详解(达标题)
- 2026年兰州资源环境职业技术大学单招职业技能测试题库附答案详解ab卷
- 2026年南阳科技职业学院单招综合素质考试题库及答案详解(新)
- 营养与食品安全试题(附答案)
- 苏联的三次改革
- 斐波那契数列与黄金分割+课件-2025-2026学年高二上学期数学人教A版选择性必修第二册
- 地球的公转与四季成因-七年级地理上册教学设计
- 2026年医疗机构医德医风测试题及解析
- 深化数字化教学管理平台与学校招生就业工作的融合创新研究教学研究课题报告
- 2025高二英语冲刺卷
- 留学行业分析和市场分析报告
- 2025-2030中国激光切割行业市场竞争力深度解析及行业未来发展方向与前景规划报告
- 餐厅临时工作人员培训教材
- 社区工作者岗前培训
评论
0/150
提交评论