作業系統實驗 磁碟排程

2021-10-12 16:35:31 字數 2567 閱讀 2345

1,選擇一到三種磁碟排程演算法,模擬實現磁碟排程

2,能輸入當前磁頭的位置,磁頭移動方向,磁軌訪問請求序列等。

3,計算磁頭移動的總磁軌數

4,能夠顯示磁碟排程結果

//#include

#include

#include

"disk.h"

using

namespace std;

//磁碟

disk disk;

//新增訪問序列

void

addvist()

} cout << endl;

}//進行磁軌訪問排程

void

vistdisk()

elseif(

2==way)

else

cout <<

"磁頭走過的總道數:"

<< stepnum << endl;

cout <<

"走道序列:"

<< start;

for(

int i =

0; i < disk.visitnum; i++

)//初始化

disk.

initdisk()

; cout << endl;

}//設定磁頭移動方向

void

setdirection()

//設定磁頭位置

void

setdiskhead()

intmain()

}return0;

}

#include

"disk.h"

using

namespace std;

#include

disk::

disk()

//初始化成員變數

void disk::

initdisk()

}/** 新增訪問磁軌

* index: 要訪問的位置

*/void disk::

addvist

(int index)

/** 設定磁頭位置

*/void disk::

setdiskhead

(int index)

/** 先來先服務排程

* &sequence 訪問序列

* return: 磁頭走過的總道數

*/int disk::

fcfsdispatch

(int

* sequence)

return stepnum;}/*

* 最短尋道排程

*/int disk::

sstfdispatch

(int

* sequence)

}//訪問該磁軌,更改磁頭,並計算距離

sequence[num]

= visitlist[index]

; stepnum = stepnum +

abs(

(visitlist[index]

- diskhead));

diskhead = visitlist[index]

; visitlist[index]=-

1;num++;}

return stepnum;}/*

* 電梯排程演算法

*/int disk::

scandispatch

(int

* sequence)

}//根據磁頭移動方向,進行走道 if(

1==direction)

else

return stepnum;}/*

* 磁頭向左移動

*/int disk::

towardleft

(int

* sequence,

int index)

for(

int i = index; i >=

0; i--

)for

(int i = index+

1; i < visitnum; i++

)return stepnum;}/*

* 磁頭向右移動

*/int disk::

towardright

(int

* sequence,

int index)

for(

int i = index-

1; i >=

0; i--

)return stepnum;}/*

* 對訪問序列進行排序

*/void disk::

ascendingorder()

}}}/*

* 兩個數互動

*/void disk::

change

(int

& a,

int& b)

#pragma once

using

namespace std;

/** 磁碟類

*/class

disk

;

作業系統實驗6 磁碟排程模擬

1 掌握fcfs sstf scan等磁碟排程演算法 2 使用高階語言實現演算法,並比較不同演算法的優缺點。磁碟排程在多道程式設計的計算機系統中,各個程序可能會不斷提出不同的對磁碟進行讀 寫操作的請求。由於有時候這些程序的傳送請求的速度比磁碟響應的還要快,因此我們有必要為每個磁碟裝置建立乙個等待佇列...

作業系統磁碟排程演算法

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

作業系統 磁碟排程演算法

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