頁式虛擬存管理的實現
原理是
只需將作業的全部資訊作為副本存放在磁碟上,作業被排程投入到執行時,至少把第一頁資訊裝入主儲存器,在作業執行過程中訪問到不在主儲存器的頁的時候,再把它們裝入到主存。之後便是頁面的排程
也買的排程這裡有簡單的幾個演算法:先進先出排程演算法,最近最久未使用演算法,最近最不常使用排程演算法。
下面就這些演算法分別介紹如下
(1) 先進先出演算法(fifo)
這種演算法總是淘汰最先進入主儲存器的那一頁。該演算法簡單。容易實現。是把裝入主儲存器的那些頁的頁號按進
入的先後次序排成隊,用指標k指示當前調入新頁時應淘汰的那頁在佇列中的位置。最初指向隊首位置。每當調入一
個新頁後,在指標指示的位置上填上新頁頁號。然後指標k加1,指向下乙個應淘汰的頁
如圖 指出要裝入第3頁時,使用
fifo演算法的例項
這裡的k為迴圈指標,假定頁號佇列中有n個頁號,每次調出一頁後,執行
k:=(k+1)mod n
如上例子中的n 就是3.因為有3個頁號
下面給出乙個例題
先說明指標的位置是從0開始的
某採用頁式儲存管理的系統接受了乙個共7頁的作業,該作業執行時依次訪問的頁面是:1,2,3,4,2,l,2,3,2,4,5,2,7,6,4。假設系統只給該作業3個主存工作塊,且先將開始三頁依次裝入主存。當分別採用先進先出(fifo)排程演算法時,作業執行過程中會產生多少次缺頁中斷?並依次寫出每次中斷後應淘汰的頁。
採用先進先出(fifo)演算法:
首先是將1,2,3 是依次裝入三個頁。 然後是調入第四個作業,檢視調入的作業先前是否有記錄,如果有,則只需要
將指平移到它後面對應的位置,
如果沒有則指標移動順序按公式計算(或是指標的按順序下移)。
對比發現4是前三個作業沒有的,那麼指標的計算方式為(0+1)mod 3=1,1的位置。指標下移一位(1的位置)。
也可以這樣想,
如果調入的也是不在主存中,則指標按順序移動,如果是在前頁中,責指標不徐璈順序移動,只需要平移。
再看第5個頁是2 ,對比發現前面頁已經有了,這裡就不按順序移動了,只需要平移就可以了。
再看1的排程,將2的位置替換為1,並且指標是下移的(因為1不在前頁出現,所以是替代2的位置)以此類推。
→1 4
4 4
→4 3
3 3
→3 2
2 →2
4 2
→2 →2
1 1
→1 →1
4 4
→4 7
7 →7
3 3
3 →3
2 2
2 →2
5 5
→5 6
6 1 2 3 4 1 2 3 4 5 2
採用先進先出(fifo)演算法共產生10次缺頁中斷。(這裡終端缺頁的計算是按排程的順序計算的,不算平移的次數,只
有階梯的排程才是缺頁排程)
到此這個演算法就講解完了。希望對大家有所幫助
頁式虛擬儲存管理 虛擬儲存技術的實現方式是什麼?
1 在伺服器端的虛擬儲存 伺服器廠商會在伺服器端實施虛擬儲存。同樣,軟體廠商也會在伺服器平台上實施虛擬儲存。這些虛擬儲存的實施都是通過伺服器端將映象對映到外圍儲存裝置上,除了分配資料外,對外圍儲存裝置沒有任何控制。伺服器端一般是通過邏輯卷管理來實現虛擬儲存技術。邏輯卷管理為從物理儲存對映到邏輯上的卷...
作業系統 c 實現頁式虛擬儲存管理
整體思路 先在頁表裡找邏輯位址所在的頁號,如果找不到,就發生缺頁中斷,通過先進先出演算法進行對頁的置換,將所需的頁調入記憶體中,並更新頁表。include define n 64 分配給程序最大的頁的總數 define length 10 記憶體塊的最大個數 using namespace std ...
頁式管理 多級頁表
作業分成若干個相等的 頁 記憶體分成相等的 塊 使 頁 的大小等於 塊 以 頁 為單位,將作業的 頁 裝入記憶體的 塊 中。特點 1.可以不連續地使用記憶體 2.實現內外存統一管理 靜態頁面管理的思想 作業 程序開始執行前,把作業 程序的程式和資料全部裝入記憶體的 塊 中 通過位址變換機構實現虛位址...