软件设计师5--OS存储管理
存储管理
存储管理的对象时主存(内存)。存储管理的主要功能包括回收主存空间、提高主存利用率、扩充主存、对主存信息实施有效保护。
1. 基本概念
1.1 存储器的机构
一般存储器的机构有“寄存器-主存-外存”结构和“寄存器-缓存-主存-外存”结构。如下图所示,存储组织的功能时在存储技术和CPU寻址技术允许的范围内组织合理的存储结构,使得各个层次的存储器都处于均衡的繁忙状态。
(一)虚拟地址。对于程序员来说,数据的存放地址是由符号决定的,并不是主存中的真实地址。虚拟地址也称为相对地址、程序地址、逻辑地址
(二)地址空间。虚拟地址的空间称为虚拟地址空间、相对地址空间或逻辑地址空间,相对地址经过地址重定向转换为绝对地址空间,也称物理地址空间。
(三)存储空间。
1.2 地址重定位
地址重定位是把逻辑地址变为主存物理地址的过程。在可执行文件装入时,需要解决可执行文件地址(指令和数据)与主存地址的对于关系,这个个由操作系统的loader和地址重定位机构来完成。地址重定位分为静态地址重定位和动态地址重定位。
(一)静态地址重定位。程序装入主存时完成逻辑地址到物理地址的变换,在程序执行期间将不会再变化。无需硬件的支持,早期操作系统都用这种重定位方案。缺点是必须给作业分配一个连续的存储空间,作业执行期间不能扩充空间,不能在主存中移动,多个作业难以共享主存中的同一程序的副本和数据。
(二)动态地址重定位。在程序允许期间完成逻辑地址到物理地址的变换。依赖硬件地址变换机构来完成,如基地址寄存器BR。优点是作业执行期间程序和数据可以换入和换出主存,解决主存空间不足问题;可在主存中移动,把主存中的碎片集中起来,可以充分利用空间;不必连续的主存空间,可利用小的主存块;可以实现多作业数据共享。
2. 存储管理方案
存储管理方法是解决多用使用主存的问题。
2.1 分区存储管理
分区存储管理是早期的存储管理方案,把主存的用户区划分为若干个区域,每个区域分配给一个作业使用,并限定它们只能在自己的区域中运行。根据分区的划分方式不同,可分为固定分区、可变分区和可重定位分区。
标题 | 描述 |
---|---|
内碎片 | 存储管理中,把分配给了用户而用户未用的存储区称为“内部碎片” |
外碎片 | 存储管理中,把那些无法分配出去满足作业存储请求的空闲区称为“外部碎片” |
(一)固定分区。是一种静态分区方式。在操作系统启动时就已经将主存划分为若干个分区,每个分区大小可不等。作业使用的空间不小不一定刚好等于分区的大小,造成了一定的浪费。
(二)可变分区。是一种动态分区方式。可变分区 存储管理 不是预先把内存中的用户区域划分成若干固定分区,而是在作业要求装入内存时,根据用户作业的大小和当时内存空间使用情况决定是否为该作业分配一个分区。因此分区大小不是预先固定的,而是按作业需求量来划分的;分区的个数和位置也不是预先确定的。它有效地克服了固定分区方式中,由于分区内部剩余内存空置造成浪费的问题。
- 采用地址动态重定位技术,使程序能在内存中移动,为空闲区合并提供保证。
- 记住各分区的使用情况,当一个分区被释放时,要能判定它的前、后分区是否为空闲区。若是空闲区,就进行合并,形成一个大的空闲区
- 给出分区分配算法,在有多个空闲区都满足作业的存储请求时,决定分配哪一个
(三)可重定位分区。解决碎片化问题的有效方法。基本思想是移动已经分配好的分区,使之成为一个连续区域。移动的时机可以是申请分区得不到满足时或作业执行完毕时,移动分区的代价很大,一般时申请分区无法满足时才进行。
分区保护
分区保护的目的是防止未经允许的用户访问分区,常用如下两种方式。
-
采用上界/下界寄存器保护。上界寄存器存放作业的装入地址,下界寄存器存放作业的结束地址,形成的物理地址满足如下条件:
<div align="center" > 上界寄存器 <= 物理地址 <= 下界寄存器</div> -
采用基址/限长寄存器保护。基址寄存器存放作业的装入地址,限长寄存器存放作业的长度,形成的物理地址满足如下条件:
<div align="center" > 基址寄存器 <= 物理地址 <= 基址寄存器+限长寄存器</div>
2.2 分页存储管理
在上面的分区存储管理可以解决多道程序共享主存的问题,但是该方案的用户程序必须装入连续的一段空间,当空间不足时需要进行分区靠拢操作,而分区靠拢时非常耗费系统时间的。下面引入分页存储方案。
(一)分页原理。将一个进程的地址空间划分为若干个大小相等的区域,称为页。相应的,在主存空间中划分出相同大小的若干个物理块,成为块或页框。为进程分配主存时,将进程的若干也分别装入多个不相邻的块中。
(二)地址结构。分页系统的地址结构由页号和偏移量(页内地址)两部份组成。地址总共32位,0-11位为页内地址(每页大小为4KB),12-31位为页号,得出一个进程最多可以分配1MB个页。
在这里插入图片描述
(三)页表