存储管理分为普通存储管理和虚拟存储管理两种方式。
普通存储管理:
一。存储管理(主要是对内存用户区的存储管理)的主要功能:
1.地址重定位:根据逻辑地址确定物理地址的过程。 包括 静态重定位 和 动态重定位两种方式。
静态重定位:在程序执行前将所需空间一次性全部分配好,逻辑地址也唯一确定,不用再改变。
动态重定位:在程序执行过程中分配空间,当为作业分配一个内存区域后,就将该区的起始地址放到“重定位寄存器”中。 物理地址 = 逻辑地址 + 重定位寄存器内容。
2.内存分配与回收:
系统设立特定的数据结构记录内存区的分配情况,回收时修改相应的数据结构。
内存分配有静态分配(程序执行前一次性全部)和动态分配(执行过程中需要多少分配多少)两种。
动态分配具有较大的灵活性,进程可以随用,随申请,随分配,有利于提高系统利用率。
3.内存的共享与保护:
共享包括共享内存储器资源,多个进程进入内存区域,共享同一个存储器 和 共享内存的某些区域(如数据段和程序段)。
保护:
上下界存储保护技术 :登记当前程序的上下界地址,进行地址码的合法性检查。
保护键法
4.内存容量扩充 :逻辑扩充
二:存储管理的数据结构
1.内存分配表(MAT表)
分存号 起始地址 长度 占用标志
(首地址) (空闲与否)
2.空闲区(链)表(记录空闲区)
分区号 起始地址 长度 指针(指向下一个空闲块)
分配与回收时就是不断对链表进行插入,删除和合并操作。
3.位示图
将内存中的空间分成若干个存储块(帧)并作为基本存储单位,用0,1来记录内存块的使用情况。
可看做一个M*N的矩阵,其中指定某一块的块号可以根据行号及列号确定。
三。存储管理的主要方法
1.单一存储区管理 (用户区内存空间只放一个作业)
2. 分区管理
3.分页管理
4. 分段管理
其中1,2为连续存储,3,4为离散存储。