磁盘调度算法的模拟

磁盘调度算法的模拟

ID:11510943

大小:89.50 KB

页数:7页

时间:2018-07-12

磁盘调度算法的模拟_第1页
磁盘调度算法的模拟_第2页
磁盘调度算法的模拟_第3页
磁盘调度算法的模拟_第4页
磁盘调度算法的模拟_第5页
资源描述:

《磁盘调度算法的模拟》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、OS实验六(软件)2010.12.11磁盘调度算法的模拟实验要求:n请分别用SCAN和SSTF模拟磁盘调度,并打印出磁盘磁道的调度顺序。n磁头的方向可以动态的规定n磁道请求个数及序列可以动态地写入n总结收获体会及对该题解的改进意见和见解(一)分析题意得模型利用数组相关知识SCAN算法:先将请求的磁道序列排序,以当前磁道号将该序列分界,根据当前磁道移动方向决定先读左边的还是先读右边的SSTF算法:先将请求的磁道序列排序,以当前磁道号将该序列分界,然后当前磁道号分别与左边、右边磁道作差比较,选作差最小

2、的,也即最短的。并修改当前磁道号及其访问位(1为已访问完,0为未访问)。(注:还要考虑左边或右边没有磁道的情况,如何确定所要与之比较的磁道)利用数组相关知识(二)写主要算法思路详见源程序及注释分类(三)调试运行(多种情况都要运行)OS实验六(软件0967020050)今日8/28/2021OS实验六(软件)2010.12.11(图SSTF1.当前磁道号在已排序的磁道请求序列中间的运行结果)(图SSTF2当前磁道号在已排序的磁道请求序列最右边的运行结果)(图SSTF2当前磁道号在已排序的磁道请求序列

3、最左边的运行结果)(四)体会OS实验六(软件0967020050)今日8/28/2021OS实验六(软件)2010.12.111.先找到问题思路,然后运用所学知识,SCAN算法用数组实现较为简单,问题不大。2.SSTF算法的情况分类需花点脑子,只需让当前磁道号分别与左边、右边磁道作差比较,用数组实现还需再加一个数组设置该磁道是否被访问,若用双向链表实现,可把已访问的磁道号释放掉,只需让当前磁道号分别与前驱、后驱磁道作差比较,用链表实现可减少用数组实现时不断去判断该磁道是否访问的时间。在这一方面,双

4、向链表实现应该会比数组实现更有效率。SCAN源代码:#includevoidmain(){intm=0,n,Seek[100],SCurrent,t,i=0,j,k,option;printf("请输入当前的磁道号:");scanf("%d",&SCurrent);printf("----1.向磁道号增加的方向访问t2.向磁道号减少的方向访问----");printf("---请选择的当前磁头移动方向(1/2):");scanf("%d",&option);printf

5、("请输入磁道请求序列(以-999结束):");scanf("%d",&n);while(n!=-999){Seek[i]=n;m++;i++;scanf("%d",&n);}/*冒泡排序使磁道请求序列从小到大排序*/for(j=0;jSeek[i+1]){OS实验六(软件0967020050)今日8/28/2021OS实验六(软件)2010.12.11t=Seek[i];Seek[i]=Seek[i+1];

6、Seek[i+1]=t;}}/*找到当前磁道号在磁道请求序列中的排序位置*/k=0;for(i=0;i=0;i--)printf("%

7、5d",Seek[i]);}/*第二种:当前磁道号先向里再向外读*/if(option==2){for(i=k-1;i>=0;i--)printf("%d",Seek[i]);for(i=k;ivoidmain(){intm=0,n,Seek[100],Flag[1

8、00],SCurrent,t,i=0,j,k,i0,j0;printf("请输入当前的磁道号:");scanf("%d",&SCurrent);printf("请输入磁道请求序列(以-999结束):");scanf("%d",&n);while(n!=-999){Seek[i]=n;m++;i++;scanf("%d",&n);}/*初始化置对应的磁道访问位为零*/for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。