操作系统原理课程设计

操作系统原理课程设计

ID:23585861

大小:111.00 KB

页数:8页

时间:2018-11-09

操作系统原理课程设计_第1页
操作系统原理课程设计_第2页
操作系统原理课程设计_第3页
操作系统原理课程设计_第4页
操作系统原理课程设计_第5页
资源描述:

《操作系统原理课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、操作系统原理课程设计——扫描SCAN算法一、实验目的与实验项目介绍本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。扫描SCAN算法是磁盘调度的一种重要方法,本实验要求用高级语言编写和调试一个简单的扫描SCAN算法程序。加深了解有关磁盘调度的概念,并体会和了解扫描SCAN算法的具体实施方法。扫描SCAN算法:SCAN算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动

2、时,SCAN算法所考虑的是下一个访问对象,应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向为自外向里移动。这时,同样也是每次选择这样的进程来调度,即要访问的磁道在当前位置距离最近者,这样,磁头又逐步地从外向里移动,直至再无更里面的磁道要访问,从而避免了出现“饥饿”现象。由于在这种算法中磁头移动的规律颇似电梯的运行,因而又常称之为电梯调度算法。二、实验项目方案设计①确定扫描SCAN算法中的数据结构n用来记录申请访问的磁道总数,f用来记录当前的磁道号,y用来表示当前的磁臂的移动方向,数组a[i]用来

3、存放磁道号。②算法实现先初始化请求访问的磁道号,通过冒泡法sort函数对这些磁道号排序,接着确定当前的磁臂的移动方向,最后调用left函数来遍历磁道,决定磁道访问顺序。③模块间调用关系本程序的主要函数模块为:voidversion()//输出实验的一些相关内容voidsort(inta[],intn)//为申请访问的磁道号排序intleft(inta[],intn,intf,inttemp)//确定要访问的磁道序列intmain()//主函数其中主函数中调用了voidversion(),voidsort(inta[],intn),intleft(inta[],

4、intn,intf,inttemp)函数模块。三、实验实施步骤 I绘制程序流程图开始输入n输入f扫描SCAN算法程序流程图如下:调用sort()输入y调用left()打印结果后退出假真I<=n?输入a[i]II编写代码,代码清单如下#include#include#include//显示版权信息函数voidversion(){cout<

5、<"操作系统之扫描SCAN算法"<

6、>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}printf("输入的磁道排序为");for(i=1;i<=n;i++)printf("%d",a[i]);printf("");}intleft(inta[],intn,intf,inttemp)//left函数用于判断下一个要访问的磁道{intsum=0,i=1,t;while(i

7、;printf("从%d磁道开始,向磁道号增加方向访问序列如下:",f);while(i<=n)//磁臂向外移动{intc=0;printf("访问的下一个磁道号:%d",a[i]);c=abs(a[i]-f);//c用来记录移动距离sum=sum+c;//用来统计寻道总长度printf("移动距离是%d",c);f=a[i];//把a[i]代表的磁道号设成当前磁道号i++;}while(t>0)//磁臂向内移动{intb=0;printf("访问的下一个磁道号:%d",a[t]);//当磁臂从外移回访问比最初设置的当前磁道号小的磁道b=f-a[t];

8、//b用来记录移动距离sum=sum+

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

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

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