一、单连续分区存储管理
【单连续分区存储管理】
- 每个进程占用一个物理上完全连续的存储空间(区域),可分为三种:
#单用户连续分区存储管理
#固定分区存储管理
#可变分区存储管理
【单用户连续分区存储管理】
- 适用于单用户单任务操作系统,如DOS
- 主存区域划分为系统区与用户区,系统区用来存放操作系统的程序与数据,用户区则用来存放这一个用户的进程
- 设置一个栅栏寄存器界分两个区域,硬件用它在执行时进行存储保护
- 一般采用静态重定位进行地址转换
- 硬件实现代价低
【单用户连续分区存储管理示意】
- 静态重定位:在装入一个作业时,把该作业中程序的指令地址和数据地址全部转换成绝对地址
【固定分区存储管理的基本思想】
- 支持多个分区
- 分区数量固定
- 分区大小固定
- 可用静态/动态重定位
- 硬件实现代价低
- 早期OS采用
【固定分区方式的主存分配】
- 主存分配表
- 主存的分配与去配
【固定分区方式的地址转换】
- 硬件实现机制与动态重定位
【可变分区存储管理概述】
- 固定分区存储管理不够灵活,既不适应大尺寸程序,又存在内存内零头,有浪费
- 能否按照进程实际内存需求动态划分分区,并允许分区个数可变
- 这就是可变分区存储管理
二、可变分区存储管理
【可变分区存储管理】
- 按进程的内存需求来动态划分分区
- 创建一个进程时,根据进程所需主存量查看主存中是否有足够的连续空闲空间
#若有,则按需要量分割一个分区
#若无,则令该进程等待主存资源 - 由于分区大小按照进程实际需求量来确定,因此分区个数是随机变化的
【可变分区方式的内存分配示例】
【可变分区方式的主存分配表】
- 已分配区表与未分配区表,采用链表
【可变分区方式的内存分配】
- 最先适应分配算法
- 邻近时应分配算法
- 最优适应分配算法
- 最坏适应分配算法
【可变分区方式的内存回收】
【地址转换与存储保护】
- 硬件实现机制与动态重定位
【可变分区方式的内存零头】
- 固定分区方式会产生内存内零头
- 可变分区方式也会随着进程的内存分配产生一些小的不可用的内存分区,称为内存外零头
- 最优适配算法最容易产生外零头
- 任何适配算法都不能避免产生外零头
【移动技术(程序浮动技术)】
- 移动分区以解决内存外零头
- 需要动态重定位支撑
【移动技术的工作流程】