儲存器管理 分頁儲存

2021-08-30 15:54:26 字數 2476 閱讀 3632

比較連續分配方式:

離散分配記憶體:

分頁方式下,記憶體的使用率高,浪費少。但不是絕對沒有碎片(程序的最後一頁不總是能佔滿乙個物理塊)

記憶體劃分成多個小單元,每個單元k大小,稱(物理)塊。作業也按k單位大小劃分成片,稱為頁面。

① 物理劃分塊的大小 = 邏輯劃分的頁的大小

②頁面大小要適中。

頁號到物理塊號的位址對映

關鍵是找到頁表(pcb)

根據頁表找物理塊

若記憶體和作業均按1k大小劃分塊或頁,乙個4k大的作業可如下圖般分配:

①離散分配過程:

②如何執行乙個作業?

pcb記錄記憶體首位址,根據該位址順序取指令執行即可。

頁表記錄作業的各頁分別占用了記憶體的哪些塊;  pcb則記錄頁表在記憶體的位址——程序構造時伴隨著構造頁表,該核心資訊也要放在記憶體中供訪問;

若要執行某作業的一條指令,其相對位址是24b (設10b一頁,頁表如右表),其實體地址到底是多少呢?

分析其所在的頁和偏移得:2號頁(頁號從0開始) ,偏移4b處是該條指令

查頁表找頁面對應的塊(2號頁儲存在6號物理塊)

找物理塊6,向下偏移4b,找到要執行的指令。取出執行即可。

計算上就是求商(頁號)及取餘(偏移量)的過程

任意一條指令的相對位址如何知道是第幾頁的第幾條指令?

邏輯位址空間分析

設一分頁系統,頁面大小為8b(設8條指令)  乙個大小為 32b 的作業分配記憶體

頁號+頁內位址(即頁內偏移)

計算口訣

頁表長度 a

頁號的位數 m(或總位數-頁內位數)

圍繞頁表進行工作,那麼頁表資料放在哪?

分頁系統中,程序建立,放入記憶體,構建頁表,在pcb中記錄頁表存放在記憶體的首位址及頁表長度。

1.執行某程序a時,將a程序pcb中的頁表資訊寫入ptr中;

2.每執行一條指令時,根據分頁計算原理,得到指令頁號x和內部偏移量y;

3.cpu高速訪問ptr找到頁表在**;

4.查頁表資料,得到x實際對應存放的物理塊,完成位址對映計算,最終在記憶體找到該指令。

問題:基本分頁機制下,一次指令需兩次記憶體訪問,處理機速度降低1/2,分頁空間效率的提高以如此的速度為代價,得不償失。

改進:減少第1步訪問記憶體的時間。增設乙個具有「並行查詢」能力的高速緩衝暫存器,稱為「快表」,也稱「聯想暫存器」(associative memory),ibm系統稱為tlb(translation look aside buffer)。

快表放什麼?: 正在執行程序的頁表的資料項。

快表的暫存器單元數量是有限的,不能裝下乙個程序的所有頁表項。雖不能完全避免兩次訪問記憶體,但如果命中率a高還是能大幅度提高速度。

設一次查詢訪問快表時間為t' ,則  

eat= a*t' + (1-a)(t'+t)    +    t

= 2t +t' -t*a

程序分頁離散存放,但頁表的資料是連續在存放記憶體的。而頁表可能很大:

現代作業系統支援非常大的邏輯位址空間的程序。如32位系統,可編址的最大**數為232,若頁面大小為4kb(4*210),則支援的最大程序頁表項數可達碼232/212=220,有1m個,每個頁表項佔1b(位元組),則頁表大小就有1mb。

兩級頁表

將頁表分頁,並離散地將頁表的各個頁面分別存放在不同的物理塊中

為離散分配的頁表再建立一張頁表,稱為「外層頁表」,其每個表項記錄了頁表頁面所在的物理塊號。

分頁儲存管理和分段儲存管理

1.採用相聯儲存器後位址轉換過程,用圖表示出來。答 2.詳述分段管理和分頁管理的區別。答 分段是資訊的邏輯單位,有源程式的邏輯結構及含義所決定,是使用者可見的,段長由使用者根據需要來確定,段起始位址可從任何記憶體位址開始。在分段方式中,源程式 段號 段內位移 經鏈結裝配後仍保持二維 位址 結構,引入...

分頁儲存管理和分段儲存管理

1.採用相聯儲存器後位址轉換過程,用圖表示出來 2.詳述分段管理和分頁管理的區別。分頁管理 分頁儲存管理是將乙個程序的邏輯位址空間分成若干個大小相等的片,稱為頁面或頁,並為各頁加以編號,從0開始,如第0頁 第1頁等。相應地,也把記憶體空間分成與頁面相同大小的若干個儲存塊,稱為 物理 塊或頁框 fra...

分頁儲存管理和分段儲存管理

1.採用相聯儲存器後位址轉換過程,用圖表示出來 2.詳述分段管理和分頁管理的區別。分段管理 是資訊的邏輯單位,由源程式的邏輯結構及含義所決定,是使用者可見的,段長由使用者根據需要來確定,段起始位址可從任何記憶體位址開始。在分段方式中,源程式 段號 段內位移 經鏈結裝配後仍保持二維位址結構,引入目的是...