zhouqijie

分区内存管理

1、单一连续内存

基本思想:

单一内存管理适用于单用户单任务操作系统,是最简单的内存管理方式。
单一连续内存管理将内存空间分为系统区*用户区,系统区存放操作系统常驻内存代码和数据,用户区全部分配给一个用户作业使用。
在这种方式下,任一时刻主存储器最多只有一道程序,各作业只能按次序一个一个装入内存运行。

内存分配和回收:

由于用户区只能装入一个程序,所以该程序装入内存时,就从内存的用户区的基址开始连续存放。
在运行过程中,该程序独占内存直到退出,操作系统回收内存再分配给下一程序使用。

地址转换与内存保护:

单一连续内存管理多采用静态重定向来进行地址转换。
操作系统设置一个界限寄存器用来设置内存中系统区和用户区的地址界限,通过装入程序把目标模块装入到界限地址开始的区域。

内存保护由装入程序来执行,转入时由装入程序检查物理地址是否超过界限地址,超过则可以装入;否则地址错误不能装入。这样用户的程序就总是被装入到合法的用户区域内。

Cre:可以静态重定向,也可以用动态重定向。

Cre:大多数都是单道操作系统的缺点。。。

2、固定分区内存管理

基本思想:

固定分区内存管理是与先把可分配的内存空间分割成若干个大小固定的连续区域。
每个区域的大小可以相同,也可以不同,每个区域称为一个分区,每个分区可以装入且只能装入一个用户作业。
这样,分区后的内存中就可以装入多道程序,从而支持多道程序并发设计。

分区划分:

-方式二:分区大小不等
把可分配空间分割成大小不等的多个分区,大的分区可以分配给大的进程,小的分配给小的进程。
这使得内存分配更加灵活,内存浪费少。

固定分区的内存分配:

为了说明各分区的分配和使用情况,系统设置一张内存分配表。
内存分配表指出了各分区的起始地址和分区长度,占用标志位指示是否被使用。

地址转换和内存保护:

优点和缺点:

与单一连续方式相比使系统资源利用率和吞吐量有一定的提高。



3、可变分区内存管理

基本思想:

可变分区是指事先不确定分区大小,也不确定分区数目。当某一个用户作业申请内存时,检查内存是否有一块能满足作业的连续存储空间,若有则就把这一空间划出一块区域给该用户使用。这种方式称为可变分区内存管理

可变分区克服了固定分区内存利用率低的问题,更适合多道程序环境、

可变分区内存的分配和回收:

Cre:可变分区的分配时可能有空闲空间的切分。回收时可能有空闲空间的合并。

可变分区的内存分配算法:

地址转换和内存保护:

可变分区内存管理采用动态重定位方式装入作业,其地址转换由硬件机构完成。
硬件设置了两个寄存器:基址寄存器和限长寄存器。

当用户作业占有CPU运行时,操作系统把分配给该作业的分区的起始地址和长度送给基址寄存器和限长寄存器,启动作业运行时由硬件根据寄存器进行地址转换得到绝对地址。
当逻辑地址小于限长值时,由逻辑地址加基址寄存器的值就可得到绝对地址。
当逻辑地址大于限长值时,表示作业要访问的内存越界,禁止访问该地址,起到了存储保护的作用。
多道程序系统中只需要一对基址/限长寄存器,因为作业出现等待时,操作系统会把寄存器(不止这对寄存器)的值随同其他作业信息保存起来。

紧凑技术:

Cre:紧凑技术不就是内存碎片整理?

内存多次分配后会出现许多不连续空闲空间。可以采用紧凑技术把内存中的作业改变存放区域,使分散的空闲区汇成一个更大的空间区。

紧凑技术会增加系统开销,而且不是任何时候都能对一道程序进行移动的,例如外设和内存进行信息交换时。

(END)