两级页表
【摘要】
由于引入了分页管理,进程在执行时不需要将所有的页调入内存页框,而只需将保存有映射关系的页表调入内存。但是,我们仍然需要考虑页表的大小。
以32位逻辑地址空间、页面大小4KB、页表项大小4B为例,若要实现进程对所有逻辑地址空间的映射,则每个进程需要2^20个页表项。也就是说,每个进程仅页表这一项就需要4MB驻村...
由于引入了分页管理,进程在执行时不需要将所有的页调入内存页框,而只需将保存有映射关系的页表调入内存。但是,我们仍然需要考虑页表的大小。
以32位逻辑地址空间、页面大小4KB、页表项大小4B为例,若要实现进程对所有逻辑地址空间的映射,则每个进程需要2^20个页表项。也就是说,每个进程仅页表这一项就需要4MB驻村空间,这显然是不切实际的。即便不考虑对全部逻辑地址空间进行映射的情况,一个逻辑地址空间稍大的进程,其页表大小也可能是过大的。
以一个40MB的进程为例,页表项共40KB(40MB/4KB*4B),若将所有页表项内容保存在内存中,则需要10个内存页框来保存整个页表 。整个进程大约为1万个页面,而实际执行时的几十个进程页面的大小来说,肯定是降低了内存利用率的,从另一方面来说,这10页的页表项也并不需要同时保存在内存中,因为在大多数 情况下,映射所需要的页表项都在页表的同一个页面中。
为了压缩页表,我们进一步延伸页表映射的思想,就可得到二级分页,即使用层次结构的页表:将页表的10页空间也进行地址映射,建立上一级页表,用于存储页表的映射关系。这里对页表的10个页面进行映射只需要10个页表项,所以上一级页表只需要1页就已经足够
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/100069376
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)