作業系統磁碟排程演算法

2021-10-01 13:55:45 字數 1681 閱讀 6939

建立乙個檔案,並把它命名為cidao.txt, 在其中寫入18 5 23 8 16 5,並儲存

**如下(注意,該檔案的路徑需要用雙反斜槓表示)

#include

"stdio.h"

#include

"stdlib.h"

#include

"iostream.h"

#define maxsize 100

//先來先服務排程演算法

void

fcfs

(int array,

int m)

for(i=

0,j=

1;j,j++

)cout<<

"移動的總道數: "

<}//最短尋道時間優先排程演算法

void

shortpath

(int array,

int m)

}for

( i=

0;i)/*排序*/

cout<<

"請輸入當前的磁軌號:"

;cin>>now;

if(array[m-1]

<=now)

else

if(array[0]

>=now)

else

l=k-1;

r=k;

/*確定當前磁軌在已排的序列中的位置,後面的演算法都用到了,可以直接複雜後少量修改,節省時間。*/

while

((l>=0)

&&(r)else}if

(l=-1)

sum+

=array[m-1]

-array[0]

;}else

sum+

=array[m-1]

-array[0]

;}} cout<<

"移動的總道數: "

<}//電梯排程演算法

void

elevator

(int array,

int m)

//先要給出當前磁軌號和移動臂的移動方向

}for

( i=

0;i)cout<<

"請輸入當前的磁軌號:"

;cin>>now;

if(array[m-1]

<=now)

else

if(array[0]

>=now)

else

l=k-1;

r=k;

cout<<

"請輸入當前移動臂的移動的方向 (1 表示向內 ,0表示向外) : "

; cin>>d;

if(d==0)

for(j=r;j) sum=now-

2*array[0]

+array[m-1]

;}else

for(j=l;j>=

0;j--

) sum=

-now-array[0]

+2*array[m-1]

;}} cout<<

"移動的總道數: "

<}void

main()

while(!

feof

(fp)

)count=i-1;

for(i=

0;i)cout

)}}

作業系統磁碟排程演算法

裝置的動態分配演算法與程序排程相似,也是基於一定的分配策略的。常用的分配策略有先請求先分配 優先順序高者先分配等策略。在多道程式系統中,低效率通常是由於磁碟類旋轉裝置使用不當造成的。作業系統中,對磁碟的訪問要求來自多方面,常常需要排隊。這時,對眾多的訪問要求按一定的次序響應,會直接影響磁碟的工作效率...

作業系統 磁碟排程演算法

假定當前磁頭出在第100到,等待服務的程序有8個,它們請求的磁碟先後順序是90 70 159 21 1 15 120 145。採用最短尋道時間優先 掃瞄演算法對其排程,填好以下表?從100號磁軌開始,向磁軌號增加方向訪問 被訪問的下乙個磁軌號 移動距離 磁軌數 總共所需尋道長度 平均尋道長度 答 最...

作業系統 磁碟排程演算法

一次磁碟讀寫操作所需要的時間先來先服務演算法 請求的磁軌集中的話,效能好.大量程序的時候會效能差 最短尋找時間優先 保證每次尋道時間最短,如果有反覆相同的磁軌,就會一直在小區域迴圈反覆,其他磁軌訪問不到,導致 飢餓 現象 掃瞄演算法 磁頭必須移動到最外側才能往內移動,類似電梯,對於在最外側的磁軌訪問...