2013-02-19 27 views
2

機器有32位地址空間和8KB的頁面大小。頁表全部在 硬件中,每個條目有一個32位字。當進程被安排時,它的頁表被複制 到內存中的硬件,速率爲一個字/ 100ns。如果每個進程運行100ms (包括加載頁表的時間),那麼CPU時間的幾分之一用於加載 頁表?機器有32位地址和8KB機器

是的;這是一個家庭作業問題。我研究了它,到目前爲止,我發現

pagetable的大小(字節)=條目數*條目大小。 因此 x = 32 * 8192(bits)= 262144

我知道這是錯誤的答案,它是52; 4288ms 我將使用在

時間後方程來加載頁表/總時間= CPU使用

一個解決方案,我不是很瞭解這裏公佈。

http://www.cs.inf.ethz.ch/ssw/exercises/solution_04.pdf

回答

2

這裏棘手的部分是計算頁表的大小。一旦你有了,乘以它乘以加載每個表條目所需的時間。這與表格條目的大小無關 - 只需要多長時間才能加載它。

所以想想32位地址空間。它裏面有多少個8K塊?這是你引用的文檔中的一部分,它是一些可以縮小比特的文檔。它需要13位來描述8K。請注意,2^13 = 8K(通過注意到1024需要10位來快速計算它,它有助於記憶,容易記憶,8取3位,10 + 3 = 13)或者使用計算器查看2的冪等於8)。

32位爲整個地址空間少於13給出19,所以有2^19頁。

現在只需乘以2^19乘以100納秒和賓果。你擁有了它。

0

「32位地址空間和8 KB頁」表示頁偏移量爲13位(8 KB),其餘19位用於索引頁表項。

ref image

如果上面的圖片不能正常工作,那麼你可以在這裏看到:

https://www.slideshare.net/kumar_vic/computer-memory-management/14?src=clipshare

<----------------------32 bits(word)----------------------> 
<-----19 bits(index)----- ><-----13 bits(page offset)-----> 

因此,在頁表2^19項。

每個條目需要100 ns從磁盤複製到內存。

複製一個頁面表所需的總時間需要2^19 * 100 ns = 52.42 ms。

在一個進程上花費的總時間是100毫秒,所以專用於加載頁表的CPU時間比例爲(52.42)/(100)= 52.42%