04計算機操作系統-虛擬內存

前言

本文是根據虛擬內存的總結,包括覆蓋技術,交換技術,虛存技術。虛擬內存的起因是應用程序的運行內存越來越大,而內存的增長不能滿足相應的需求,所有需要藉助於disk的容量提高程序的運行空間。

覆蓋技術

這個技術現在已經不再使用了,其實就是需要將應用程序模塊化,然後按照程序運行的順序,設計各模塊在拷貝到內存中的時間。結合各個程序塊的大小和執行順序來設計哪幾個模塊共有一塊內存區域,以及按照怎樣的順序覆蓋。這些操作都是由程序員決定應用程序內部的運行。

自動交換技術

這種技術現在也不在使用了,交換技術主要發生在應用程序之間,由操作系統自行操作
何時傳入:當內存空間不管或者不夠的時候換出;
何時交換:包含應用程序的所有拷貝;
還涉及到應用程序重定位的問題,採用動態地址映射解決。

虛存技術

這是現在最具有實際意思的虛擬內存技術,就是把應用程序中的需要的部分放在內存裏面,應用程序的全部數據在disk中。交換的單位是一個頁。
在這裏插入圖片描述
其中頁面的換入和換出,是由操作系統自行完成的。根據虛存技術的要求,對開發的應用程序提出瞭如下的要求:指程序在執行過程中的一個較短的時期,所執行的指令地址和指令的操作數地址分別侷限於一定的區域,這可以表現爲。時間局部性,一條指令的一次執行和下次執行,一個數據的一次訪問和下一次訪問集中在一個較短的時間;空間局部性,當前指令和鄰近指令,當前訪問數據和鄰近的幾個數據都集中在一個較小區域。
有一個例子就是二維數組,考慮對二維數組的儲存是是按照行的方向進行存儲的,所以一行一行的讀取數據比一列一列的讀取數據運行效率有很大的提升。

基本特徵

其主要的特點就是一個頁或者一個段的交換。最關鍵的是何時交換,操作系統利用缺頁異常來處理這個事情。對應的頁表項爲:頁號,訪問位,修改位,保護位,駐留位,幀號在這裏插入圖片描述
駐留位:1表示頁在內存中,0表示頁不在內存中。訪問的時候如果爲0就會產生缺頁異常;
保護位:表示可以對頁做何種類型的訪問;
修改位:表示此頁在內存中是否被修改過,當系統回收該物理也時,根據該項決定是否需要拷貝回disk;
訪問位:是否被訪問過,被頁面置換算法。

處理缺頁異常的機制

應用程序在執行的時候,當問到一個邏輯頁其駐留位爲0的時候,就會產生缺頁異常,如果當前還有空餘的物理頁就直接將該頁對應的物理頁拷貝到物理幀號爲f的位置,並把當前邏輯頁的駐留位改爲1,對應的物理幀號改爲f;如果沒有空餘的物理頁了就採用頁面置換算法選擇一個需要替換的物理頁f,並察看f所對應的邏輯頁q的修改位是否爲1,如果爲1就將物理頁的內容寫回disk中,將q的駐留位改爲0,然後進行一樣是操作。
在這裏插入圖片描述
有幾點需要注意:首先disk中存放了所以程序的所有數據,有需要的就會被調入到內存中;當有寫頁面需要置換出來的時候,如果該頁面發生了改動,也就是其對應的邏輯頁的修改位爲1,就將該頁拷貝回disk,否則直接丟棄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章