如何计算页表大小?

7
我想知道如何计算页表的大小(以字节为单位),如果每个页面有一个条目,每个条目需要4个字节,并且我的页面大小为64KB。
答案是:如果您的页面大小为64KB,则可以存储2的14次方个页面。因此,为了存储每个页面的条目,您需要14乘以4个字节,即56个字节。因此,整个页表的大小为56乘以2的14次方,即917504个字节。

一个页表应该有多于1个条目,否则它就没有用。请重新检查你的作业并纠正问题。 - Alexey Frunze
5个回答

16

页面表的大小(字节)= 页面表条目数量 * 条目大小

页面表条目数量 = 内存大小 / 页面大小

在这种情况下,条目大小为4个字节。

代入计算即可。


0

页面表的大小 = 页面表项数 * 单个表项大小。 页面表项数 = 逻辑地址空间大小 / 单个页面大小


0

由于您没有清楚地说明KB的含义,它可能指的是千字节(kB),即1000字节,也可能是基比字节(KiB),即1024字节。

页面表大小可以通过乘法multiplication计算出来。


1
嗯,如果KAR在谈论页面和页表,那么对我来说很明显他们指的是1024。 - Simon Knights
4
如果我真的在街上遇到任何使用“KiB”的人,我会用一根湿芹菜把他们打死(这样我的快感会更持久)。这里所说的千字节是指1024。 - paxdiablo
@Spoike,感谢您提供的关于乘法的维基百科链接,我学到了很多:p - Benny

0

答案应该是Number-of-pages * page-table-entry-size。页面表只包含页面的地址;页面大小无关紧要。

因此,如果您有1000个页面,则页面表大小为4*1000,如果您有1000000个页面,则为4*1000000。


@KAR:根据您在原始问题中给出的定义,每个页面表项为4字节,并且每个页面都有一个表项。因此,如果您有1000个页面,则页面表具有1000个条目,每个条目为4字节。这使得总共为4000字节。这是非常小的内存。现在请计算一下您当前系统的情况。 - Simon Knights

0

我认为这并不简单,每个页面表项都有类似有效、引用或脏位的东西,如果所有三个都包括在内,1000页的表格大小将达到1000x(4x8+3)位。如果我说得对,请告诉我,因为这也是我的作业;-)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接