存储管理的模式
物理地址与逻辑地址
逻辑地址
又称相对地址,是用户编程所用的地址空间。
逻辑地址从0开始,有一维地址(地址)和二维地址(段号:段内地址)的编址方式。
物理地址
又称绝对地址,是程序执行所使用的地址空间。处理器执行指令时按照物理地址进行。
主存储器复用
分区复用
主存划分为多个固定/可变尺寸的分区,一个程序/程序段占用一个分区
页架复用
主存划分为多个固定大小的页架,一个程序/程序段占用多个页架
存储管理的基本模式
单连续存储管理
一维逻辑地址空间的程序占用一个主存固定分区或可变分区
段式存储管理
段式二维逻辑地址空间的程序占用多个主存可变分区
页式存储管理
一维逻辑地址空间的程序占用多个主存页架区
段页式存储管理
段式二维逻辑地址空间的程序占用多个主存页架区
存储管理的功能
地址转换
地址转换
又称重定位,将逻辑地址转换为绝对地址
静态重定位
在程序装入时进行地址转换。由装入程序执行,早期小型OS使用
动态重定位
在CPU执行程序时进行地址转换。依赖硬件地址转换机构
分配与去配
分配
存储管理软件进行具体的主存分配操作,并记录主存的分配情况
去配
进程撤离或归还主存时,存储管理软件收回其主存,并调整主存分配表
存储保护
为避免内存中的多个进程互相干扰,必须对其进行保护。
- 私有主存区:可读可写
- 公共区的共享信息:根据授权
- 非本进程信息:不可读写
CPU检查是否允许访问,不允许则产生地址保护异常。
虚拟存储器
基本思想
把进程全部信息放在辅存中,执行时先将一部分装入主存,以后根据执行行为随用随调入。
如果主存中空闲空间不够,存储管理根据执行行为将主存中暂时不用的部分调出到辅存。
实现思路
建立和自动管理两个地址空间。
- 虚拟地址空间:容纳进程装入
- 实际地址空间:承载进程执行
单连续分区存储管理
概念
每个进程占用一个物理上完全连续的区域。包括单用户连续存储管理、固定分区存储管理、可变分区存储管理。
单用户连续分区存储管理
主存区域划分为系统区和用户区。设置栅栏寄存器分割区域,进行存储保护。
一般采用静态重定位进行地址转换。
硬件实现代价低,适用于单用户单任务OS,如DOS。