操作系统实验四(磁盘调度算法)实验报告_第1页
操作系统实验四(磁盘调度算法)实验报告_第2页
操作系统实验四(磁盘调度算法)实验报告_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验四实验报告实验源码:#include stdio.h#include #include int a20;int i,n,k,init,flag1 = 1;/ 先来先服务 void FCFS(int a,int n,int init)int i,s,sum,temp = 0;int b20;for(i = 0;i n;i + )bi = ai; s = init; sum = 0; printf(nFCFS 调度结果 :n); for(i = 0;i n;i + ) / 被访问的磁道号 printf(%3dt,bi);/ 计算移动距离 temp = abs(s - bi);printf(%3

2、dn,temp); sum += temp; s = bi;printf( 平均寻道长度 :%.1f%nn,sum * 1.0 / n); / 最短寻道法 void SSTF(int a,int n,int init)int i,j,s,sum = 0,p,temp = 0;int b20;for(i = 0;i = 0;i - )s = b0;p = 0;for(j = 0;j = i;j + ) if(abs(bj - init) abs(s - init) s = bj;p = j;bp = bi;/ 被访问的磁道号printf(%3dt,s);/ 计算移动距离temp = abs(s

3、- init);printf(%3dn,temp);sum += temp;init = s;printf( 平均寻道长度 :%.1f%nn,sum * 1.0 / n); / 扫描算法void SCAN(int a,int n,int init)int i,j,s,sum = 0,p,biaoji,temp = 0,k1; int b20;for(i = 0;i = 0;i - )biaoji = 0;for(j = 0;j = i;j + )if(bj - init 0)biaoji = 1;p = j;break;if(biaoji = 1)s = bp;for(j = 0;j = i;

4、j + )if(bj init & init - bj init - s) s = bj; p = j;bp = bi;/ 被访问的磁道号 printf(%3dt,s);/ 计算移动距离 temp = init - s;printf(%3dn,temp);sum += temp;init = s;elses = b0;for(j = 0;j = i;j + )if(bj - init = 0;i - )biaoji = 0;for(j = 0;j 0)biaoji = 1;p = j; break;if(biaoji = 1)s = bp;for(j = 0;j init & bj - ini

5、t s - init)s = bj;p = j;bp = bi;/ 被访问的磁道号printf(%3dt,s);/ 计算移动距离temp = s - init;printf(%3dn,temp);sum += s - init;init = s;elses = b0;for(j = 0;j = i;j + )if(init - bj = init - s)s = bj;p = j;bp = bi;/ 被访问的磁道号printf(%3dt,s);/ 计算移动距离temp = abs(init - s);printf(%3dn,temp); sum += temp; init = s;break;

6、default:printf(n 请输入 1 - 2 之间的整数 !n);break;printf( 平均寻道长度 :%.1f%nn,sum*1.0/n); / 循环算法void CSCAN(int a,int n,int init)int temp;int k = 1;int l,r,d;int b20;int i,j,sum = 0;int init_temp = init;for(i = 0;i n;i + ) bi = ai;for(i = 0;i n;i + )for(j = i + 1;j bj)/ 对磁道号进行从小到大排列 temp = bi;bi = bj; bj = temp

7、; if(bn - 1 = init)/ 判断整个数组里的数是否都小于当前磁道号 printf(nCSCAN 调度结果 :n);for(i = 0;i = init)/ 判断整个数组里的数是否都大于当前磁道号printf(nCSCAN 调度结果 :n);for(i = 0;i n;i + )/ 被访问的磁道号 printf(%3dt,bi);/ 计算移动距离 printf(%3dn,abs(init_temp - bi); init_temp = bi;sum = bn - 1 - init;/ 计算移动距离elsewhile(bk = 0;j - ) / 被访问的磁道号printf(%3dt

8、,bj); / 计算移动距离printf(%3dn,abs(init_temp - bj); init_temp = bj;for(j = n - 1;j = r;j - )/ 被访问的磁道号printf(%3dt,bj);/ 计算移动距离printf(%3dn,abs(init_temp - bj); init_temp = bj;sum = 2*(bn - 1 - b0) - br + init;/ 计算移动距离 break;case 2:/ 磁道号增加方向for(j = r;j n;j + )/ 被访问的磁道号printf(%3dt,bj);/ 计算移动距离printf(%3dn,abs

9、(init_temp - bj); init_temp = bj;for(j = 0;j r;j + )/ 被访问的磁道号printf(%3dt,bj);/ 计算移动距离printf(%3dn,abs(init_temp - bj); init_temp = bj;sum = 2 * (bn - 1 - b0) + br - 1 - init;/ 计算移动距离 break;default:printf(n 请输入 1 - 2 之间的整数 !n);break;printf(n 平均寻道长度: %.1f%nn,sum*1.0/n);void DataInput()printf( 请输入需要访问的磁

10、道总数: ); scanf(%d,&n);printf(n);for(i = 0;i n;i + )printf( 需要访问的磁道 %d:,i + 1); scanf(%d,&ai);printf(n);printf( 请输入指针所在磁道 :); scanf(%d,&init);printf(n);system(cls);/ 显示需要访问的磁道printf( 需要访问的磁道序列为: );for(i = 0;i n;i + )printf(%d ,ai);printf(n);void main()DataInput();int menu=-1;while(true)n);*n);(SSTF)n)

11、;n);n);n);*n);printf(n*n); printf( 磁盘调度算法 printf(*n); printf(*printf(1. 先来先服务 (FCFS) 2.最短寻道时间优先 printf(3. 扫描算法 (SCAN) 4.循环算法 (CSCAN) printf(5. 退出 (EXIT)printf(0. 返回上一层 (RETURN) printf(* printf(*n); printf( 请在下面输入您的选择 :); scanf(%d,&menu);switch(menu)case 1:FCFS(a,n,init); break;case 2:SSTF(a,n,init);

12、 break;case 3:SCAN(a,n,init); break;case 4:CSCAN(a,n,init); break;case 5:exit(0); break;case 0: system(cls); DataInput(); break;default:break;if(menu != 1 & menu != 2 & menu != 3 & menu != 4 & menu !=5 & menu !=0) system(cls);printf(n 请输入 0 - 5 之间的整数! n); continue;实验结果截图:程序运行:输入相关数据:进入选择算法界面:需要访冋的磯道

13、序列为磁盘调度算法SCAN)|XiM 鋼拥HtHiEFXXKJOCiMiM眞遅泛疑負耳XXKXiMiMiM豪抵怔:耳耳3:算酬荼底怔:HEXX疑刿离峙KNNKX捕列猶宾耳耳)址:摘轉1*耳KX;KN;MIC恆耳 请在下面输入您的选择;口最短寻道时间优先算法:扫描算法: :件业 操作系统实验f i 口 i 5 hedsh iy 日门 siDe bu gs h i y 日 n si.exc *SHiKiOf磁盘调度算法2-竜短寻道时间优先 乩循环 J?SK*KKMX毀豪贰 KXNKN 耳 JtiM 近涙 WEJtl(耳 N KJCiMKiM 豪洼*:MJfKIOCKKXKWrJHJCXX 请在下面输入您的选择:3:剑民悔风)0: 胃鼻SCANffi-Hi1移动臂向礒道号减少的方向2-W臂向磁道号增加的方向 请在下面输入您的选择:.微软拼音简捷半:向磁道号减少的方向:退SCfiN道号增加方向、调度结果1B05016010184249094屢短昱道时间优先sstf 谄坏算法CSCAN氏* :塑述 1OOC X 員 ;: : :汛殖 KUH X 廉 ;: : :姮辽址耳耳箕員民: : : * 殖磁盘调度算法向磁道号增加的万向口E:件业 操作系统实验f i n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论