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

下载本文档

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

文档简介

001for(i=0;iMAXQUEUE;i+) 002queuei.go=-1; 003queuei.visited=0; 004 005006start=53;/磁头的初始位置 007 008009/读入磁道号流 010void readData() 011 012FILE *fp; 013char fname20; 014int temp,i; 015016coutfname; 019020if(fp=fopen(fname,r)=NULL) 021cout错误,文件打不开,请检查文件名:)endl; 022 023else 024while(!feof(fp) 025fscanf(fp,%d ,&temp); 026queuequantity.go=temp; 027quantity+; 028 029coutendl-endl; 030cout所读入的磁道号流:; 031for(i=0;iquantity;i+) 032coutqueuei.go ; 033 034coutendl请求数为:quantityendl; 035 036 037038/FIFO算法 039void FIFO() 040 041int i; 042int total=0; 043int current; 044045coutendl-endl; 046coutFIFO算法的访问磁道号顺序流:; 047048current=start; 049for(i=0;iquantity;i+) 050coutqueuei.go ; 051total+=abs(queuei.go-current); 052current=queuei.go; 053 054coutendl磁头移过的柱面数:total; 055 056057/最短寻道优先调度算法 058void shortest() 059 060int i,j,p; 061int total=0; 062int current; 063064coutendl-endl; 065cout最短寻道优先调度算法的访问磁道号顺序流:; 066067current=start; 068for(i=0;iquantity;i+) 069p=0; 070while(queuep.visited!=0) 071p+; 072 073for(j=p;jabs(current-queuej.go) 075p=j; 076 077 078coutqueuep.go ; 079total+=abs(queuep.go-current); 080queuep.visited=1; 081current=queuep.go; 082 083coutendl磁头移过的柱面数:total; 084 085086/电梯算法 087void elevator() 088 089int i,j,p,flag; 090int total=0; 091int current; 092093coutendl-endl; 094cout电梯调度算法endl; 095096/磁头初始向里 097cout磁头初始向里的访问磁道号顺序流:; 098099current=start; 100for(i=0;iquantity;i+) 101flag=1000; 102p=-1; 103for(j=0;j=current) 105if(abs(queuej.go-current)flag) 106p=j; 107flag=abs(queuej.go-current); 108 109 110 111if(p!=-1) 112coutqueuep.go ; 113total+=abs(queuep.go-current); 114current=queuep.go; 115queuep.visited=1; 116 117else 118for(j=0;jquantity;j+) 119if(queuej.visited=0)&(queuej.gocurrent) 120if(abs(queuej.go-current)flag) 121p=j; 122flag=abs(queuej.go-current); 123 124 125 126coutqueuep.go ; 127total+=abs(queuep.go-current); 128current=queuep.go; 129queuep.visited=1; 130 131 132coutendl磁头移过的柱面数:totalendl; 133134/磁头初始向外 135for(i=0;iquantity;i+) 136queuei.visited=0; 137 138total=0; 139140cout磁头初始向外的访问磁道号顺序流:; 141142current=start; 143for(i=0;iquantity;i+) 144flag=1000; 145p=-1; 146for(j=0;jquantity;j+) 147if(queuej.visited=0)&(queuej.go=current) 148if(abs(queuej.go-current)flag) 149p=j; 150flag=abs(queuej.go-current); 151 152 153 154if(p!=-1) 155coutqueuep.go ; 156total+=abs(queuep.go-current); 157current=queuep.go; 158queuep.visited=1; 159 160else 161for(j=0;jcurrent) 163if(abs(queuej.go-current)flag) 164p=j; 165flag=abs(queuej.go-current); 166 167 168 169coutqueuep.go ; 170total+=abs(queuep.go-current); 171current=queuep.go; 172queuep.visited=1; 173 174 175coutendl磁头移过的柱面数:total; 176177 178179/显示版权信息函数 180void version() 181 182coutendlendl; 183184cout endl; 185cout 磁盘调度算法系统 endl; 186cout endl; 187cout (c)All Right Reserved Neo endl; 188cout endl; 189cout version 2004 build 1122endl; 190cout endl; 191192coutendlendl; 193 194195196void main() 197 198int i; 199

温馨提示

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

评论

0/150

提交评论