第5章 存储器管理

更新时间:2023-07-25 06:46:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第5章 存储器管理

存储器OS

外存

内存

本章要点 存储管理的任务 内存划分与分配技术 程序装入技术 简单的存储管理技术 虚拟存储管理技术

概述 存储体系 -存储器一般分为: 内存储器(简称“内存”) 辅助存储器(简称“外存”) -内存可以分: 系统区。用来存储操作系统等系统软件 用户区。用于分配给用户作业使用

概述 存储管理的目的 从用户角度 为用户提供方便、安全和充分大的存储空间。 从系统角度(补充) 地址保护和地址独立。

存储管理 目的:保障多用户安全、高效地共享空间。 将用户程序所用的地址空间转换为主存储 器中的实际地址空间,将用户程序的操作 地址变换为存储器上的具体位置,为存储 空间提供安全和共享的手段,为用户程序 实现虚拟存储空间等。

概述1.地址保护。由于多道程序同时存放在内存中,OS要 保证它们互不干扰,即,一个进程不能随便访问另 一进程的地址空间。 2.地址独立。从内存读取操作数就要给出操作数所在 的内存地址,该地址不能是物理主存地址,因为该 程序在何种硬件配置的机器上运行不能事先确定。 因此,指令中的地址是程序空间(虚拟空间)的程 序地址(虚拟地址),即程序发出的地址与具体机 器的物理主存地址是独立的。 说明:以上两个目标就是衡量一个内存管理系统是 否完善的标准。它是所有内存管理系统必须提供的 基本抽象。

存储管理的任务

存储分配 基本任务:管理内存空间的分配与回收。 (1)分配基本内存空间。 (2)增加新的内存空间——动态申请或释放 内存空间。 (3)回收内存空间。

用于内存管理的数据结构 如位示图、空闲页框表等。 记载哪些内存被分配了哪个进程,哪些内 存空间是空闲的等信息。 若系统采用虚拟存储管理技术,还需要登 记进程的程序和数据中,哪些部分在内存, 哪些部分尚在外存等信息。 这些数据结构自身需要占用一定的内存空 间,也需要系统花费额外的时间进行维护。

存储分配步骤 首先,根据系统的内存分配算法,在空闲 的内存分区中寻找到一块满足进程需要的 内存空间,将其分配给进程。 然后,更新进程的资源分配清单、内存分 配情况清单等数据结构。

内存的回收 更新相应的数据结构,将回收的内存空间 标识为“空闲可用”就行了。 ?该内存空间是否可以被回收。 ?被其他进程共享 ?属于相应的进程 ?与相临的空闲空间进行合并

地址映射 逻辑地址,或相对地址:一般从0开始编址。 物理地

址,或绝对地址:标识内存中的每个存 储单元。

进程执行时的寻址

?逻辑地址 高级语言或汇编语言使用符号地址:变量 名或标号。 源程序经过编译、链接以后,其中的符号 地址就会变成数字式的逻辑地址。 编译/链接程序会自动计算每一个变量或标 号所对应的逻辑地址是多少。

静态映射:静态重定位 地址映射:程序装入内存以后,由操作系 统将逻辑地址改为逻辑地址加上起始地址, 得到实际的物理地址。 重定位(Relocation):对目标程序中的指令 和数据地址进行修改的过程。 静态映射实现简单。地址变换只在程序装 入时一次完成,程序运行时不再改变。 但不适合多道程序系统;不允许系统执行 内存的碎片整理;无法实现虚拟存储。

动态映射:动态重定位 操作系统将程序装入内存以后,并不立即 把目标程序中的逻辑地址转换为物理地址, 而是在处理机执行每一条指令时进行地址 转换。 复杂且费时。 为了系统效率,处理机设置了专门的高速 硬件,自动完成地址转换,这样的硬件被 称作地址管理部件。

CPU

程序指令 逻辑地址

地址管理部件

物理地址 地址总线

CPU中的地址管理部件工作示例图

存储保护 防止地址越界,防止操作越权。 地址越界:进程访问不属于自己的地址空 间或者说进程在运行时所产生的物理地址 超越其自身的地址空间范围。 可能侵犯其他用户进程空间,也可能侵犯 操作系统的存储空间。 操作越权:进程对共享存储区的操作违反 了系统规定的权限。

存储保护的实现 存储保护只能在进程执行过程中动态地进 行,不可能在运行前一次性静态完成。 若采用动态映射计算物理地址,可能计算 出错误地址;若采用静态映射,进程执行 过程中也可能出错,从而导致地址越界或 操作越权。 为了提高系统效率,存储保护的主要工作 必须由高速的专用硬件来完成;在地址管 理部件中。

存储共享 为了进程通信和节约内存空间,两个或多 个进程共用内存中相同的分区,即他们的 物理空间有相交的部分。 可以共享进程的代码,也可以共享进程数 据。 一般地,进程之间共享代码的目的主要是 为了节约存储空间,共享数据的目的主要 是为了实现进程间相互通信。

进程之间共享代码和数据

本文来源:https://www.bwwdw.com/article/g3lm.html

Top