免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1396 | 回复: 1
打印 上一主题 下一主题

虚拟内存的分页机制一点总结(机制及倒排页表) . [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-04 16:39 |只看该作者 |倒序浏览
虚拟内存的分页机制一点总结(机制及倒排页表) .








1.设计思想

用固定大小的页来描述逻辑地址空间,用相同大小的页框来描述物理内存空间,由操作系统实现从逻辑页到物理页框的映射,同时负责对所有页的管理和进程运行的控制




2. 相关名称定义

页帧:被分成一页大小的逻辑地址

页框:被分成一页大小的物理地址

页表:页帧映射到页框的表格


标志位:标志页帧是否已成功映射到页框,0否 1是




3.工作机理(按图1 来阐述)

   3.1 当执行到某一条指令(逻辑地址)时,检查该指令所在页表中的标志位(一共16页,所以有16个表项)

   3.2 若为1,即将图中的页表号放到寄存器的高3位,将逻辑地址的低12为放到寄存器的低十二位,然后将寄存器的内容作为物理地址送到内存总线。

   3.3 若为0,引起缺页中断,转到操作系统核心态。核心态根据页面淘汰算法淘汰掉一个页框,然后在页表处理映射关系,将标志位置位。然后转回

用户态,程序从3.1从新开始,此时标志位已经为1,所以能成功执行。

                                                                                    




              图1  16 个4KB 的页面MMU的内部操作(图片来自现代操作系统: Andrew)

4.页表处理与优化

当逻辑地址太大时,页表将会很大。主要取决于地址总线,此时有下面的几种解决方法:

4.1  TLB  (Translation lookaside buffer),即为页表做缓冲

4.2  多级页表

4.3 倒排索引,即根据 物理地址来找逻辑地址,而不是根据逻辑地址来找物理地址。

缺点:最差情况下需要搜索整个倒排索引表才能找到映射关系

优化:使用hash算法,最终有如图2的页表

                                                                                               




图2  倒排页表(图片来自现代操作系统: Andrew)

论坛徽章:
0
2 [报告]
发表于 2012-01-04 16:39 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP