磁盘调度算法实验报告 2.docx
- 文档编号:591511
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:14
- 大小:109.71KB
磁盘调度算法实验报告 2.docx
《磁盘调度算法实验报告 2.docx》由会员分享,可在线阅读,更多相关《磁盘调度算法实验报告 2.docx(14页珍藏版)》请在冰豆网上搜索。
磁盘调度算法实验报告2
磁盘调度算法
学生姓名:
学生学号:
专业班级:
指导老师:
2013年6月20日
1、实验目的:
通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的实现方法。
2、问题描述:
设计程序模拟先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的工作过程。
假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。
3、需求分析
通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的实现方法。
通过已知开始磁道数、访问磁道总数、磁道号访问序列、访问方向及访问方式得到访问序列及移动距离和平均移动距离!
(1)输入的形式;
intTrackOrder[MaxNumber];//被访问的磁道号序列
intdirection;//寻道方向
intNum;//访问的磁道号数目
intstart;//
(2)输出的形式;
intMoveDistance[MaxNumber]={0};//移动距离
doubleAverageDistance=0;//平均寻道长度
移动的序列!
(3)程序所能达到的功能;
模拟先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的工作过程。
假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。
(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。
开始磁道号:
100
磁道号方向:
内(0)和外
(1)
磁道号数目:
9
页面序列:
555839189016015038184
4、概要设计
说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
intTrackOrder[MaxNumber];//被访问的磁道号序列
intMoveDistance[MaxNumber]={0};//移动距离
doubleAverageDistance=0;//平均寻道长度
intdirection;//寻道方向
intNum;//访问的磁道号数目
intstart;//开始磁道号
5、详细设计
实现程序模块的具体算法。
6、调试分析
(1)调试过程中遇到的问题以及解决方法,设计与实现的回顾讨论和分析;
在SCAN_CSAN算法中在访问不同的数组时没有注意到上一个磁道号和要访问的磁道号的大小比较导致结果不对,后来在分析结果中找出原因。
(2)算法的性能分析(包括基本操作和其它算法的时间复杂度和空间复杂度的分析)及其改进设想;
FCFS:
时间复杂度为O
(1)空间复杂度为:
O
(1)
SSTF:
时间复杂度为O(n^2)空间复杂度为:
O
(1)
SCAN_CSAN:
时间复杂度为O(n^2)空间复杂度为:
O
(1)
7、用户使用说明
程序的使用说明,列出每一步的操作步骤。
(1)输入开始磁道号
(2)输入访问磁道号总数
(3)输入访问磁道号序列序列
(4)选择算法
(5)选择方向
(6)得出结果
8、测试结果
9、存在问题
在求移动距离时,若调用C++的库函数求绝对值会更方便!
10、心得体会
首先要明确磁盘调度的原理,画出算法流程图!
这样在解决问题时更容易!
11、附录
程序源代码:
#include
#defineMaxNumber100
voidFCFS(intTrackOrder[MaxNumber],intMoveDistance[MaxNumber],
doubleAverageDistance,intstart,intNum)
{
inti,temp=start,sum=0;
cout<<"移动顺序移动距离"< for(i=0;i { if(TrackOrder[i]>temp) MoveDistance[i]=TrackOrder[i]-temp; else MoveDistance[i]=temp-TrackOrder[i]; sum+=MoveDistance[i]; temp=TrackOrder[i]; cout< } cout< AverageDistance=sum*1.0/Num; cout<<"平均寻道长度: "< } voidSSTF(intTrackOrder[MaxNumber],intMoveDistance[MaxNumber], doubleAverageDistance,intstart,intNum) { inttemp=start,sum=0,s,count=0,min; intkind[MaxNumber]={0}; cout<<"移动顺序移动距离"< while(count { for(inti=0;i { if(kind[i]==0) { if(TrackOrder[i]>temp) min=TrackOrder[i]-temp; else min=temp-TrackOrder[i]; s=i; break; } } inttemp1; for(i=0;i { if(TrackOrder[i]>temp) temp1=TrackOrder[i]-temp; else temp1=temp-TrackOrder[i]; if(temp1 { min=temp1; s=i; } } MoveDistance[count]=min; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< kind[s]=1; count++; } cout< AverageDistance=sum*1.0/Num; cout<<"平均寻道长度: "< } voidpaixu(inta[MaxNumber],intn,intTrackOrder[MaxNumber])//从小到大排序 { intsym=0; while(sym==0) { intkind=0; for(inti=0;i { ints1=a[i]; ints2=a[i+1]; if(TrackOrder[s1]>TrackOrder[s2]) { ints=a[i+1]; a[i+1]=a[i]; a[i]=s; kind=1; } } if(kind==0) sym=1; } } voidSCAN_CSAN(intTrackOrder[MaxNumber],intMoveDistance[MaxNumber], doubleAverageDistance,intstart,intNum,intdirection,intchioce) { intsum=0; inta[MaxNumber],b[MaxNumber]; inttemp=start; inti,num1=0,num2=0; cout<<"移动顺序移动距离"< for(i=0;i { if(TrackOrder[i]>temp) { a[num1]=i; num1++; } else { b[num2]=i; num2++; } } paixu(a,num1,TrackOrder);//将数组按从小到达排序 paixu(b,num2,TrackOrder);//将数组按从小到达排序 ints; if(direction==0)//访问方向向外 { for(i=0;i { s=a[i]; MoveDistance[s]=TrackOrder[s]-temp; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } if(chioce==3)//SCAN算法 { for(i=num2-1;i>=0;i--)//再访问num2并且从后往前访问 { s=b[i]; MoveDistance[s]=temp-TrackOrder[s]; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } } else//CSAN算法 { s=b[0]; MoveDistance[s]=temp-TrackOrder[s]; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< for(i=1;i { s=b[i]; MoveDistance[s]=TrackOrder[s]-temp; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } } } else//访问方向向内 { for(i=num2-1;i>=0;i--)//先访问num2并且从后往前访问 { s=b[i]; MoveDistance[s]=temp-TrackOrder[s]; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } if(c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 磁盘调度算法实验报告 磁盘 调度 算法 实验 报告