常規儲存器管理方式的特徵:一次性,即作業在執行前必須一次性裝入記憶體。駐留性,即作業裝入記憶體後,便一直駐留在記憶體中,直到作業執行結束。
區域性性原理:是指程式在執行時將呈現出區域性性規律,即在一較短的時間內,程式的執行僅侷限於某個部分,相應的它所訪問的空間頁侷限於某個區域。具體表現為以下兩個方面:
時間區域性性:如果程式中的某條指令一旦執行,則不久以後該指令將有可能再次執行;某個資料一旦訪問,則不久以後該資料將有可能再次訪問。產生時間區域性性的典型原因是程式中存在大量的迴圈操作。
空間區域性性:一旦程式訪問了某個儲存單元,則在不久以後,其附近的儲存單元也將被訪問,即程式在一段時間內所訪問的位址,可能集中在乙個範圍內,其典型的情況便是程式的順序執行。
基於上述區域性性原理,應用程式不需要在執行前全部裝入記憶體,僅須將當前要執行的那部分程式和資料裝入記憶體便可啟動程式進行訪問,其餘部分駐留在外存,當要執行的指令或訪問的資料不在記憶體時,再由os自動通過請求調入功能將它們調入記憶體,以使得程式能繼續執行;如果記憶體已滿則需要置換功能,將記憶體中暫時不用的程式或資料調至磁碟,將要訪問的資料或程式調入記憶體,使程式繼續執行,這樣就可以使得乙個較大的使用者程式在較小的記憶體空間裡執行,也可在記憶體中裝入更多的程式使它們併發執行。我們將這種具有請求調入功能和置換功能、能從邏輯上對記憶體容量加以擴充的儲存器系統稱為虛擬儲存器。
虛擬儲存器具有以下特徵:多次性,與常規儲存器管理中的「一次性」相反;對換性,與常規儲存器管理的「駐留性」相反;虛擬性,儲存器對記憶體的擴充是在邏輯上進行的,使用者感覺到的大記憶體是一種假象,並不實際存在。
在分頁的基礎上增加了調頁功能和頁面置換功能,便形成了能支援虛擬儲存器功能的方式,是一種常用的虛擬儲存器的方式。請求分頁機制中的頁表項除了記憶體塊號和訪問訪問字段以外,還增加了狀態位p、範圍欄位a、修改位m、外存位址。
①狀態位:用於指示該頁是否已調入記憶體。
在請求分頁的系統中,當程序訪問某個資料或某條指令時,硬體位址變換機制會將根據邏輯位址中的頁號頁檢索頁表,並根據頁表中的存在位判斷頁面是否被調入記憶體,若已經調入記憶體則可立即從頁表項中得到該頁的記憶體塊號,並與頁內位址合成實體地址,同時修改頁表中的訪問位,若是寫指令則需要將修改位置為1,若訪問的頁面未被調入記憶體,則會產生缺頁中斷,此時上述訪問缺頁的作業被中斷,控制將轉向缺頁中斷處理程式。若程式記憶體有空閒塊,則根據頁表項中的外存位址將頁面裝入記憶體,然後修改頁表項中狀態位和記憶體塊號即可;否則,沒有空閒塊則需要將置換演算法淘汰記憶體中的一頁,對已被修改過的淘汰頁則需要重新寫會磁碟,然後將所缺頁面裝入記憶體。
記憶體分配策略和置換策略:在請求分頁系統中,可採用兩種記憶體分配策略,即固定分配和可變分配。在進行置換時,也可採用兩種策略,即全域性置換和區域性置換。於是可組合出三種適用的策略:
①固定分配區域性置換策略:為程序分配的物理塊數目在程序的整個生命週期都不改變,若程序因調入頁面而需要換出頁面則只能換出它自己記憶體頁面。採用此策略在程序執行過程中可能會用完記憶體塊太少而頻繁缺頁,或者因記憶體塊太多而浪費空間。
②可變分配全域性置換策略:系統先為每個程序分配一定數目的程序塊,當程序發生缺頁時,若系統中有空閒的記憶體塊,則為其分配乙個物理塊並裝入缺頁;若系統已經沒有空閒物理塊則需要從記憶體中選擇一頁換出,被換出的頁可以是系統任一程序頁面。
③可變分配區域性置換策略:為每個程序分配一定數目的物理塊後,若某個程序發生缺頁,則只能在自己的記憶體裡置換頁面。如果程序頻繁進行缺頁則為該程序額外分配若干物理塊,直到缺頁率減少的合適程度;反之則適當減少該程序的物理塊,因此,該策略可獲得較高的記憶體空間利用率,同時又能保證每個程序有較低的缺頁率。
最佳置換演算法(opt):選擇以後不再使用或最長時間不再被訪問的記憶體頁面予以淘汰。可以保證獲得最低的缺頁率,但由於人無法預知哪個頁面是未來最長時間不被採用的,所以該演算法只能是一種理論的演算法。
先進先出置換演算法(fifo):選擇最先進入的記憶體最先淘汰的演算法。實現簡單,但往往與實際執行的規律不相符,在實際情況下很少使用純粹的fifo演算法。
最近最久未使用置換演算法(lru):lru演算法賦予每個頁面乙個訪問字段,用於記錄相應頁面自上次被訪問以來所經歷的時間t,當淘汰乙個頁面時,應選擇所有頁面中t值最大的頁面,即記憶體中最近一段時間最久未被訪問的頁面。
clock演算法:每個頁面設定乙個訪問位,,將記憶體中所有頁面通過鏈結指標鏈結成乙個迴圈佇列。當某頁被訪問時,其訪問位由硬體置1,置換演算法是從替換指標開始順序檢查迴圈佇列中的各個頁,如果訪問位為0,則選擇該頁進行替換;若訪問位為1,則置0,並繼續向下乙個查詢。
改進的clock演算法:由於未修改的頁面不用寫回磁碟,所以可以利用修改為一同進行置換檢測。首先從替換指標開始第一次掃瞄迴圈佇列,並選擇首個訪問位和修改位都為0的頁面進行置換,如一輪掃瞄未出現理想頁面,則開始第二輪,選擇首個訪問位為0,修改位為1的頁面進行置換,同時將所有掃瞄過的頁面訪問位置為0;若還沒找到,則重複以上兩輪迴圈。
虛擬儲存器
1 虛擬儲存器只是乙個容量非常大的儲存器的邏輯模型,不是任何實際的物理儲存器 2 它借助於磁碟等輔存來擴大主存的容量,使之為更大或更多的程式使用 3 程式的邏輯位址稱為虛擬位址 虛位址 程式的邏輯位址空間稱為虛擬位址空間 4 實體地址 實位址 由cpu位址引腳送出,是用於訪問主存的位址 5 設cpu...
虛擬儲存器
在系統中程序是與其它的程序共享cpu和主存資源的,程序太多就需要太多的儲存器,而且儲存器很容易受到破壞,如果某個程序不小心寫了另乙個程序使用的儲存器,它就會以 完全和程式邏輯無關的令人迷惑的方式失敗。位址空間。特點 1.主存看成是虛擬在磁碟上的位址空間 的快取記憶體,在主存裡只儲存活動區域。2.為每...
虛擬儲存器
1 常規儲存器管理方式的特徵 一次性 即作業在執行前需一次性地全部裝入記憶體。這會導致兩種情況的發生 當作業很大,所要求的記憶體空間超過了記憶體總容量,作業不能全部被裝入記憶體,致使該作業無法執行。在多道程式中,有多個作業要求執行,但由於記憶體容量不足以容納所有這些作業,只能將少數作業裝入記憶體讓它...