虛擬儲存器管理(C 實現)

2021-09-24 04:39:17 字數 1984 閱讀 7142

演算法思想:

請求分頁虛擬儲存管理技術,是把作業位址空間的全部資訊存放在磁碟上。當作業被選中執行時,先把作業的開始幾頁裝入主存,並啟動執行。為此,在為作業建立頁表時,應說明哪些頁已在主存,哪些頁不在主存。其中標誌表示對應頁是否已經裝入主存。1表示對應頁已經裝入主存;0表示對應頁未裝入主存;主存塊號表示該頁對應的主存塊號;修改位指示該頁調入主存後是否修改過的標誌;外存位址指示該頁所在的外存位址。

作業執行時,指令中的邏輯位址指出參加運算的運算元(或指令)位址中的頁號和頁內偏移量。硬體位址轉換機構按頁號查頁表。若該頁的標誌為1,則表示該頁已在主存,從而找到該頁對應的主存塊號。計算關係式,絕對位址等於塊號*塊的長度+頁內偏移量。計算出預訪問的主存位址。由於頁長為2的整次冪。所以只要將塊號和頁內偏移量相拼接。放入主存位址暫存器即可。按照該位址取指令或取運算元,完成指定的操作。

設計乙個位址變換程式,模擬硬體位址變換過程,當訪問的頁在主存時,則形成絕對位址後,不去模擬指令的執行,而是輸出被轉換的位址,當訪問的頁不在主存時,則輸出該頁不在主存,產生缺頁中斷,以表示產生了一次缺頁中斷。

進行缺頁中斷處理,中斷返回後,重新執行該指令。假定主存的每塊長度為64個位元組,現有乙個具有8頁的作業系統,為其分配的4個主存塊(即m=4),且最多分四塊。其中第0頁至第3頁已經裝入主存。

(4)當採用lru演算法時。則淘汰最近很少訪問的頁。

虛擬儲存器的實現方法

在虛擬儲存器中,允許將乙個作業分多次調入記憶體。如果採用連續分配方式時,應將作業裝入乙個連續的記憶體區域中。為此,需事先為它一次性地申請足夠的記憶體空間,以便將整個作業先後分多次裝入記憶體。這不僅會使相當一部分記憶體空間都處於暫時或 永久 的空閒狀態,造成記憶體資源的嚴重浪費,而且也無法從邏輯上擴大...

虛擬儲存器管理 作業系統

1.模擬分頁式儲存管理中硬體的位址轉換和產生缺頁中斷 分頁式虛擬儲存系統是把作業資訊的副本存放在磁碟上,當作業被選中時,可把作業的開始幾頁先裝入主存且啟動執行。為此,在為作業建立頁表時,應說明哪些頁已在主存,哪些頁尚未裝入主存。作業執行時,指令中的邏輯位址指出了參加運算的操作存放的頁號和單元號,硬體...

虛擬儲存器

1 虛擬儲存器只是乙個容量非常大的儲存器的邏輯模型,不是任何實際的物理儲存器 2 它借助於磁碟等輔存來擴大主存的容量,使之為更大或更多的程式使用 3 程式的邏輯位址稱為虛擬位址 虛位址 程式的邏輯位址空間稱為虛擬位址空間 4 實體地址 實位址 由cpu位址引腳送出,是用於訪問主存的位址 5 設cpu...