23 操作系统-页式内存管理 下

参考

https://blog.51cto.com/13475106/category6.html及狄泰软件相关课程

通过之前的介绍出现一些需要注意的问题
1.操作系统如何管理实际的物理内存
2.页表与不同任务有怎样的关系
3.页表对任务的意义是什么
4.页表交换时如何选择需要替换的内存页
5.页表具体是如何构成的

A.操作系统如何管理实际的物理内存

页框与页面
页框:物理内存空间中的页
页面:逻辑内存空间中的页
操作系统对物理内存的管理-首先操作系统必须知道物理内存的使用情况,然后建立结构对物理内存进行管理,结构记录包括页框是否可用,被谁使用;最后为具体的应用程序分配页表
操作系统-页式内存管理

B.页表与不同任务有怎样的关系

每个任务都有专属的页表,页表是任务上下文的一部分操作系统-页式内存管理

C.页表对任务的意义是什么

1.页表机制能够保证任务无法意外的访问或破坏其它任务的内存
2.页表是虚拟内存空间与物理内存空间的分界线
3.因为页表的存在,各个任务才具备相同且独立的内存空间
4.页表是虚拟内存通往物理内存的唯一通道
操作系统-页式内存管理

D.页交换时如何选择需要替换的内存页

在进行替换时的原则是:对不再使用的内存页进行替换
1.FIFO页交换算法-将最先进入内存的页移除
2.LRU页交换算法-将当前使用最少的页从内存移出
FIFO页交换算法原理
操作系统-页式内存管理
LRU页交换原理
操作系统-页式内存管理
LRU页交换算法原理-访问计数的更新方式
1.每个时间周期将所有页框的访问计数减1
2.当某个页面被访问时,RW将被访问计数加1
3.访问计数最小的页面是最近未被使用的页

E.页表具体是如何构成的

1.页表的本质是一个映射表
2.虚拟内存空间的每一页映射到一个页框
3.页表可以看作做一维整形数组
单级页表
1.每一个任务都有页表
2.单级页表大小固定
3.根据程序云的局部性原理-多数情况下,页表为稀疏状态,单级页表会浪费大量内存资源操作系统-页式内存管理
二级页表
1.把页号分为两段:页目录+二级页号
2.如果下级页表的所有表项为空,那么页目录为空
操作系统-页式内存管理
二级页表示例-假设当前需要访问虚拟页为0x52,则,页目录为0x5,二级页号为0x2。所以:对应的页框号为0x31
操作系统-页式内存管理

小结

1.操作系统通过页框表对物理内存进行管理
2.每个任务都有自己专属的页表,任务通过页表使用物理内存
3.需要页置换时,通过规则选择短期内不再使用的页进行置换
4.单级页表能够快速映射对应的页框,但造成内存浪费
5.二级页表将页号分为两部分:页目录+二级页号
6.二级页表需要通过一次寻址才能映射到对应的页框

原文地址:https://www.cnblogs.com/lh03061238/p/14200107.html