hel*_*ear 3 operating-system page-size
这个陈述对于操作系统意味着什么?
通过2 ^ 32地址空间和4K(2 ^ 12)页面大小,这将在页表中留下2 ^ 20个条目.每个条目4个字节,这相当于一个4 MB的页表,它太大而不能合理地保留在连续的内存中.(并且每个进程交换机都要交换内存.)请注意,对于4K页面,只需要1024页就可以保存页面表!
请解释他们最后如何计算1024页?在这方面,每个条目4个字节是多少?4K页面大小是什么意思?4K意味着4*1024字节?他们是在考虑4个字节(每个字)还是4个字节意味着它有4*1024个字,每个字有一些大小,比如4个字节?
请向我解释他们最后如何计算1024页?
请记住,我们正在处理两个权力,所以
4 MB = 4,194,304字节
4 KB = 4096字节
4 MB / 4 KB= 4,194,304 Bytes / 4096 Bytes= 1024字节
在这方面,每个条目4个字节是多少?
您需要32位来引用所有2 ^ 32地址空间.每字节8位,32 bits= 4字节.
例如,第一个地址是0,最后一个地址是4294967295或(2 ^ 32-1).
Entry | Page Memory Location
------------------------------------------
1 | 0
2 | 4096
3 | 8192
... | ...
2^20 | 4294963200 -> (2^32 - 1) - 4096
Run Code Online (Sandbox Code Playgroud)
表中的每个条目都指向内存中的1页.在这个例子中,我们可以说它从零开始.将有2 ^ 20个条目,它们将覆盖整个内存地址范围(2 ^ 32).由于每个条目都是4096字节,因此您只需要2 ^ 20个条目即可覆盖所有页面.
4K意味着4*1024字节?
是的,它指的是每页4096字节(4*1024).
他们是在考虑4个字节(每个字),还是4个字节意味着它有4*1024个字,每个字的大小有4个字节?
它在32位处理器上可以更小,但通常一个字是32位或4字节.
增加评论
当我说页面大小是4K时,那意味着它有1024个条目,每个条目有4个字节,或者1024*4条目,每个条目有1个字节或者其他什么?
该页面可以包含任何内容,它是一个数据容器,在本例中为4096字节.该页面表保存条目指向的网页.正如David所说,由于页表存储在内存中,因此它也存储在页面中.
有人说这种解释是错误的.正确的是:使用2 ^ 32地址空间和4K(2 ^ 12)页面大小,这会在表格中留下2 ^ 20页.每个条目4个字节,这相当于一个4 GB的页表,它太大而不能合理地保留在连续的内存中.(并且每个进程交换机都要交换内存.)请注意,对于4K页面大小,这将需要1024 k页(= 1M页)来保存总表!他是对还是错?
他不对.如果页面表实际上包含来自每个页面的数据,那么他就是正确的.使用4096字节页面和2 ^ 20个条目,这将等于4,294,967,296字节(4 GB),但条目大小仅为4个字节.所以你用2 ^ 20个条目多次获得4,194,304字节(4 MB).