作者svanavs (svanavs)
看板Grad-ProbAsk
標題Re: [理工] [OS]-Virtual Memory
時間Tue Sep 15 18:35:15 2009
※ 引述《yesa315 (XD)》之銘言:
: Consider a logical-address of 2048 pages of 1024 words (4 bytes) each,
: mapped onto a physical memory of 64 frames. Please answer the following
: questions assuming that the smallest memory allocation unit is one byte
: (8 bits).
: (c)Assuming a 2-level page table is used and the first-level table has 32
: entries, what is the minimal amount of memory (in bytes) required by the
: page tables?
: 可以計算出每個page=1kb 共有2048個pages 以1-level來計算
一個page應該是4KB
level-1 32 entries => level-2 2 entries per page
level-1 entry size = 1 bit
level-2 entry size = 6 bits (2^6 = 64)
since smallest mem allocation = 1 byte , one byte per entry
32 + 32*2 = 96 bytes
: table size=2048*6(entries)bits 以上one-level的算法沒錯吧?
: (64 frames=2^6)
: 再來是2-level的所有table size p1=5 bit p2=6 bit
: 再算第一level的table size時 我就卡住了到底它的每個entry大小為何呢?
: 且如何計算第一level的table size大小呢呢?
: 謝謝
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.189.62
推 yesa315:打太快key錯1k XD 依你這樣說最多也只要1 BYTE吧? 只有6 09/15 20:24
→ yesa315:BIT而以不是嗎 ? 那如果把Page no加入考量 則level-1是否 09/15 20:26
→ yesa315:為 [5 bit + 1 bit(entry)]*32 而level-2為[6+6 bit]*2^6? 09/15 20:28
→ yesa315:突然想到 你是不是把Page no也加進來算 5+1 bit 約1 byte? 09/15 20:30
→ yesa315:6+6bit 約2byte 這樣來解是你的答案就合理 09/15 20:30
→ yesa315:但是答案我認為是 32*1 + 2^6*2 = 160 bytes 09/15 20:32