2017-07-19 94 views
1

給定32位的邏輯地址空間,8 MB的存儲空間和4 KB的頁大小,計算2級Hierarchical Paging表的最大大小。每個條目包含一個額外的4位控制序列。計算頁表的最小和最大大小

我已經計算出幀數爲2^11,因此最低級別的每個條目必須包含15位(11個用於識別幀號和4個用於控制)。爲了更簡單的計算,我把它四捨五入到了16。

我已經將從我的LSB開始的邏輯32位地址拆分爲12位物理內存偏移量,11位內部頁面偏移量(考慮每個條目頁面爲2個字節)和9外部頁面。

當只有一個進程正在使用內存時,我需要一個頁面作爲我的外部表格,一個頁面作爲我的內部表格,因此表格只需要8 KB。

但是我在最大情況下遇到了一些麻煩。如果整個邏輯地址空間在使用中,表格佔用多少空間?

回答

0

讓寫什麼,我們知道

32 bits logical address space 
8 MB RAM 
4 KB page size 
9 bits for outer page table 
11 bits for inner page table 

如果所有的邏輯存儲空間被映射:那麼你必須從1級2^9每個條目指向含有2^11條目的第二級頁表。

因此,對於二級頁表,你有2^9那些,每個有2^11條目。這就是:(2^9)*(2^11)* 2B = 2MB

所以對於所有的二級頁面表,你需要2MB

現在怎麼樣的外部頁面? 你有一個,有2^9個條目,每個條目的大小爲2B。

即1KB,但由於頁面大小爲4KB,因此會得到整個頁面。

所以答案是:2MB + 4KB,4KB是因爲操作系統在頁面中分配內存,即使外層表只需要1KB。