2

一台机器有一个 32 位的地址空间和一个 8KB 的页面大小。页表完全在硬件中,每个条目有一个 32 位字。当一个进程被调度时,它的页表会以一个字/100 ns 的速率从内存中复制到硬件中。如果每个进程运行 100 毫秒(包括加载页表的时间),那么用于加载页表的 CPU 时间是多少?

是的; 这是一个家庭作业问题。我调查了一下,到目前为止我发现

页表大小(字节)=条目数*条目大小。因此 x= 32*8192(位) = 262144

我知道这是错误的答案,它是 52;4288ms 我将在后一个方程中使用

加载页表的时间/总时间 = CPU 使用率

在这里发布了一个我不太明白的解决方案。

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

4

2 回答 2

3

这里棘手的部分是计算页表的大小。一旦你有了它,将它乘以加载每个表条目所需的时间。表条目有多大无关紧要 - 只是加载它需要多长时间。

所以考虑一个 32 位地址空间。其中有多少个 8K 块?那是您引用的文档中减去位的部分。描述 8K 需要 13 位。请注意 2 ^ 13 = 8K(通过注意 1024 需要 10 位来快速计算它。它有点助记符且易于记忆。8 需要 3 位和 10 + 3 = 13。或者使用计算器查看 2 的幂等于多少8K。)

整个地址空间的 32 位减去 13 得到 19,因此有 2 ^ 19 页。

现在只需将 2 ^ 19 乘以 100 ns 和宾果游戏。你拥有了它。

于 2013-02-19T00:41:15.010 回答
2

“32 位地址空间和 8 KB 页面”意味着有 13 位(8 KB)用于页面偏移,其余 19 位用于索引页表条目。

参考图像

如果上面的图像不起作用,那么你可以在这里看到:

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 %

于 2018-02-17T18:14:36.153 回答