• 操作系统03_存储器管理


    存储器的层次结构

    计算机系统存储层次至少有三级:最高层为CPU存储器(寄存器+高速缓存),中间层为主存(主存储器+磁盘缓存),最底层为辅存(固定磁盘、可移动存储介质等)。
    其中,寄存器和主存储器合称为可执行存储器。
    操作系统的存储器管理负责对可执行存储器的分配回收,以及提供在存储层次间数据移动的管理机制,例如主存与磁盘缓存、高速缓存与主存之间的数据移动等。

    对换技术

    对换是指把内存中暂时不能运行的进程或者暂时不用的程序和数据换出到外存上,腾出空间将已具备运行条件的进程或进程需要的程序和数据换入内存。
    对换分为整体对换(即进程对换,如处理机中级调度)和部分对换(又称页面/分段对换,用于虚拟存储系统的请求分页和请求分段式存储管理)。

    存储管理的方式

    • 分页存储管理
      • 将用户程序的地址空间分为若干个固定大小的区域,称为页
      • 页是信息的物理单位,分页是系统管理的需要,可提高内存利用率,对用户不可见
      • 页的大小固定且由系统决定
    • 分段存储管理
      • 将用户程序的地址空间分为若干个大小不同的段,每段可定义一组相对完整的信息
      • 段是信息的逻辑单位,分段是为了满足用户的需要
      • 段的长度不固定且决定于用户所编写的程序
    • 分段和分页都采用离散分配方式,都是通过地址映射机构实现地址变换。

    虚拟存储器

    虚拟存储器是指具有请求调入功能和置换功能,从逻辑上对内存容量扩充的一种存储器系统。

    1.基本工作原理

    基于局部性原理,应用程序在运行前无需全部装入内存,仅需将当前运行的少数页面或段装入内存便可运行,其余部分留在盘上。程序运行时需要访问的页或段已调入内存即可继续执行,但是如果未调入内存(缺页或缺段),便发出缺页或缺段中断请求,此时操作系统将利用请求调页或调段功能将他们调入内存,以便程序继续执行。此时如果内存已满,操作系统还需要利用页或段的置换功能,将内存中暂时不用的页或段调至盘上,腾出内存空间将要访问的页或段调入内存。

    2.页面置换算法

    不适当的置换算法会导致进程发生“抖动”,即刚被换出的页很快又要被访问,需要将它重新调入,此时又需要再选一页调出;而刚被调出的页很快又被访问,又需要被调入,如此频繁的更换页面,以致一个进程在运行中把大部分时间都花费在页面置换上,导致处理机的利用率急剧下降并趋于0,我们称此进程发生了“抖动”。常用的置换算法如下:

    • 最近最久未使用(LRU)置换算法
      该算法选择向前看,赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t。当需要淘汰一个页面时,选择现有页面中t最大的,即最近最久未使用的页面。其需要较多硬件支持,比如移位寄存器或者栈。
    • 最少使用(LFU)置换算法
      在内存中为每个页面设置一个移位寄存器,用来记录该页面被访问的频率。该算法淘汰在最近时期使用最少的页面。这种算法并不能真正反映页面的使用情况。
    • Clock置换算法
      实际应用中采用与LRU算法近似的Clock算法,又称最近未用(NRU)算法。
      该算法为每页设置一个访问位,默认值是0,再将内存中的所有页面通过指针链接成循环队列。当某页被访问时,访问位置1。置换算法选择淘汰页时,只需检查访问位,是0则换出,是1则置0,暂不换出,给予该页第二次驻留内存的机会。再按照FIFO算法检查下一个页面。
    • 页面缓冲算法(PBA)
    • 两个极端算法
      • 最佳置换算法(Optimal)
        理想的置换算法,具有最好的性能,作为其他算法的标准,来评价其他算法的优劣。
        该算法选择向后看,其所选择淘汰的页面是以后永不使用或者在最长时间内不再访问的页面。
      • 先进先出页面置换算法(FIFO)
        最直观的算法,性能差,应用少
        该算法总是淘汰最先进入内存的页面,即淘汰在内存中驻留时间最久的页面。

    3.请求分页/段存储管理方式

    请求分页/段系统是建立在基本分页/段基础上的,为了支持虚拟存储器功能,而增加了请求调页/段和页面置换功能。请求分页系统每次调入或换出的基本单位都是长度固定的页面,因此在实现上比请求分段系统简单,且更常用。
    为了实现请求调页/段和置换功能,系统需提供如下硬件支持和软件支持:

    • 硬件支持
      • 请求分页/段的页/段表机制
        请求页表增加四个字段:状态位P,访问字段A,修改位M,外存地址
      • 缺页/段中断机制
      • 地址变换机制
    • 软件支持
      • 实现请求调页/段的软件
      • 实现页面置换的软件
  • 相关阅读:
    软件评价——360安全卫士
    对于软件工程课程的疑问
    附加作业
    个人最终总结
    结对编程 电梯调度程序
    读程序作业
    VS2015 单元测试
    VS2015 的安装过程
    四则运算程序
    对于软件的点评
  • 原文地址:https://www.cnblogs.com/pycrab/p/9532373.html
Copyright © 2020-2023  润新知