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.二级页表需要通过一次寻址才能映射到对应的页框

posted on   lh03061238  阅读(110)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示