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 筆)

#7042929
1. 題目解析 本題主要考察在一個分頁...
(共 1208 字,隱藏中)
前往觀看
3
0
#7083208

【解題思路】

反分頁表(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

【常見混淆提醒】

  1. 考試題目如果用 1000,那通常是硬碟廠商的行銷數字,不是科學數字。
    但學科考試 一定用 1024 制

  2. 不要把 bit(小寫 b)看成 Byte(大寫 B)

    • 1 Byte = 8 bits

    • b/s 是網路速度(bits per second)

    • B 是檔案大小(Bytes)

0
0

私人筆記 (共 3 筆)

私人筆記#7197055
未解鎖
單位 換算 1 KB 2¹⁰ byte...
(共 77 字,隱藏中)
前往觀看
1
1
私人筆記#5585063
未解鎖
在一個分頁系統(paging syste...
(共 701 字,隱藏中)
前往觀看
1
1
私人筆記#7756224
未解鎖
 實體記憶體來存目前整個系統的分頁表 ...
(共 80 字,隱藏中)
前往觀看
0
0