2013-01-07 49 views
2

我正在查看操作系統的一些考試試卷,並且遇到了一個我根本找不到的問題。內存管理方案是尋呼 這裏有一個問題:如何計算16位地址指針中的頁面幀

An operating system that runs on a CPU with a 16 bit address pointer employs a paging memory management scheme with a page size of 1024 bytes. 
a) At most how many frames can physical memory contain? 
b) Indicate which bits in an address pointer are used for page and offset. 
c) A process image of size 3.5K resides in memory. You are given the page table of this process in Figure 1 below. What physical address will the hexadecimal logical address 0x0FCE result in? Show your calculations. 
d) How much internal fragmentation does this process produce? 

Page Frame 
0    4 
1    8 
2    9 
3    6 
Figure 1 Process Page Table 

任何人可以幫助我嗎?

回答

6
  1. 16位地址總線允許訪問物理內存的2^16 = 64kB。由於在這個系統上你有大小爲1024B = 2^10的頁面,你的內存將落入2^16/2^10 = 2^6物理幀中。

  2. 鑑於以前的結果,頁面爲1024 = 2^10 bytes,您需要10位來訪問頁面的任何字節。因此,這6個高位用於獲取頁表(基本上是作業中的圖1)的頁索引,並且10個低位用於在該頁中進行偏移。

  3. 邏輯地址0xfce駐留在第四頁,因爲六個高位是000011b = 3 = 4th page = 0x0c00-0x0fff。給定頁表並假設物理內存是連續的,則第四頁映射到以1024 * 6 = 0x1800 = 0001100000000000b開始的第六物理幀。該頁面的六個高位爲000110b,其中我們添加了上一個答案產生的10位偏移量:000110b << 10 | 0x3ce = 0x1bce。由於幀分配不是連續的(4,6,8,9),頁面4和6之間的空洞(即1024B)以及頁面6和8之間的空洞(即再次1024B)導致物理內存碎片。

希望得到這個幫助。

+0

你是個傳奇人物謝謝:) –