《现代操作系统》读书笔记-内存管理篇
标签: 读书笔记 校招 操作系统 面试
内存管理基础
内存管理的功能
- 内存的分配和回收;
- 地址变换;
- 扩充内存;
- 存储保护。
应用程序的编译、链接与装入
- 从源程序到执行的进程,经历了编译、链接、装入3个步骤;
- 地址转换将逻辑地址转换为物理地址,这个过程叫做重定位。
- 程序的链接有3种方式:静态链接、装入时动态链接;
- 程序的装入也有3种方式:绝对装入、可重定位装入、动态运行装入。
物理地址和逻辑地址
- 逻辑地址是指由程序产生的与段(与页无关,因为只有段对用户可见)相关的偏移地址部分。
- 物理地址是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是逻辑地址变换后的最终结果地址,物理地址空间是指内存中物理地址单元的集合。
内存保护
内存保护是为了防止一个作业有意或无意地破坏操作系统或其他作业。常用的存储保护方法有界限寄存器方法和存储保护键方法。
* 界限寄存器方法:有两种,分别是上、下界寄存器方法和基址和限长寄存器方法。上、下界寄存器方法采用上、下界寄存器分别存放作业的结束地址和开始地址。在作业运行过程中,将每一个访问内存的地址都同这两个寄存器内容进行比较,如超出范围便产生保护性中断;基址和限长寄存器方法采用基址和限长寄存器分别存放作业的起始地址及作业的地址空间长度。当作业执行时,将每一个访问内存的相对地址和现场寄存器比较,如果超过了限长寄存器的值,则发出越界中断信号,并停止作业的运行。
* 存储保护键方法:存储保护键方法是给每个存储块分配一个单独的保护键,它相当于一把“锁”。此外,进入系统的每个作业也被赋予一个保护键,它相当于一把“钥匙”。当作业运行时,检查“钥匙”和“锁”是否匹配,如果二者不匹配,则系统发出保护性中断信号,停止作业运行。
覆盖技术
- 基本概念:把一个大的程序划分为一系列覆盖,每个覆盖是一个相对独立的程序单位。把程序执行时并不要求同时装入内存的覆盖组成一组,称为覆盖段;这个覆盖段分配到同一个存储区域,这个存储区域称为覆盖区,它与覆盖段一一对应。
- 特点:打破了必须将一个进程的全部信息装入主存后才能运行的限制。但当同时执行程序的代码量超过主存时,程序仍然不能运行。
交换技术
- 基本概念:暂时不用的某个程序及数据部分(或全部)从内存移到外存中,以便腾出必要的内存空间;或把指定的程序或数据从外存读到相应的内存中,并将控制权转给它,让其在系统上运行的一种内存扩充技术。处理器三级调度中的中级调度就是采用了交换技术。
- 特点:交换技术的特点是打破了一个程序一旦进入主存便一直运行到结束的限制。但运行的进程大小仍然受实际主存的限制。
单一连续分配
- 基本概念:单一连续分配是一种最简单的存储管理方式,通常只能用于单用户、单任务的操作系统中。这种存储管理方式将内存分为两个连续存储区域,其中的一个存储区域固定地分配给操作系统使用,通常放在内存低地址部分,另一个存储区域给用户作业使用。
- 技术采用:单一连续分配方式采用静态分配,适合单道程序,可采用覆盖技术。作业一旦进入内存,就要等到其结束后才能释放内存。因此,这种分配方式不支持虚拟存储器的实现,无法实现多道程序共享主存。
- 优点:管理简单,只需要很少的软件和硬件支持,且便于用户了解和使用,不存在其他用户干扰的问题。
- 缺点:是只能用于单用户、单任务的操作系统,内存中只装入一道作业运行,从而导致各类资源的利用率都很低。单一连续分配会产生内部碎片。
固定分区分配
- 基本概念&