已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告学院(系)名称:计算机与通信工程学院姓名侯超俊学号20091984专业计算机科学与技术班级2009级3班实验项目实验二:磁盘调度算法的实现课程名称操作系统课程代码0668036实验时间2011 年12月 8 日 第3、4节2011 年12月12日 第7、8节2011 年12月15日 第3、4节2011 年12月19日 第7、8节实验地点软件实验室7-219软件实验室7-219软件实验室7-219软件实验室7-215批改意见成绩教师签字: 实验内容:1 本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不同来设计磁盘的调度算法。2 实现的磁盘调度算法有FCFS,SSTF,SCAN,CSCAN和 NStepSCAN算法。3 设定开始磁道号寻道范围,依据起始扫描磁道号和最大磁道号数,随机产生要进行寻道的磁道号序列。4 选择磁盘调度算法,显示该算法的磁道访问顺序,计算出移动的磁道总数和平均寻道总数。5 按算法的寻道效率进行排序,并对各算法的性能进行分析比较。实验要求:1详细描述实验设计思想、程序结构及各模块设计思路;2 详细描述程序所用数据结构及算法;3 明确给出测试用例和实验结果;4 为增加程序可读性,在程序中进行适当注释说明;5 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6 实验报告撰写要求结构清晰、描述准确逻辑性强;7 实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】实验思想: Sort函数实现对数组的排序功能; 随机函数Rand()实现随机产生要进行寻道的磁道号序列; FCFS算法,根据进程请求访问磁盘的先后次序进行调度; SSTF算法,每次访问的磁道与当前磁头所在的磁道距离最近;SCAN算法,磁头自里向外移动,下一个访问的对象在磁道之外,又满足距离最近直至 更外的磁盘需要访问时,将磁鼻换为自外向里移动;CSCAN算法同上,磁头单向移动;NStepSCAN算法,将请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时有时按SCAN算法,对一个队列处理完后,再处理其他队列。为磁道访问的平均时间再分配一个数列,从中选取效率最高和最低的算法;实验代码:# include # include # include # define Start 10# define End 100# define N 2int a10;void init()int i;for (i=0;i10;i+)ai=rand()%End;printf(随机产生要进行寻道的磁道号序列号为:%dn,ai);printf(-nnn);void sort()int i,j,temp;for(i=0;i10;i+) for(int j=0;jaj+1) temp=aj; aj=aj+1; /大的沉底,小的上浮 aj+1=temp;float FCFS()int i,c10,sum=0;int start=Start;float avg;for (i=0;i10;i+)ci=abs(start-ai);start=ai;sum+=ci;/printf(第%d次后磁盘移动的磁道总数为%d:n,i+1,sum);printf(FCFS算法移动的磁道总数为:%dn,sum);avg=float(sum/10.0);return avg;float SSTF()int i,sum=0,c10,start=Start,temp,min;float avg;for (i=0;i10;i+)for(int j=0;j10;j+)min=abs(a0-start);if(abs(aj-start)min)min=abs(aj-start);temp=j; i=temp;ci=abs(start-ai);start=ai; sum+=ci;printf(SSTF算法移动的磁道总数为:%dn,sum);avg=float(sum/10.0);return avg;float SCAN()int i,c10,temp=0,sum=0,count=0; int start=Start;float avg; sort();i=0;while(ai10)i+;temp=i;while(start0)ci=start-ai;start=ai;sum+=ci;i-;count+;if(count=10|i0)break;printf(SCAN算法移动的磁道总数为:%dn,sum);avg=float(sum/10.0);return avg;float CSCAN()int i,c10,temp,sum=0,count=0;int start=Start;float avg;sort();i=0;while(ai10)i+;temp=i;while(start10)break;printf(CSCAN算法移动的磁道总数为:%dn,sum); avg=float(sum/10.00);return avg;float NStepSCAN()int i,c10,temp,start=Start,sum=0,number,count; float avg; if(10%N=0)number=10/N;else number = 10/N+1;for(int k=0;iN;k+)for(i=0;inumber;i+) for(int j=0;jaj+1) temp=aj;aj=aj+1; aj+1=temp;i=0;while(ai10)i+;temp=i;while(start0)ci=start-ai;start=ai;sum+=ci;i-;count+;if(count=10|i0)break;printf(NStepSCAN算法移动的磁道总数为:%dn,sum);avg=float(sum/10.00);return avg;void swit( int i)switch(i)case 0:printf(FCFSn);break;case 1:printf(SSTFn);break;case 2:printf(SCABn);break;case 3:printf(CSCANn);break;case 4:printf(NStepSCANn);break;default:exit(0);void main() int i,j;float b5,d5,temp;init();b0=FCFS();printf(FCFS算法的平均寻道数为:%3.2fn,b0);printf(*n);b1=SSTF();printf(SSTF算法的平均寻道数为:%3.2fn,b1);printf(*n);b2=SCAN();printf(SCAN算法的平均寻道数为:%3.2fn,b2);printf(*n);b3=CSCAN();printf(CSCAN算法的平均寻道数为:%3.2fn,b3);printf(*n);b4=NStepSCAN();printf(NStepSCAN算法的平均寻道数为:%3.2fn,b4);printf(*nnn);for(i=0;i5;i+) di=bi;for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中中医社团课程设计
- 彩色斑马画画课程设计
- 健康手环蓝牙模块设计课程设计
- 2026年初级经济师《金融专业知识和实务》全真模拟试卷答案(共十二套)
- 2025年山西省临汾市古县素养测评数学四年级下学期期末统考试题(含答案解析)
- 2025年教师水平能力测试题及答案
- 2025年辅警笔试考试试题库题库答案解析
- 2025年山东省德州市宁津县育新小学数学三年级第二学期期末试题含答案解析
- 2026以色列农业节水灌溉系统行业技术与市场应用现状评估报告
- 2026中国土地转让行业市场风险预警与应对策略分析报告
- 2026 年校园防诈骗安全教育课堂
- “化危为安”线上讲堂第153期-用好重大隐患判定准则 准确排查整治风险隐患-程长进
- 2026年秋新教科版五年级上册科学全册教案+教学计划
- 回复供应商询价的回复函3篇范文
- 高空作业平台倾覆现场处置方案
- 口腔颌面部感染诊疗临床应用专家共识(2025版)
- 2026年芯片设计DFT工程师高频面试题包含详细解答
- 网络传播概论(第5版)全套教学课件(完整版)
- 三宝四口五临边安全防护施工方案
- 临床肝紫癜病影像学表现
- 2026江苏法院招聘聘用制书记员202人考试参考题库及答案解析
评论
0/150
提交评论