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

  • 相关阅读:
    php 时间段查询排序分组
    php 导出word
    关于UVM driver的幕后
    三次握手的必要性
    如何卸载360天擎之火绒与天擎相爱相杀
    【虚拟机】VirtualBox设置共享文件夹
    【数据结构与算法】打开转盘锁:使用图的广度优先遍历实现
    【Python】PDF文档导出指定章节为TXT
    【数据结构与算法】不同路径 III:使用哈密尔顿路径算法实现
    【Java】可比较泛型建数组传递报强转类型错误解决方案
  • 原文地址:https://www.cnblogs.com/lh03061238/p/14200107.html
Copyright © 2020-2023  润新知