广工操作系统课程设计Word下载.docx
- 文档编号:15283997
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:19
- 大小:416.46KB
广工操作系统课程设计Word下载.docx
《广工操作系统课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《广工操作系统课程设计Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
公平,简单,每个进程的请求都能依次得到处理。
没有对寻道优化,平均寻道时间长。
最短寻道时间优先算法(SSTF):
要求访问的磁道是当前磁头所在的磁道最近,每次寻道时间最短,但不能保证平均寻道时间最短。
可能导致一些请求无限期推延,产生饥饿现象。
扫描算法(SCAN):
不仅考虑当前磁道的距离,优先考虑在磁道前进方向的最短时间,排除磁头在盘面上的往复运动,避免了出现“饥饿”现象。
电梯原理。
循环扫描算法(CSCAN):
是SCAN的改良。
磁头改变方向时,以到达请求服务的最短时间。
对中间请求服务更有利,同时消除了对两端请求的不公平。
三、实验环境与工具
(1)计算机及操作系统:
PC机,Win8.1
(2)程序设计语言:
java
(3)编译程序:
eclipse
四、算法流程图
最短寻道时间优先算法(SSTF)
五、测试程序结果:
测试数据:
访问磁道一
20
访问磁道二
50
访问磁道三
30
当前的磁道数
40
一次输入要访问的磁道数以及当前的磁道数
选择一:
得到的访问顺序以及平均寻道长度为
选择二:
最短寻道时间优先(SSTF)得到的访问顺序以及平均寻道长度为
选择三:
扫描算法(SCAN):
分别采用移动臂向里和移动臂向外,得到的访问顺序以及平均寻道长度为
选择四:
循环扫描算法(SCAN):
分别采用由里向外和由外向里都得到的结果。
由里向外
由外向里
6、性能分析:
从测试结果得到的访问顺序与预期的结果一致,并且经计算从中求出移动距离以及平均寻道长度都正确,符合要求。
这次课设我是用数组来实现的。
从实验的结果得到的数据中也可以看出,光是访问三次磁道,得到的平均磁道数就各不相同,当用户访问的磁道次数频繁且不一致时,好的磁道访问算法才能加快磁道访问的速度。
7、课设感想
从这次课程设计中学到了磁盘的调度算法,以及如何利用各个算法来各种需求的功能,锻炼了自己的编码能力,觉得自己受益良多
8、附录:
(源码以及详细注释)
/**
*先来先服务算法
*@authorLinBingcheng
*
*/
publicclassFCFS{
publicstaticvoidexecate(inta[],intn,intk)//
{
inti,s,sum=0;
intb[]=newint[100];
for(i=0;
i<
n;
i++)
//将数组a[]内容复制到另一个数组存放
b[i]=a[i];
s=k;
//k表示当前的磁道
i++){
System.out.println("
第"
+i+1+"
次访问的道数:
"
+b[i]+"
====移动距离:
+Math.abs(s-b[i]));
sum+=Math.abs(s-b[i]);
//Math.abs函数取绝对值,再求和
s=a[i];
}
System.out.println("
平均寻道长度为:
+sum*1.0/n);
System.out.println();
==================================="
);
}
}
*最短寻道优先算法
*
publicclassSSTF{
publicstaticvoidexecate(inta[],intn,intk){//
inti,j,sum=0,p,s;
for(i=n-1;
i>
=0;
i--)//找出与磁头最近的磁道号
{
s=b[0];
p=0;
for(j=0;
j<
=i;
j++)
if(Math.abs(k-b[j])<
Math.abs(k-s))//求最短的移动距离
{
s=b[j];
p=j;
}
b[p]=b[i];
//将入已被访问的磁道号的位置转存为未被访问的磁道数
+newInteger(n-i)+"
+s
+"
+Math.abs(k-s));
sum+=Math.abs(k-s);
k=s;
//记录新的当前磁道的位置
平均寻道长度:
*扫描算法--磁道由里向外
publicclassSCAN1{
inti,j,sum=0,flag,s,p=0;
i--){
flag=0;
//找到比当前磁头所在磁道大的磁道号
if(b[j]-k>
0){
flag=1;
break;
if(flag==1)//找到比当前磁头所在磁道大且又是距离最近的磁道号,磁臂由里向外移动访问磁道
{
s=b[p];
for(j=0;
if(b[j]>
k&
&
b[j]-k<
s-k){
s=b[j];
p=j;
}
b[p]=b[i];
System.out.println("
+"
sum+=Math.abs(s-k);
k=s;
}//if
else//磁头由里向外访问直至再无更外磁道需要访问,磁臂换向为由外向里移动
s=b[0];
if(k-b[j]<
=k-s){
}//if
//将未被访问的磁道号移入已被访问的磁道号的位置
}//else
*扫描算法--磁道由外向里
publicclassSCAN2{
inti,j,sum=0,p=0,s,flag;
//找到比当前磁头所在磁道小的磁道号
if(k-b[j]>
if(flag==1)//找到比当前磁头所在磁道小且又是距离最近的磁道号,磁臂由外向里移动访问磁道
if(b[j]<
k-b[j]<
k-s){
}
else//磁臂有外向里访问直至再无更内磁道需要访问,磁臂换向为由里向外移动
if(b[j]-k<
=s-k){
//将未被访问的磁道号移入已被访问的磁道
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计