作業系統 記憶體排程,磁碟排程演算法

2021-10-01 14:43:51 字數 2008 閱讀 6685

頁面置換:在位址對映過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷(page fault)。當發生缺頁中斷時作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。

替換下次訪問距當前時間最長的頁。opt演算法需要知道作業系統將來的事件,顯然不可能實現,只作為一種衡量其他演算法的標準。

將頁面看做乙個迴圈緩衝區,按迴圈方式替換。這是實現最為簡單的演算法,隱含的邏輯是替換駐留在記憶體時間最長的頁。但由於一部分程式或資料在整個程式的生命週期中使用頻率很高,所以會導致反覆的換入換出。

替換上次使用距離當前最遠的頁。根據區域性性原理:替換最近最不可能 訪問到的頁。效能最接近opt,但難以實現。可以維護乙個關於訪問頁的棧或者給每個頁新增最後訪問的時間標籤,但開銷都很大。

給每個頁幀關聯乙個使用位。當該頁第一次裝入記憶體或者被重新訪問到時,將使用位置為1。每次需要替換時,查詢使用位被置為0的第乙個幀進行替換。在掃瞄過程中,如果碰到使用位為1的幀,將使用位置為0,在繼續掃瞄。如果所謂幀的使用位都為0,則替換第乙個幀。

磁碟排程在多道程式設計的計算機系統中,各個程序可能會不斷提出不同的對磁碟進行讀/寫操作的請求。由於有時候這些程序的傳送請求的速度比磁碟響應的還要快,因此我們有必要為每個磁碟裝置建立乙個等待佇列,常用的磁碟排程演算法有以下四種:

先來先服務演算法(fcfs)

最短尋道時間優先演算法(sstf)

掃瞄演算法(scan)

迴圈掃瞄演算法(cscan)

例:假定某磁碟共有200個柱面,編號為0-199,如果在為訪問143號柱面的請求者服務後,當前正在為訪問125號柱面的請求服務,同時有若干請求者在等待服務,它們每次要訪問的柱面號為

86,147,91,177,94,150,102,175,130

這是一種比較簡單的磁碟排程演算法。它根據程序請求訪問磁碟的先後次序進行排程。此演算法的優點是公平、簡單,且每個程序的請求都能依次得到處理,不會出現某一程序的請求長期得不到滿足的情況。此演算法由於未對尋道進行優化,在對磁碟的訪問請求比較多的情況下,此演算法將降低裝置服務的吞吐量,致使平均尋道時間可能較長,但各程序得到服務的響應時間的變化幅度較小。

先來先服務 (125)86.147.91.177.94.150.102.175.130

該演算法選擇這樣的程序,其要求訪問的磁軌與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短,該演算法可以得到比較好的吞吐量,但卻不能保證平均尋道時間最短。其缺點是對使用者的服務請求的響應機會不是均等的,因而導致響應時間的變化幅度很大。在服務請求很多的情況下,對內外邊緣磁軌的請求將會無限期的被延遲,有些請求的響應時間將不可預期。

最短尋道時間優先(125)130.147.150.175.177.102.94.91.86

掃瞄演算法不僅考慮到欲訪問的磁軌與當前磁軌的距離,更優先考慮的是磁頭的當前移動方向。例如,當磁頭正在自里向外移動時,掃瞄演算法所選擇的下乙個訪問物件應是其欲訪問的磁軌既在當前磁軌之外,又是距離最近的。這樣自里向外地訪問,直到再無更外的磁軌需要訪問才將磁臂換向,自外向裡移動。這時,同樣也是每次選擇這樣的程序來排程,即其要訪問的磁軌,在當前磁軌之內,從而避免了飢餓現象的出現。由於這種演算法中磁頭移動的規律頗似電梯的執行,故又稱為電梯排程演算法。此演算法基本上克服了最短尋道時間優先演算法的服務集中於中間磁軌和響應時間變化比較大的缺點,而具有最短尋道時間優先演算法的優點即吞吐量較大,平均響應時間較小,但由於是擺動式的掃瞄方法,兩側磁軌被訪問的頻率仍低於中間磁軌。

電梯排程(125)102.94.91.86.130.147.150.175.177

迴圈掃瞄演算法是對掃瞄演算法的改進。如果對磁軌的訪問請求是均勻分布的,當磁頭到達磁碟的一端,並反向運動時落在磁頭之後的訪問請求相對較少。這是由於這些磁軌剛被處理,而磁碟另一端的請求密度相當高,且這些訪問請求等待的時間較長,為了解決這種情況,迴圈掃瞄演算法規定磁頭單向移動。例如,只自里向外移動,當磁頭移到最外的被訪問磁軌時,磁頭立即返回到最裡的欲訪磁軌,即將最小磁軌號緊接著最大磁軌號構成迴圈,進行掃瞄。

迴圈掃瞄 (125)130.147.150.175.177.86.91.94.102

作業系統磁碟排程演算法

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

作業系統 磁碟排程演算法

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

作業系統磁碟排程演算法

建立乙個檔案,並把它命名為cidao.txt,在其中寫入18 5 23 8 16 5,並儲存 如下 注意,該檔案的路徑需要用雙反斜槓表示 include stdio.h include stdlib.h include iostream.h define maxsize 100 先來先服務排程演算法...