17.
在一個分頁系統(paging system)中,假設邏輯位址(logical
address)為 32 bits,分頁大小(page size) 為 4K bytes,實
體記憶體(physical memory)為 256M bytes。此系統使用反
分頁表(inverted page table)且 每一分頁表項目(page table
entry)占 4 bytes。假設目前有 3 個程序在系統中,則該系統
需要用多少 實體記憶體來存目前整個系統的分頁表?
(A) 12M bytes
(B) 48K bytes
(C) 12K bytes
(D) 256K bytes
統計: A(9), B(38), C(22), D(146), E(0) #3145737
詳解 (共 2 筆)
【解題思路】
反分頁表(inverted page table)與一般分頁表最大差別:
一般分頁表:為每個程序建 page table(依邏輯位址大小決定)。
反分頁表:整個系統只有一張 page table,表項數量 = “實體頁框數(frames)” 不依程序數量而增加。
因此反分頁表的大小 =
(實體記憶體的頁框數) ×(每個表格項目大小)
注意:跟有幾個程序完全無關!
【步驟 1:算出 1 個 page 的大小(4 KB) → 幾個 byte?**
4 KB =
4 × 1024 = 4096 bytes
【步驟 2:算出實體記憶體 256 MB → 幾個 byte?】
256 MB =
256 × 1024 × 1024 = 268,435,456 bytes
(這不是考點,只是要知道最後會用來除 page size)
【步驟 3:算出實體記憶體共有多少頁框(frames)】
公式:
頁框數 = 實體記憶體大小 / 分頁大小
= 268,435,456 bytes ÷ 4096 bytes
= 65,536 個頁框
也就是:
256 MB / 4 KB = 262,144 KB / 4 KB = 65,536
【步驟 4:反分頁表 = 每個頁框 1 個表項**
反分頁表大小:
=(頁框數 65,536)×(每個 PTE = 4 bytes)
→ 65,536 × 4 = 262,144 bytes
【步驟 5:把 262,144 bytes 換成常見單位】
262,144 bytes =
262,144 ÷ 1024 = 256 KB
【結論】
反分頁表總大小 = 256 KB
【為什麼 3 個程序不影響答案?】
因為反分頁表不是依「邏輯頁(程序記憶體)」建立,而是依:
實體頁框(physical frames) 數量決定。
物理記憶體容量固定 → 頁框數固定 → PTE 數量固定。
所以:
3 個程序
30 個程序
300 個程序
反分頁表大小都一樣。
【各選項逐一破題】
(A) 12M bytes
→ 反分頁表不可能大到 MB 等級。
(B) 48K bytes
→ 假如頁框只有 12,000 個才可能,但 256MB/4K 不會只有這麼少。
(C) 12K bytes
→ 更不可能,明顯太小。
(D) 256K bytes
→ 正確!完全符合計算結果。
【正確答案】
(D) 256K bytes
【記憶技巧】
一句話刻在腦裡:
反分頁表大小 = 實體頁框數 × 每項大小
與程序數完全無關。
或更口語:
反分頁表看物理,不看邏輯。
【最核心觀念:電腦都是用 1024 制】
因為電腦是 二進位(2 的冪次)
1024 = 2¹⁰
所以所有的單位都是 × 1024 不是 ×1000。
【最小到最大單位與換算】
1. Byte(位元組)
-
最基本單位
-
1 byte = 8 bits(這是基本常識,也要會)
2. KB(Kilobyte)
1 KB = 1024 bytes
口訣:
KB 比 Byte 大 1024 倍
3. MB(Megabyte)
1 MB = 1024 KB
= 1024 × 1024 bytes
= 1,048,576 bytes
4. GB(Gigabyte)
1 GB = 1024 MB
= 1024 × 1024 × 1024 bytes
= 1,073,741,824 bytes
【完整表(最常用 4 層)】
| 單位 | 公式 | 等於 bytes |
|---|---|---|
| 1 Byte | 基本單位 | 1 |
| 1 KB | 1024 Bytes | 1,024 |
| 1 MB | 1024 KB | 1,048,576 |
| 1 GB | 1024 MB | 1,073,741,824 |
【你只要記住一句話就能全部推得出來】
每升一級就是 ×1024
Byte → KB → MB → GB → TB → PB
每跳一次就 ×1024。
【最簡短口訣】
1 → 1024 → 1024² → 1024³
也就是:
-
KB = 1024¹ bytes
-
MB = 1024² bytes
-
GB = 1024³ bytes
【常見混淆提醒】
-
考試題目如果用 1000,那通常是硬碟廠商的行銷數字,不是科學數字。
但學科考試 一定用 1024 制。 -
不要把 bit(小寫 b)看成 Byte(大寫 B)
-
1 Byte = 8 bits
-
b/s 是網路速度(bits per second)
-
B 是檔案大小(Bytes)
-