好文档 - 专业文书写作范文服务资料分享网站

模拟磁盘调度算法,操作系统课程设计

天下 分享 时间: 加入收藏 我要投稿 点赞

实用文档

{

int i,j; int temp;

for(i=0;i

if(cidao[i]>cidao[j]) {

temp=cidao[i]; cidao[i]=cidao[j]; cidao[j]=temp; } }

cout<<\排序后的磁盘序列为:\ for( i=0;i

cout<

cout<

/*********************先来先服务调度算法**************************/ int FCFS(int cidao[],int m) {

int now;

int sum=0; int j,i; int a;

char str[100]; float ave;

cout<<\磁盘请求序列为:\ for( i=0;i

cout<

cout<

cout<<\请输入当前的磁道号:\ bei2: cin>>str; a=panduan(str); if(a==0) {

cout<<\输入数据的类型错误,请重新输入!\ goto bei2;

实用文档

} else

now=zhuanhua(str,a); sum+=abs(cidao[0]-now); cout<<\磁盘扫描序列为:\ for( i=0;i

cout<

for(i=0,j=1;j

sum+=abs(cidao[j]-cidao[i]); ave=(float)(sum)/(float)(m); }

cout<

cout<<\平均寻道长度:\ cout<<\磁头移动总磁道数:\ return 0; }

/**********************最短寻道时间优先调度算法********************/ void SSTF(int cidao[],int m) {

int k=1; int now,l,r; int i,j,sum=0; int a;

char str[100]; float ave;

cidao=bubble(cidao,m);

cout<<\请输入当前的磁道号:\bei3: cin>>str; a=panduan(str); if(a==0) {

cout<<\输入数据的类型错误,请重新输入!\ goto bei3; } else

now=zhuanhua(str,a); if(cidao[m-1]<=now) {

cout<<\磁盘扫描序列为:\ for(i=m-1;i>=0;i--)

实用文档

cout<

if(cidao[0]>=now) {

cout<<\磁盘扫描序列为:\ for(i=0;i

if(now>cidao[0]&&now

cout<<\磁盘扫描序列为:\ while(cidao[k]

k++; }

l=k-1; r=k;

while((l>=0)&&(r

if((now-cidao[l])<=(cidao[r]-now)) {

cout<

cout<

if(l==-1) {

for(j=r;j

cout<

sum+=cidao[m-1]-cidao[0]; }

实用文档

else {

for(j=l;j>=0;j--) {

cout<

sum+=cidao[m-1]-cidao[0]; } }

ave=(float)(sum)/(float)(m); cout<

cout<<\平均寻道长度: \ cout<<\磁头移动总磁道数:\}

/*****************************扫描调度算法*******************************/ void SCAN(int cidao[],int m) {

int k=1;

int now,l,r,d; int i,j,sum=0; int a;

char str[100]; float ave;

cidao=bubble(cidao,m); cout<<\请输入当前的磁道号:\bei4: cin>>str; a=panduan(str); if(a==0) {

cout<<\输入数据的类型错误,请重新输入!\ goto bei4; } else

now=zhuanhua(str,a); if(cidao[m-1]<=now) {

cout<<\磁盘扫描序列为:\ for(i=m-1;i>=0;i--) cout<

if(cidao[0]>=now) {

实用文档

cout<<\磁盘扫描序列为:\ for(i=0;i

if(now>cidao[0]&&now

while(cidao[k]

k++; }

l=k-1; r=k;

cout<<\请输入当前移动臂的移动的方向 (1 表示向外 ,0表示向内) : \ cin>>d;

if(d==0) {

cout<<\磁盘扫描序列为:\ for(j=l;j>=0;j--) {

cout<

for(j=r;j

cout<

sum=now-2*cidao[0]+cidao[m-1]; }

else {

cout<<\磁盘扫描序列为:\ for(j=r;j

cout<

for(j=l;j>=0;j--) {

cout<

sum=-now-cidao[0]+2*cidao[m-1]; } }

ave=(float)(sum)/(float)(m); cout<

实用文档

cout<<\平均寻道长度: \ cout<<\磁头移动总磁道数:\}

模拟磁盘调度算法,操作系统课程设计

实用文档{inti,j;inttemp;for(i=0;icidao[j]){temp=cidao[i];cida
推荐度:
点击下载文档文档为doc格式
595qi7cjdz0a0pl1szsm0n19a8hr9t00gsr
领取福利

微信扫码领取福利

微信扫码分享