磁盘调度算法设计.doc_第1页
磁盘调度算法设计.doc_第2页
磁盘调度算法设计.doc_第3页
磁盘调度算法设计.doc_第4页
磁盘调度算法设计.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

磁盘调度算法设计一 实验目的1 了解和掌握操作系统对磁盘如何调度管理。2 熟悉并掌握各种磁盘调度的算法。二 实验设备windowsxp操作系统,vc6.0环境三 实验内容及操作步骤1 实验内容设计多个磁盘调度算法,分别是先来先服务算法,最短寻道时间优先算法,扫描算法。并且通过程序来计算寻道时间。2 实验步骤(1) 根据以下不同的算法思想编写调度程序,并装入vc 6.0中。(2) 汇编并连接程序。(3) 调试程序。(4) 输入数据,验证不同磁盘调度算法的平均寻道时间,由此总结各算法所使用的场合。四 算法思想1 先来先服务2 最短寻道时间优先3 扫描子算法4 扫描算法五 实验源程序#include#include#include #define size 64/磁道序列个数最多为64个using namespace std;/=void fcfs(int *sequ,int m) cout*先来现服务算法*endl; int j; double sum,averay; for(int i=0;im;+i) cout*(sequ+i) ; for(i=0,j=1;jm;+i,+j) sum=abs(*(sequ+j)-*(sequ+i); averay=sum/m; coutendl移动总道数:sum平均移动道数:averayendl; cout*endl;/-void ffts(vector sequ,int m) cout*最短寻道时间优先算法*endl; coutnow; int i=0; double sum=0,averay; while(sequi=now&i=0;-i) coutsequi ; sum=sequm-1; else if(i=0) for(i=0;im;+i) coutsequi=0|h=0&sequh-tompsequl-tomp) coutsequl ; sum+=abs(sequl-tomp); tomp=sequl; -l; else if(hm) coutsequh ; sum+=abs(sequh-tomp); tomp=sequh; +h; averay=sum/m; coutendl移动总道数:sum平均移动道数:averayendl; cout*endl;/-void sace(vector sequ,int m) cout*电梯算法*endl; coutnow; int i=0; double sum=0,averay; while(sequinow&im)/找到当前磁道在磁道系列中的位置 +i; coutchiose; int l=i-1,h=i; if(chiose=l|chiose=l) while(l=0) coutsequl ; sum+=sequl; -l; while(hm) coutsequh ; sum+=sequh; +h; else while(hm) coutsequh=0) coutsequl ; sum+=sequl; -l; averay=sum/m; coutendl移动总道数:sum平均移动道数:averayendl; cout*endl;/-void main() int buffersize; file *fp; if(fp=fopen(磁道系列文件.txt,r)=null) cout磁道系列文件.txt打开失败endl; exit(0); int i; for(i=0;isize&!feof(fp);+i) fscanf(fp,%d,&bufferi); bufferi=0;/将当前buffer中的字符制空 cout*磁盘调度算法*endl; cout从文件读入的磁道号系列为:; for(int j=0;ji;+j) coutbufferj ; coutendl; vector sequ_vec(buffer,buffer+i);/将buffer中的序列拷贝到sequ_vec向量中 sort(sequ_vec.begin(),sequ_vec.end();/对sequ_vec排序方便ffts和scan算法的应用 while(1) cout1、先来先服务; 2、最短寻道时间优先; 3、电梯(sace)算法; 4、退出endl; couta; switch(a) case 1:fcfs(buffer,i);break; case 2:ffts(sequ_vec,i);break; case 3:sace(sequ_vec,i);break; case 4:exit(0); 六 实验测试及结果分析和手算的结果一致。七 实验小结(1) 通过输入不同的磁道号,可知先来先服务算法仅适用于请求磁盘i/o

温馨提示

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

评论

0/150

提交评论