存储管理的主要功能

操作系统课程

  • 掌握

    • 存储器层次、逻辑地址空间和物理地址空间及其关系;
    • 地址重定位、存储保护机制; 
    • 分区原理、交换原理、覆盖原理、对换原理;
    • 分页存储管理基本概念、实现思想及优点;
    • 分段存储管理基本概念、实现思想及优点;
    • 虚拟存储器、程序局部性原理;
    • 各种虚存管理实现思想及地址变换过程 ;
    • 各种分页虚存页面替换算法 。
  • 了解

    • Linux 物理内存管理
    • Linux 进程虚拟地址空间管理

主存分配和回收:

  • 主要任务:将主存分配给多个程序,以提高主存利用率。
  • 选择合适的分配和回收算法及相应的数据结构,以提高主存利用率和分配、回收的速度。

地址转换和重定位:

  • 主要任务:屏蔽物理内存使用细节,解决用户程序装入(可以部分装入)。
  • 可执行文件生成中的链接技术
  • 程序加载(装入)时的重定位技术
  • 进程运行时硬件和软件的地址变换技术和机构

存储保护和主存共享:

  • 解决如何在多用户和多任务环境下,实现程序代码和数据共享和保护。
  • 代码和数据共享
  • 地址空间访问权限(读、写、执行)

存储器扩充:

  • 解决用户对内存容量要求与内存实际容量之间的矛盾,使运行的程序不受主存大小的限制。
  • 由应用程序控制:覆盖;
  • 由 OS 控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间)

一、存储器工作原理

1. 存储器层次

计算机的存储可以分为如下层次

  • 寄存器
  • 高速缓存
  • 内存储器
  • 磁盘缓存
  • 固定磁盘
  • 可移动存储介质

从上到下:

  • 容量越来越大
  • 速度越来越慢
  • 价格越来越低

本章主要讨论内存。从物理地址逻辑地址需要经过编译链接装载三个过程。

  • 编译程序负责记录引用发生的位置,编译或汇编的结果产生相应的多个目标代码模块,每个都附有供引用使用的内部符号表和外部符号表。符号表中依次给出每个符号名及在本目标代码模块中的名字地址,在模块被链接时进行转换。 
  • 链接需要解析内部和外部符号表,把对符号名字引用转换为数值引用,要转换每个涉及名字地址的程序入口点和数据引用点成为数值地址。
  • 装入时根据指定的内存块首地址,再次修改和调整被装载模块中的每个逻辑地址,将逻辑地址绑定到物理地址。

img-2024-04-17 19-03-57.png

反过来,将可执行程序逻辑地址转换 (绑定)为物理地址的过程称地址重定位

重定向完成后,操作系统还需要负责存储保护

二、连续存储空间管理

三、分页存储管理

对于固定分区存储管理可变分区存储管理,都有碎片存在。解决碎片有两种基本思路;

  • 可变分区采取内存紧凑技术消除碎片;
  • 分页存储管理采取由连续分配变为离散分配的方法。

四、分段存储管理

五、虚拟存储管理

要求

掌握:

  • 存储器层次、逻辑地址空间和物理地址空间及其关系;

  • 地址重定位、存储保护机制; 

  • 分区原理、交换原理、覆盖原理、对换原理;

  • 分页存储管理基本概念、实现思想及优点;

  • 分段存储管理基本概念、实现思想及优点;

  • 虚拟存储器、程序局部性原理;

  • 各种虚存管理实现思想及地址变换过程 ;

  • 各种分页虚存页面替换算法 。

  • 了解

  • Linux物理内存管理

  • Linux进程虚拟地址空间管理