簡體   English   中英

Tanenbaum的現代操作系統中的頁表大小練習

[英]Page table size exercise from Tanenbaum's Modern Operating Systems

我決定通過解決A. Tanenbaum的“現代操作系統”中的問題來測試我對操作系統內部的知識。 並遇到以下問題:

假設一台計算機具有48位虛擬地址和32位物理地址。 如果頁面為4 KB,那么如果頁面只有一個級別,那么頁面表中有多少個條目?

與往常一樣,由於我們具有48位虛擬地址空間,因此我們需要能夠將每個內存地址映射到物理地址。 因此,我們有2 ^ 48個地址,每個頁面為4KB = 2 ^ 12,因此我們在頁面表中需要2 ^ 36 = 2 ^(48-12)個條目。 因此,當我們獲得48位地址時,我們使用較高的36位作為頁表的索引來查找頁幀的數目,然后使用較低的12位作為頁幀中的偏移量。

然后,我在解決方案手冊中查找了正確的答案:

每頁需要一個條目,或者2 ^ 24 = 16×1024×1024個條目,因為頁碼字段中有36 = 48 − 12位。

我不明白正確答案背后的原因,這確實是正確的,還是我遺漏了一些東西?

你是絕對正確的。 如果您具有48位虛擬地址和4KB頁面,則至少需要12位才能在頁面中選擇正確的字節。 因此,您的頁表中有2 ^ 48-2 ^ 12 = 2 ^ 36個條目,可以將虛擬地址轉換為物理地址。 (其中一些會在您的磁盤上)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM