资源预览内容
第1页 / 共96页
第2页 / 共96页
第3页 / 共96页
第4页 / 共96页
第5页 / 共96页
第6页 / 共96页
第7页 / 共96页
第8页 / 共96页
第9页 / 共96页
第10页 / 共96页
亲,该文档总共96页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章 存储器管理,3.1 存储器管理概述 3.2 单用户连续存储管理方式 3.3 固定分区存储管理方式 3.4 可变分区存储管理方式 3.5 页式存储管理方式 3.6 段式存储管理方式 3.7 段页式存储管理方式 3.8 虚拟存储管理方式,本章结束!,3.1 存储器管理概述,3.1.1 存储器管理的主要任务 存储器管理的主要任务是为用户作业分配主存空间,提高主存的使用效率,并从逻辑上扩充主存空间,使主存在成本、速度和规模之间获得较好的权衡。,第3章 存储器管理,3.1 存储器管理概述,3.1.2 存储器管理的主要功能 1主存空间的分配和回收 主存分配的主要任务是采用一定的数据结构,按照一定的算法为每一道程序分配主存空间,使它们“各得其所”,并记录主存空间的使用情况和作业的分配情况。 主存空间的回收是指当一个作业运行结束后,必须归还所占用的主存空间,即在记录主存空间使用情况的数据结构中进行修改,并且把记录作业分配情况的数据结构删除。 2地址转换 将用户程序的逻辑地址转换为运行时的物理地址的过程称为地址转换,也称为地址映射(即重定位)。,第3章 存储器管理,3.1 存储器管理概述,3.1.2 存储器管理的主要功能 3主存空间的共享与保护 在多道程序设计系统中,同时进入主存执行的作业可能需要调用相同的程序或数据,这就是主存的共享。例如,调用编译程序进行编译,把这个编译程序存放在某个区域中,各作业要调用时就访问这个区域,因此这个区域就是共享的。同样也可以实现公共数据的共享。 在实现主存分配与共享时,必须解决主存中信息的保护问题。存储保护的工作一般由硬件和软件配合实现。 4主存空间的扩充 提供虚拟存储器的管理功能,使用户编写程序时不必考虑主存的实际容量,使计算机系统有一个比实际主存容量大得多的存储空间。这样就可以运行较多的程序和较大的程序。,第3章 存储器管理,3.1 存储器管理概述,3.1.3 程序的装入与链接 1源程序的执行过程 在多道程序环境下,程序要运行必须先将程序和数据装入主存。那么,如何将一个用户源程序变为一个在主存中可执行的程序呢?通常需要经过编译、链接和装入等几个步骤,其控制步骤如图3-1所示。,第3章 存储器管理,3.1 存储器管理概述,3.1.3 程序的装入与链接 2程序的装入 将一个装入程序代码装入主存时,可以采用三种方式: (1)绝对装入方式。绝对装入方式是由装入程序根据装入程序代码中的地址将程序和数据装入主存。 (2)可重定位方式。可重定位方式是由装入程序根据主存当前的实际使用情况,将装入程序代码装入到主存适当的地方。 (3)动态运行时装入方式。绝对装入方式只能将装入程序代码装入到主存中事先指定的位置。,第3章 存储器管理,3.1 存储器管理概述,3.1.3 程序的装入与链接 3程序的链接 链接程序的功能是将经过编译或汇编后所得到的一组目标程序以及它们所需要的库函数装配成一个完整的装入程序代码。实现链接的方法有三种: (1)静态链接。 (2)装入时动态链接。 (3)运行时动态链接。,第3章 存储器管理,3.1 存储器管理概述,3.1.4 存储管理方式 对主存的存储管理方式,根据是否把作业全部装入,全部装入后是否装入到一个连续的存储区域,可以分为如图3-3所示的几种管理方式。,第3章 存储器管理,返回,3.2 单用户连续存储管理方式,3.2.1 基本原理 这是最早出现的一种存储管理方式。 在主存中仅驻留一道程序,整个用户区被一用户独占。当用户作业空间大于用户区时,该作业不能装入。 这种分配方式仅能用于单用户单任务的操作系统中,不能用于多用户系统和单用户多任务系统中。,第3章 存储器管理,3.2 单用户连续存储管理方式,3.2.2 主存空间的分配与回收 1主存空间的分配 采用单用户连续存储管理方式时,主存分为两个分区,即系统区和用户区,如图3-4所示。,第3章 存储器管理,3.2 单用户连续存储管理方式,3.2.2 主存空间的分配与回收 1主存空间的分配 (1)系统区是仅提供给操作系统使用的主存区,它可以以驻留在主存的低地址部分,也可以驻留在主存的高地址部分。 (2)用户区是指除系统区以外的主存空间,提供给用户使用。 在这种管理方式下,主存分配的流程如图3-5所示。,第3章 存储器管理,3.2 单用户连续存储管理方式,3.2.2 主存空间的分配与回收 2主存空间的回收 作业一旦进入主存,就要等到它结束后,系统才能回收作业所占用的空间。在这种管理方式下,回收主存空间不需要做任何操作,直接装入第二个作业即可。,第3章 存储器管理,3.2 单用户连续存储管理方式,3.2.3 地址转换与存储保护 1地址转换 因为主存所有空间归一个用户作业使用,所以它采用静态分配方式,即在作业被装入主存时,一次性完成地址转换。 采用这种管理方式时,处理器设置两个寄存器:界限寄存器和重定位寄存器。界限寄存器用来存放主存用户区的长度,重定位寄存器用来存放用户区的起始址。一般情况下这两个寄存器的内容是不变的,只有当操作系统占有的存储区域改变时才会改变。,第3章 存储器管理,3.2 单用户连续存储管理方式,3.2.3 地址转换与存储保护 1地址转换 地址转换过程如图3-6所示。,第3章 存储器管理,3.2 单用户连续存储管理方式,3.2.3 地址转换与存储保护 2存储保护 处理器在执行指令时,检查逻辑地址是否小于界限寄存器的值。若小于,则与重定位寄存器中的基址相加,产生物理地址,到主存中去执行。否则,产生一个“地址越界”中断信号,由操作系统进行处理,以达到存储保护的目的。,第3章 存储器管理,3.2 单用户连续存储管理方式,3.2.4 管理特点 (1)管理简单。它把主存分为两个区,用户区一次只能装入一个完整的作业,且占用一个连续的存储空间。它需要很少的软硬件支持,且便于用户了解和使用。 (2)在主存中的作业不必考虑移动的问题,并且主存的回收不需要任何操作。 (3)资源利用率低。不管用户区有多大,它一次只能装入一个作业,这样就造成了存储空间的浪费,使系统整体资源利用率不高。 (4)这种分配方式不支持虚拟存储器的实现。,第3章 存储器管理,返回,3.3 固定分区存储管理方式,3.3.1 基本原理 固定分区存储管理方式是最早使用的一种可以运行多道程序的存储管理方式。它要求把作业全部装入主存,且装入一个连续的存储空间。 在这种管理方式下,把主存中可以分配的用户区预先划分成若干个大小固定的区域,每一个区域称为一个分区,每个分区可以装入一个作业,一个作业也只能装入一个分区中。这样就可以装入多个作业,使它们并发执行。当有一个空闲分区时,便可以从外存的后备作业队列中,选择一个适当大小的作业装入该分区;当该作业运行结束时,又可以从后备作业队列中选择另一个作业装入该分区。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.2 主存空间的分配与回收 1采用的数据结构 在固定分区存储管理方式下,为了记录各个分区的使用情况,方便主存空间的分配与回收操作,就建立了一张分区分配表。分区分配表的内容包括分区序号、始址、大小、状态。如表3-1所示。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.2 主存空间的分配与回收 2主存空间的分配 在作业分配之前,根据主存分区的划分情况,在分区分配表中填入每个分区的起始地址(简称始址)、大小,在状态栏中一律填入“0”,表示该分区可用。当作业装入时填入作业名。 当有作业申请主存空间时,主存空间的分配步骤为:从作业队列中取出队首作业,检查分区分配表,选择状态标志为“0”的分区,并将作业地址空间的大小与状态标志为“0”的分区的大小进行比较,当所有分区长度都不能容纳该作业时,则该作业暂时不能装入,显示主存不足的信息。当某一个分区长度能容纳该作业时,则把作业装入该分区,并把作业名填到该分区的状态栏里,然后,再分配下一个作业。 在这种管理方式下,主存空间的分配流程如图3-7所示。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.2 主存空间的分配与回收 2主存空间的分配 例如,某台计算机的主存大小为500KB,前100KB为系统区,其余的空间为用户区,并将其划分为四个分区,划分情况如图3-8所示。各分区的初始状态为“0”,表示可用。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.2 主存空间的分配与回收 2主存空间的分配 现有一个作业申请队列J1、J2、J3、J4、J5,大小分别为30KB、20KB、40KB、100KB、70KB,按固定分区分配主存空间后,分区分配表和主存的变化如图3-9所示。作业J5处于等待状态。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.2 主存空间的分配与回收 3主存空间的回收 当作业运行结束时,系统根据作业名到分区分配表中查找作业所在的分区,把该分区的状态标志置为“0”,表示该分区空闲,可以用来装入新的作业。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.3 地址转换与存储保护 1地址转换 由于作业在执行时不会改变分区的个数和大小,所以地址转换采用静态重定位方式。 地址转换过程是:CPU获得的逻辑地址首先与下限寄存器的值相加,产生物理地址;然后与上限寄存器的值比较,若大于上限寄存器的值,产生“地址越界”中断信号,由相应的中断处理程序处理;若不大于上限寄存器的值,则该物理地址就是合法地址,它对应于主存中的一个存储单元。地址转换过程如图3-10所示。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.3 地址转换与存储保护 2存储保护 系统设置了一对寄存器,称为“下限寄存器”和“上限寄存器”。它们记录当前作业在主存中的下限和上限地址。当系统转换该作业指令的逻辑地址时,必须核对表达式“下限地址= 物理地址 = 上限地址”是否成立。若成立,就转换。否则,就产生“地址越界”中断信号,停止转换。从而实现存储保护。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.4 管理特点 (1)一个作业只能装入一个分区,不能装入两个或多个相邻的分区。一个分区只能装入一个作业,当分区大小不能满足作业的要求时,该作业暂时不能装入。 (2)通过对“分区分配表”的改写,来实现对主存空间的分配与回收。作业在执行时,不会改变存储区域,所以采用静态地址重定位方式易于实现,且系统开销小。 (3)当分区较大作业较小时,仍然浪费许多主存空间,并且分区总数固定,限制了并发执行的作业数目。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.5 对固定分区的改进 一个分区只装入一个作业,分区的其他部分闲置不用,降低了主存的利用率。可以采用下列方法提高主存的利用率: (1)根据经常出现的作业的大小和数量来划分分区,尽可能地使各个分区充分利用。 (2)划分分区时按分区的大小顺序排列,低地址部分是较小的分区,高地址部分是较大的分区。各分区按从小到大的顺序登记在分区表中。 (3)按作业对主存的需求量排成多个作业队列,一个作业队列对应一个分区,互不借用。,第3章 存储器管理,3.3 固定分区存储管理方式,3.3.6 举例 【例3-1】在某系统中采用固定分区分配管理方式,主存分区(单位字节)情况如图3-11(a)所示。现有大小为1KB、9KB、33KB、121KB的多个作业要求进入主存,试画出它们进入主存后的空间分配情况,并说明主存浪费有多大? 【解】采用固定分区存储管理方式,作业进入系统后的分配情况如图3-11(b)所示, 主存浪费512KB-20KB-(1KB+9KB+33KB+121KB)=328KB。,第3章 存储器管理,返回,3.4 可变分区存储管理方式,3.4.1 基本原理 可变分区存储管理方式又称为动态分区存储管理方式。它是根据用户作业的大小,在作业要求装入主存时,动态地划分分区,使分区的大小
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号