一个页表项有多大???
答案:2 悬赏:80 手机版
解决时间 2021-02-28 02:37
- 提问者网友:谁的错
- 2021-02-27 18:35
一个页表项有多大???
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-02-27 18:40
我的辅导书上有如下: “以32bit逻辑地址空间,4KB页面,4B页表项为例”我想问下,这个“4B页表项”是怎么算出来的???但是,在教材P133, 同样““32bit逻辑地址空间,4KB页面”,每个页表项暂用1B,故每个进程仅仅其页表就要占用1MB的内存空间”怎么会有两种表示方法了???? 问题1: 请教高手,这个页表项是怎么算出来的??我的理解是,一个页表项该是根据该页所放的页面地址数来决定的! 比如如果一个页表中映射2^20个页面,相应每个页表项应该占据 20位即2.5B; 如果一个页表中映射2^10个页面,相应每个页表项应该占据 10位即1.25B。这样理解对吗?但是如果是算出来的,怎么同样的逻辑地址空间,同样的页面大小会有不同的页表项大小?? 如果不是算出来的,难道是认为规定的吗?问题2: 在多级页表中,页表是放在哪里啊?? 那么多页表是用什么形式的逻辑结构或物理结构存放的? 是页还是 什么的???谢谢!!!
全部回答
- 1楼网友:想偏头吻你
- 2021-02-27 19:04
(1)32bit地址空间,可寻址的地址为4g,如果按字节寻址,可寻址的内存大小为4gb。每个页面4kb,那么按页面寻址,则需要4gb/4kb=2^20个地址(页面个数),即用20位来寻址。页表项=页面数=20位。页表项应该是1m个,而不是4b。每个页表项如果是1b,则用内存空间是1mb。教材上是对的,你的参照书错了。页表项一般不为一字节,在windows系统中,按4kb分页。页表是4kb大小,放入一个物理页面中。页表项是32位,有1024个页表项,前20位表示对应的物理页面,后12放各种标志位。(2)多级页表和一级页表是一样的,是不过是用递归来实现地址的不断划分。多级页表中的页表都是存在内存中。如果是内存分页系统,一般是存在内存的一个物理页中。从页表寄存器中得到一级页表的物理地址,再根据地址格式,从一级页表的物理地址中读出数据所在的二级页表的的地址,依此递推,直到取出最后级页表,读出数据所在内存中的页面,再加上地址格式中的偏移量,就得出了真正的物理地址。 希望对你有所帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯