zoukankan      html  css  js  c++  java
  • 【操作系统】存储管理

    存储管理的基本概念

    • 逻辑地址:用户地址,从零开始编号
      • 一维逻辑地址:(地址)
      • 二维逻辑地址:(段号:段内地址)
    • 主存储器的复用方式
      • 按分区:主存划分为多个固定/可变分区,一个程序占一个分区
      • 按页架:主存划分为多个固定页架,一个程序占多个页架
    • 存储管理的模式
      • 单连续:一维逻辑地址程序,占一个固定/可变分区
      • 段 式:二维逻辑地址程序,占多个可变分区
      • 页 式:一维逻辑地址程序,占多个页架
      • 段页式:二维逻辑地址程序,占多个页架
    • 地址转换:逻辑地址 --> 物理地址
      • 静态重定位:程序装入内存时转换(早期 OS)
      • 动态重定位:CPU 执行时转换,效率考虑需要硬件帮助
    • 虚拟存储器
      • 由于程序的局部性顺序性等,可以考虑只将部分程序调入主存,其他的随用随调
      • 达到了面对程序员主存扩容的目的

    单连续分区存储管理

    • 单用户连续分区管理:主存区划分为系统区和用户区,采用静态重定位进行地址转换,一般适用于单用户单任务操作系统(DOS)
    • 固定分区管理:一个程序占一个分区,有主存分配表,容易产生内零头
    • 可变分区管理:按进程内存需求动态分配内存空间,容易产生外零头

    页式存储管理

    • 概念:
      • 主存分页架,程序分页。
      • 不同程序页可放在不同主存页架中,不需要连续
      • 页和页架关系由页表维护
      • 用位示图表示主存分配与去配,用进程页表维护进程逻辑完整性
    • 地址:
      • 逻辑地址:页号 + 单元号
      • 物理地址:页架号 + 单元号
    • 快表:
      • 利用 Cache 存放部分页表
      • 同 Cache 缓存内存数据一样,也是相联存储器技术,并且有淘汰策略,具体见《重学计算机 -- 计算机组成原理》
    • 页式虚拟存储
      • 页表:标识位 + 主存块号 + 辅存地址
      • 实现:
        • 查页表,若页在内存,则生成绝对地址
        • 若不在内存,发起缺页中断
        • OS 响应缺页中断,若内存有空闲页架,则从辅存中调入页。更新页表快表
        • 若无空闲页架,先淘汰页,再调入
    • 页面调度算法:
      • 同 Cache 和内存的调度策略,具体参考《重学计算机 -- 计算机组成原理》

    其他

    • 段式存储管理:基本不用,略
    • 段页式存储管理:基本不用,略
    • 内存管理单元 MMU:
      • 作用:管理虚拟存储器的硬件控制线路,把虚拟地址映射为物理地址,并提供内存保护,必要时淘汰页面
      • 实现:用一种数据结构 反置页表 IPT

    PS:许多年以前,当人们还在使用 DOS 或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还有用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块 0 首先运行,结束时他将调用另一个覆盖块。虽然覆盖块的交换是由OS完成的,但是必须先由程序员把程序先进行分割,这是一个费时费力的工作,而且相当枯燥。人们必须找到更好的办法从根本上解决这个问题。不久人们找到了一个办法,这就是虚拟存储器(virtual memory).虚拟存储器的基本思想是程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。比如对一个 16MB 的程序和一个内存只有 4MB 的机器,操作系统通过选择,可以决定各个时刻将哪 4M 的内容保留在内存中,并在需要时在内存和磁盘间交换程序片段,这样就可以把这个 16M 的程序运行在一个只具有 4M 内存机器上了。而这个 16M 的程序在运行前不必由程序员进行分割。

  • 相关阅读:
    1442. Count Triplets That Can Form Two Arrays of Equal XOR
    1441. Build an Array With Stack Operations
    312. Burst Balloons
    367. Valid Perfect Square
    307. Range Sum Query
    1232. Check If It Is a Straight Line
    993. Cousins in Binary Tree
    1436. Destination City
    476. Number Complement
    383. Ransom Note
  • 原文地址:https://www.cnblogs.com/blknemo/p/12811150.html
Copyright © 2011-2022 走看看