第4章 存储器管理_第1页
第4章 存储器管理_第2页
第4章 存储器管理_第3页
第4章 存储器管理_第4页
第4章 存储器管理_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 操作系统操作系统 第四章第四章 存储器管理存储器管理1第四章第四章 存储器管理存储器管理4.1 4.1 存储管理的概念存储管理的概念4.2 4.2 分区式存储管理分区式存储管理4.3 4.3 分页式存储管理分页式存储管理4.4 4.4 分段式存储管理分段式存储管理4.5 4.5 段页式存储管理段页式存储管理 操作系统操作系统 第四章第四章 存储器管理存储器管理24.1 4.1 存储管理的概念存储管理的概念一、存储器的层次结构一、存储器的层次结构多级存储体系多级存储体系计算机系统存储层次示意计算机系统存储层次示意 操作系统操作系统 第四章第四章 存储器管理存储器管理31. 存储管理的对象存储管

2、理的对象:主存储器以及作为主存扩展和延伸:主存储器以及作为主存扩展和延伸的辅助存储器(磁盘交换区)。的辅助存储器(磁盘交换区)。2. 存储管理的目标是:存储管理的目标是:为用户提供方便、安全和充分大为用户提供方便、安全和充分大的存储空间。的存储空间。二、存储管理的功能二、存储管理的功能 1、存储空间的分配与回收、存储空间的分配与回收2、地址重定位、地址重定位3、主存的共享与保护、主存的共享与保护4、主存的扩充、主存的扩充 操作系统操作系统 第四章第四章 存储器管理存储器管理4(一)主存的分配与回收(一)主存的分配与回收 要完成内存的分配和回收工作,做到合理有效地利用内存,要完成内存的分配和回收

3、工作,做到合理有效地利用内存,要求设计者选择和确定以下几种策略。要求设计者选择和确定以下几种策略。1、放置策略、放置策略用户程序要调入内存时,确定将其放置在用户程序要调入内存时,确定将其放置在何处的策赂。也就是何处的策赂。也就是选择空闲区选择空闲区的原则。的原则。2、调入策略、调入策略用户程序在何时调入内存的策略。目前常用户程序在何时调入内存的策略。目前常用的有用的有请求调入和预调入请求调入和预调入两种。两种。3、淘汰策略、淘汰策略当要将某个用户程序调入内存而又无空闲当要将某个用户程序调入内存而又无空闲内存空间时,既要确定哪些用户程序可以从内存中移走。内存空间时,既要确定哪些用户程序可以从内存

4、中移走。分配结构分配结构记录内存的分配情况的数据结构记录内存的分配情况的数据结构 操作系统操作系统 第四章第四章 存储器管理存储器管理5(二)地址重定位(二)地址重定位 为了保证作业的正确执行,必须根据分配给用户作业为了保证作业的正确执行,必须根据分配给用户作业的主存区域对作业中的指令和数据的存放地址进行地址重的主存区域对作业中的指令和数据的存放地址进行地址重定位定位 。1、地址重定位:、地址重定位:将程序使用的逻辑地址转换为主存空间的将程序使用的逻辑地址转换为主存空间的物理地址的工作。物理地址的工作。 (地址转换、地址映射)(地址转换、地址映射)地址重定位方式地址重定位方式1)静态重定位)静

5、态重定位2)动态重定位)动态重定位 操作系统操作系统 第四章第四章 存储器管理存储器管理6对用户程序的处理步骤对用户程序的处理步骤 操作系统操作系统 第四章第四章 存储器管理存储器管理72、物理地址(空间)和逻辑地址(空间)、物理地址(空间)和逻辑地址(空间)物理物理地址地址空间空间:物理地址的集合。由主存物理单元组成,:物理地址的集合。由主存物理单元组成,是一维线性空间,其大小取决于实际的主存容量。是一维线性空间,其大小取决于实际的主存容量。 (存储空间、主存空间)(存储空间、主存空间)逻辑地址空间逻辑地址空间:用户所使用的编程空间(目标程序的逻辑:用户所使用的编程空间(目标程序的逻辑地址的

6、集合)。可以是一维的,也可以是二维的。地址的集合)。可以是一维的,也可以是二维的。 (地址空间、程序空间)(地址空间、程序空间)物理地址物理地址:主存中存储单元的编号。:主存中存储单元的编号。 (绝对地址、实地址)(绝对地址、实地址)逻辑地址:逻辑地址:用户目标程序中所使用的相对地址。用户目标程序中所使用的相对地址。 (相对地址、虚地址)(相对地址、虚地址) 操作系统操作系统 第四章第四章 存储器管理存储器管理8 符号符号 地址地址 (变量变量)源程序源程序 符号空间符号空间 链接链接 编译编译 逻辑逻辑 地址地址0 0n-1n-1目标程序目标程序 逻辑地址空间逻辑地址空间 物理物理 地址地址

7、 内存内存物理地址空间物理地址空间B B B+m-1B+m-1 逻辑逻辑 地址地址0 0m-1m-1装入程序装入程序 逻辑地址空间逻辑地址空间 装入装入程序的装入程序的装入1)绝对装入方式)绝对装入方式直接编译成绝对地址(无需重定位)直接编译成绝对地址(无需重定位)2)可重定位装入方式)可重定位装入方式静态重定位静态重定位3)动态运行时的装入方式)动态运行时的装入方式动态重定位动态重定位 操作系统操作系统 第四章第四章 存储器管理存储器管理91) 静态重定位静态重定位 在一个在一个作业装入主存作业装入主存时,根据其所获得的空间区域,由时,根据其所获得的空间区域,由连接装配程序连接装配程序将该程

8、序的逻辑地址转换为相应的物理地址。将该程序的逻辑地址转换为相应的物理地址。地址一旦确定就不再改变。地址一旦确定就不再改变。+ + 032 3465 3465 3465 3465+ + 1321320 08 83232124124100100108108132132224224逻辑地址空间逻辑地址空间 主存主存 例如:例如:逻辑关系:物理地址逻辑关系:物理地址 = 起始地址起始地址 + 逻辑地址逻辑地址 操作系统操作系统 第四章第四章 存储器管理存储器管理10缺点:缺点: 要求给每个作业分配一个要求给每个作业分配一个连续的存储连续的存储区域,且在其整个执区域,且在其整个执行期间必须限定在这个区域

9、内。也就是说,在作业执行期间行期间必须限定在这个区域内。也就是说,在作业执行期间程序程序不能不能“浮动浮动” 。这对提高主存的利用率是不利的。这对提高主存的利用率是不利的。 用户必须事先确定所需的存储量,若所需的存储量超过可用户必须事先确定所需的存储量,若所需的存储量超过可用存储空间时,用户必须考虑覆盖结构。用存储空间时,用户必须考虑覆盖结构。 用户之间用户之间难以共享难以共享主存中的同一程序。若要共享同一程序,主存中的同一程序。若要共享同一程序,则每个用户应各自使用一个分开的副本。则每个用户应各自使用一个分开的副本。优点:优点: 简单,无需硬件支持,因而可在一般计算机上实现。简单,无需硬件支

10、持,因而可在一般计算机上实现。 操作系统操作系统 第四章第四章 存储器管理存储器管理112)动态重定位动态重定位 在作业执行过程中,每当执行一条指令时都由在作业执行过程中,每当执行一条指令时都由硬件地址硬件地址转换机构转换机构将指令中的逻辑地址转换成物理地址。(在作业执将指令中的逻辑地址转换成物理地址。(在作业执行时动态完成)行时动态完成) 动态重定位时,动态重定位时,处理机每执行一条指令都会把指令中的处理机每执行一条指令都会把指令中的逻辑地址与重定位寄存器中的数值相加得到物理地址,逻辑地址与重定位寄存器中的数值相加得到物理地址,然后然后按物理地址访问主存储器。重定位寄存器的值是根据作业分按物

11、理地址访问主存储器。重定位寄存器的值是根据作业分配到的配到的存储空间起始地址存储空间起始地址来设定的。来设定的。 采用动态重定位技术后,程序中所有指令和数据的实采用动态重定位技术后,程序中所有指令和数据的实际地址是在程序运行过程中最后访问指令和数据的时刻确际地址是在程序运行过程中最后访问指令和数据的时刻确定的。因此,在作业运行过程中临时申请分配附加的存储定的。因此,在作业运行过程中临时申请分配附加的存储区域或释放巳占用的部分存储空间是允许的。区域或释放巳占用的部分存储空间是允许的。 操作系统操作系统 第四章第四章 存储器管理存储器管理12动态重定位的实现动态重定位的实现 动态重定位示意图动态重

12、定位示意图 LOAD1,25003650100250050002500相对地址10000重定位寄存器LOAD1,250036510000101001250015000作业J处理机一侧 存储器一侧主存 操作系统操作系统 第四章第四章 存储器管理存储器管理13优点:优点: 主存的使用更加主存的使用更加灵活灵活有效。一个用户的作业不一定要分配有效。一个用户的作业不一定要分配在一个连续的存储区,因而可以使用较小的分配单位。而且在一个连续的存储区,因而可以使用较小的分配单位。而且在作业开始之前也不一定把它的地址空间中的信息全部装入在作业开始之前也不一定把它的地址空间中的信息全部装入主存,而可以在作业执行

13、期间根据请求动态地进行。主存,而可以在作业执行期间根据请求动态地进行。 缺点:缺点: 需要附加需要附加硬件支持硬件支持; 实现存储器管理的软件比较实现存储器管理的软件比较复杂复杂。 几个作业几个作业共享共享一程序段的单个副本比较容易。一程序段的单个副本比较容易。 有可能向用户提供一个比主存的存储有可能向用户提供一个比主存的存储空间大空间大用多的地址空用多的地址空间。间。 操作系统操作系统 第四章第四章 存储器管理存储器管理14(三)存储的共享与保护(三)存储的共享与保护 在多道程序设计的环境中,要保证各道程序只能在自己在多道程序设计的环境中,要保证各道程序只能在自己的存储区中活动,不对别的程序

14、产生干扰和破坏,必须对存的存储区中活动,不对别的程序产生干扰和破坏,必须对存储信息采用各种保护措施。储信息采用各种保护措施。常用的保护手段常用的保护手段:上、下界寄存器法和存储:上、下界寄存器法和存储(保护保护)键法。键法。1. 1. 上、下界寄存器法:上、下界寄存器法: 由硬件为系统中的每个作业或进程设置一对上、下界寄由硬件为系统中的每个作业或进程设置一对上、下界寄存器。当某一作业的程序装入内存后,系统就将该程序所占存器。当某一作业的程序装入内存后,系统就将该程序所占存储空间的存储空间的首地址首地址和和末地址末地址分别装入相应的一对上、下界寄分别装入相应的一对上、下界寄存器中。在程序的运行过

15、程中若要对内存进行存访操作时,存器中。在程序的运行过程中若要对内存进行存访操作时,必须先进行存访地址合法性的检测。非法存访,将产生越界必须先进行存访地址合法性的检测。非法存访,将产生越界中断。中断。 操作系统操作系统 第四章第四章 存储器管理存储器管理15 上、下界寄存器保护法的另一个变种是上、下界寄存器保护法的另一个变种是基址基址-限长寄存限长寄存器保护法器保护法。其为每个作业。其为每个作业(或进程或进程)设置一个基地址寄存器设置一个基地址寄存器BA和一个限长寄存器和一个限长寄存器LA。程序执行过程中,每执行一次存访操。程序执行过程中,每执行一次存访操作之前必须做存访地址合法性的检查。作之前

16、必须做存访地址合法性的检查。120K154K154K120K120K154K120K34K上界寄存器上界寄存器 物理地址物理地址 下界寄存器下界寄存器 0 逻辑地址逻辑地址 限长寄存器限长寄存器 操作系统操作系统 第四章第四章 存储器管理存储器管理162. 存储存储(保护保护)键保护法。键保护法。 为每一个被保护的存储块分配一个单独的保护键,在当为每一个被保护的存储块分配一个单独的保护键,在当前程序状态字(前程序状态字(PSWPSW)中设置相应的保护键开关字段,对不同)中设置相应的保护键开关字段,对不同的进程赋予不同的开关代码以与被保护的存储块中的保护键的进程赋予不同的开关代码以与被保护的存储

17、块中的保护键匹配,若不匹配则产生越界中断。匹配,若不匹配则产生越界中断。例如:在例如:在IBM/360系统中系统中 0 块块i 1 1 0 0 0 0 1 1 块块i+1i+1 0 0 1 1 0 0 1 1 1 1 1001 1001 开关字段(钥)开关字段(钥)0 0 共享(只读)共享(只读) 共享位共享位 1 1 匹配(可读可写)匹配(可读可写) 保护键保护键 0 0 系统系统 1 11515 用户用户 当前程序状态字(当前程序状态字(PSW) 操作系统操作系统 第四章第四章 存储器管理存储器管理17(四)主存的扩充(四)主存的扩充 借助于主存扩充技术为用户提供比主存空间大的地址借助于主

18、存扩充技术为用户提供比主存空间大的地址空间,从而实现扩充主存容量的目的。空间,从而实现扩充主存容量的目的。主存扩充技术主存扩充技术覆盖技术覆盖技术对(交)换技术对(交)换技术虚拟存储技术虚拟存储技术 操作系统操作系统 第四章第四章 存储器管理存储器管理184.2 4.2 分区存储管理分区存储管理一、概述一、概述分区式存储管理基本思想:分区式存储管理基本思想:把主存空间静态地或动态地划把主存空间静态地或动态地划分为若干个大小不等的区域,每个作业分配一片连续的存分为若干个大小不等的区域,每个作业分配一片连续的存储空间,程序一次性整体装入。储空间,程序一次性整体装入。 二、分区式存储管理的方式二、分

19、区式存储管理的方式 固定分区固定分区 ( (静态分区静态分区) )存储管理存储管理 可变分区可变分区 ( (动态分区动态分区) )存储管理存储管理 操作系统操作系统 第四章第四章 存储器管理存储器管理19(一)固定分区(一)固定分区(静态分区静态分区) 1. 1. 基本原理:基本原理: 把主存储器中可分配的用户区域预先(静态)划分为若把主存储器中可分配的用户区域预先(静态)划分为若干个大小不等的连续的区域(分区),每个分区中装入一个干个大小不等的连续的区域(分区),每个分区中装入一个作业。分区的划分由计算机操作员或者由操作系统作出。并作业。分区的划分由计算机操作员或者由操作系统作出。并给出分区

20、说明表。给出分区说明表。2. 2. 主存空间的分配与回收主存空间的分配与回收分配结构:分区说明表(分配结构:分区说明表(MBTMBT) 区号区号 分区长度分区长度 起始地址起始地址状态状态 操作系统操作系统 第四章第四章 存储器管理存储器管理20例:例:该系统的内存容量为该系统的内存容量为256KB256KB,操作系统占用低地址的,操作系统占用低地址的40KB40KB,其余空间划分成,其余空间划分成5 5个大小固定的分区。个大小固定的分区。 112K 112K 操作系统操作系统 第四章第四章 存储器管理存储器管理21 在固定分区方法中,当某个用户程序要装入运行时,向在固定分区方法中,当某个用户

21、程序要装入运行时,向系统提出分配内存的请求,并给出要求存储空间的大小。系系统提出分配内存的请求,并给出要求存储空间的大小。系统根据用户的请求查询分区说明表,从中找出一个满足要求统根据用户的请求查询分区说明表,从中找出一个满足要求的,并且是空闲的分区给申请者,然后修改相应的表目的状的,并且是空闲的分区给申请者,然后修改相应的表目的状态位态位, , 即把状态位置为即把状态位置为“正在使用正在使用”,最后向用户返回分区,最后向用户返回分区号或分区首地址。号或分区首地址。3. 3. 地址转换与存储保护地址转换与存储保护地址转换:静态重定位。地址转换:静态重定位。存储保护:上下界寄存器法。存储保护:上下

22、界寄存器法。下界地址下界地址 物理地址物理地址 上界地址上界地址4. 4. 特点:特点:简单、空间浪费较大。简单、空间浪费较大。 操作系统操作系统 第四章第四章 存储器管理存储器管理22(二)可变分区(二)可变分区( (动态分区动态分区) )1.1.基本原理基本原理:是指在系统运行的过程中,当作业要:是指在系统运行的过程中,当作业要求装入主存储器时,根据作业需要的主存容量(动求装入主存储器时,根据作业需要的主存容量(动态地)划分出一个分区分配给该作业,使分区的大态地)划分出一个分区分配给该作业,使分区的大小刚好与作业的大小相等。小刚好与作业的大小相等。2.主存空间的分配与回收主存空间的分配与回

23、收 操作系统操作系统 第四章第四章 存储器管理存储器管理23主存分配与回收过程:主存分配与回收过程: (设系统主存容量为(设系统主存容量为256K,OS占用占用20K) 进程进程A (64KA (64K)进程进程B (16KB (16K)进程进程C (8KC (8K) 进程进程D (24KD (24K)进程A OS进程进程A A OS进程进程A进程进程B进程进程C OS进程进程C进程进程B OS 进程进程D进程进程B 进程进程C 进程A OS进程进程D进程进程C 操作系统操作系统 第四章第四章 存储器管理存储器管理24分配结构:分配结构: (1)空闲区说明表()空闲区说明表(FBT)。区号区号

24、 分区长度分区长度 起始地址起始地址 状态状态 40K 40K 40K40K 16K 16K 78K 78K 24K 100K100K 78K 78K (2)自由链)自由链(空闲区队列空闲区队列) 操作系统操作系统 第四章第四章 存储器管理存储器管理25OSOS作业作业1 1,32K32K作业作业3 3,64K64K作业作业4 4,100K100K20KB20KB0 052KB52KB66KB66KB130KB130KB230KB230KB256KB-1256KB-1主存分布主存分布52KB230KB14KB26KB首指针首指针 自由链自由链 (空闲区队列空闲区队列) 操作系统操作系统 第四章

25、第四章 存储器管理存储器管理26常用的分区分配算法常用的分区分配算法(放置策略放置策略)放置策略:自由链放置策略:自由链(空闲区队列空闲区队列)的排序原则。的排序原则。空闲区的组织方法有两种:空闲区的组织方法有两种: 按空闲区大小的递增和递减的次序组织空闲区队列。按空闲区大小的递增和递减的次序组织空闲区队列。 按空闲区首址的增加或减少的次序组织空闲区队列。按空闲区首址的增加或减少的次序组织空闲区队列。(1 1)最佳适应算法)最佳适应算法(BFA)(BFA) 为一个作业选择分区时总是寻找大小最接近于作业所要为一个作业选择分区时总是寻找大小最接近于作业所要求的存储区域。换句话说,把作业放入这样的分

26、区后剩下的求的存储区域。换句话说,把作业放入这样的分区后剩下的部分最小。部分最小。 存储空间中所有的空闲区按其存储空间中所有的空闲区按其大小递增大小递增的顺序链接起来。的顺序链接起来。 操作系统操作系统 第四章第四章 存储器管理存储器管理27优点:优点: 首先选择正好是所要求大小的空白区;首先选择正好是所要求大小的空白区; 其次选择比要求稍大的空白区划分,而不会去划分一个更其次选择比要求稍大的空白区划分,而不会去划分一个更大的空白区。因此,其后遇到大的作业到来时,作业要求的大的空白区。因此,其后遇到大的作业到来时,作业要求的存储区域就比较容易得到满足。存储区域就比较容易得到满足。缺点:缺点:

27、在每次分配时,容易产生较小的空白区,由于其太小而无在每次分配时,容易产生较小的空白区,由于其太小而无法使用,从而形成法使用,从而形成“碎片碎片”。因此,经过一段时期后,存储。因此,经过一段时期后,存储空间中可能留下许多这样的空间中可能留下许多这样的“碎片碎片” 。 在回收一个分区时,为了把它插入到空白区链中合适的位在回收一个分区时,为了把它插入到空白区链中合适的位置上也颇为费时。置上也颇为费时。改进:改进:可设置一参数可设置一参数G,用它来确定最小分区的大小。当选择,用它来确定最小分区的大小。当选择一个分区时,如果选中的空白区与要求的大小之差小于一个分区时,如果选中的空白区与要求的大小之差小于

28、G,则,则不再对它划分,而把整个这个空白区分配给申请的作业。不再对它划分,而把整个这个空白区分配给申请的作业。 操作系统操作系统 第四章第四章 存储器管理存储器管理28(2)最坏适应算法)最坏适应算法(WFA) 在为作业选择存储区域时,总是寻找最大的空闲区。在为作业选择存储区域时,总是寻找最大的空闲区。 空闲区以空闲区以大小递减大小递减的顺序链接起来。的顺序链接起来。 优点:优点: 在划分后剩下的空闲区较大,因而对以后的分配很可能在划分后剩下的空闲区较大,因而对以后的分配很可能仍然是有用的。仍然是有用的。缺点:缺点: 由于最大的空闲区总是首先被分配而进行划分,当有大由于最大的空闲区总是首先被分

29、配而进行划分,当有大的作业时,其存储空间的申请往往得不到满足。的作业时,其存储空间的申请往往得不到满足。 操作系统操作系统 第四章第四章 存储器管理存储器管理29(3)首次)首次(最先最先)适应算法适应算法(FFA) 在为作业分配存储区域时,从空闲区链的始端开始查找,在为作业分配存储区域时,从空闲区链的始端开始查找,选择第一个满足请求的空闲区而不管它究竟有多大。选择第一个满足请求的空闲区而不管它究竟有多大。每个空闲区按其在存储空间中每个空闲区按其在存储空间中地址递增地址递增的顺序链在一起。的顺序链在一起。即每个后继空闲区的起始地址总是比前者的大。即每个后继空闲区的起始地址总是比前者的大。特点:

30、特点:倾向于优先利用存储空间中低址部分的空白区。倾向于优先利用存储空间中低址部分的空白区。(4 4)循环首次)循环首次( (最先最先) )适应算法适应算法(NFA)FFA(NFA)FFA的改的改进进 操作系统操作系统 第四章第四章 存储器管理存储器管理30缺点: 这种算法可能会利用一个大的空闲区适应小作业的请求。这种算法可能会利用一个大的空闲区适应小作业的请求。 由于所有的请求都是从空白区链的始端开始查找,因而这由于所有的请求都是从空白区链的始端开始查找,因而这些小的甚至无用的空闲区集中在这个链的前端,相应地,一些小的甚至无用的空闲区集中在这个链的前端,相应地,一些较大的空闲区在链的后端才能发

31、现。这种情况使找到合适些较大的空闲区在链的后端才能发现。这种情况使找到合适空闲区的速度降低。空闲区的速度降低。优点: 算法简单,查找速度快。算法简单,查找速度快。 留在高地址部分的大的空闲区被划分的机会较少,因而在留在高地址部分的大的空闲区被划分的机会较少,因而在大作业到来时也比较容易得到满足。大作业到来时也比较容易得到满足。 操作系统操作系统 第四章第四章 存储器管理存储器管理31 动态分区分配的过程中选择的空闲区被分成两部分:动态分区分配的过程中选择的空闲区被分成两部分:一部分与请求的大小相等,分配给作业;剩下的部分作为一部分与请求的大小相等,分配给作业;剩下的部分作为空闲区仍留在空闲区链

32、中。空闲区仍留在空闲区链中。 操作系统操作系统 第四章第四章 存储器管理存储器管理32 作作 业业 A18KB18KB osos30KB在使用在使用20KB在使用在使用 5KB在使用在使用46KB0 020KB20KB100KB100KB160KB160KB210KB210KB256KB256KB1 1首次适应算法首次适应算法 作作 业业 A18KB18KB osos30KB在使用在使用20KB在使用在使用 5KB在使用在使用46KB0 020KB20KB100KB100KB160KB160KB210KB210KB256KB256KB1 1最佳适应算法最佳适应算法 作作 业业 A18KB18K

33、B osos30KB在使用在使用20KB在使用在使用 5KB在使用在使用46KB0 020KB20KB100KB100KB160KB160KB210KB210KB256KB256KB1 1最坏适应算法最坏适应算法 操作系统操作系统 第四章第四章 存储器管理存储器管理33 操作系统操作系统 第四章第四章 存储器管理存储器管理34回收一个主存块回收一个主存块空闲区的拼接空闲区的拼接具体工作:具体工作:检查释放区是否与系统中的空闲区相邻,若相邻检查释放区是否与系统中的空闲区相邻,若相邻则则把释放区合并到相邻的空闲区中把释放区合并到相邻的空闲区中,否则把释放区作为一个,否则把释放区作为一个空闲区插入到

34、自由主存队列的适当位置。空闲区插入到自由主存队列的适当位置。释放区与空闲区相邻有四种情况:释放区与空闲区相邻有四种情况:占用区占用区TI IH HTI I占用区占用区占用区占用区I IH H占用区占用区I I 释放区与空闲区相邻情况释放区与空闲区相邻情况其中:其中: I:释放区:释放区 H:前邻空闲区:前邻空闲区 T:后邻空闲区:后邻空闲区 操作系统操作系统 第四章第四章 存储器管理存储器管理35(1) 释放区与前空闲区相邻:释放区与前空闲区相邻:如图所示。对这种情况是将释放如图所示。对这种情况是将释放区与前空闲区合并为一个空闲区,其首址仍为前空闲区首址,区与前空闲区合并为一个空闲区,其首址仍

35、为前空闲区首址,大小为释放区大小与空闲区大小之和。大小为释放区大小与空闲区大小之和。H H占用区占用区I I判断相邻空闲区:判断相邻空闲区:addr(I) = addr(H) + size(H)则前邻为空闲区:则前邻为空闲区:释放区与空闲区的拼接:释放区与空闲区的拼接: addr = addr(H) size = size(H) + size(I) (修改修改H的登记项的登记项) 操作系统操作系统 第四章第四章 存储器管理存储器管理36判断相邻空闲区:判断相邻空闲区: addr(T) = addr(I) + size(I)则后邻为空闲区:则后邻为空闲区:释放区与空闲区的拼接:释放区与空闲区的拼

36、接: addr = addr(I) size = size(T) + size(I) (修改修改T的登记项的登记项) (2) 释放区与后空闲区相邻:释放区与后空闲区相邻:如图所示。对这种情况是把释如图所示。对这种情况是把释放区合并到后空闲区,首地址为释放区首地址,大小为二者放区合并到后空闲区,首地址为释放区首地址,大小为二者大小之和。大小之和。占用区占用区TI I 操作系统操作系统 第四章第四章 存储器管理存储器管理37H HTI I判断相邻空闲区:判断相邻空闲区:addr(I) = addr(H) + size(H),则前邻为空闲区,则前邻为空闲区addr(T) = addr(I) + si

37、ze(I),则后邻为空闲区,则后邻为空闲区释放区与空闲区的拼接:释放区与空闲区的拼接: addr = addr(H) size = size(H) + size(I) + size(T) (修改修改H的登记项的登记项,并,并删除删除T的登记项的登记项) (3) 释放区与前后两个空闲区相邻:释放区与前后两个空闲区相邻:如图所示。在这种情况如图所示。在这种情况下将这三个区合为一个空闲区,其首地址为前空闲区首地址,下将这三个区合为一个空闲区,其首地址为前空闲区首地址,大小为这三个区大小之和。大小为这三个区大小之和。 操作系统操作系统 第四章第四章 存储器管理存储器管理38 (4) 释放区不与任何空闲

38、区相邻:释放区不与任何空闲区相邻:如图所示。这种情况下把如图所示。这种情况下把释放区作为一个空闲区,将其插入到自由链的适当位置。释放区作为一个空闲区,将其插入到自由链的适当位置。占用区占用区占用区占用区I I释放区作为一个新的空闲区:释放区作为一个新的空闲区: addr = addr(I) size = size(I) (增加一个新的登记项增加一个新的登记项) 操作系统操作系统 第四章第四章 存储器管理存储器管理39三、碎片问题及拼接技术三、碎片问题及拼接技术 碎片:碎片:主存中不连续的极小的空闲区。主存中不连续的极小的空闲区。 解决方法:解决方法:采用采用“拼接拼接技术技术”(移动技术移动技

39、术或或紧凑技术紧凑技术)使分)使分散的空闲区集中起来,以容纳新的作业。散的空闲区集中起来,以容纳新的作业。操作系统用户程序1用户程序310 KB30 KB用户程序614 KB用户程序926 KB操作系统用户程序1用户程序3用户程序6用户程序980 KB(a ) 紧凑前(b ) 紧凑后紧凑的示意紧凑的示意 操作系统操作系统 第四章第四章 存储器管理存储器管理40优缺点:优缺点: (1 1)集中分散的空闲区,提高了主存空间的利用率;)集中分散的空闲区,提高了主存空间的利用率; (2)移动会增加系统的开销,花费大量的)移动会增加系统的开销,花费大量的CPU时间;时间; (尽量减少移动)(尽量减少移动

40、) (3)移动是有条件的。)移动是有条件的。 (正等待外围设备进行信息传输的进程不能移动)(正等待外围设备进行信息传输的进程不能移动) (4)当系统进行拼接时,它必须停止所有其它的工作;)当系统进行拼接时,它必须停止所有其它的工作; (5)拼接需要重新定位已装入主存的作业。)拼接需要重新定位已装入主存的作业。 操作系统操作系统 第四章第四章 存储器管理存储器管理41 覆盖部分覆盖部分 覆盖部分覆盖部分四、四、主存的扩充主存的扩充(1)覆盖技术)覆盖技术基本思想:基本思想:把程序划分为若干个功能(逻辑)上相对独立把程序划分为若干个功能(逻辑)上相对独立的程序段(模块),按照程序的逻辑结构让那些不

41、会同时的程序段(模块),按照程序的逻辑结构让那些不会同时执行的程序段(模块)共享同一块主存区。执行的程序段(模块)共享同一块主存区。覆盖结构:覆盖结构: A (20K) B (50K) C (30K) F (30K) D (20K) E (40K) 常驻部分常驻部分(根段)根段) 覆盖区覆盖区1 (20K) 覆盖区覆盖区0 (50K) (20K) 0 20K 70K 110K 覆盖描述语句覆盖描述语句(用(用OS提供的提供的ODL):): ROOT A(BF,C(D,E) END 操作系统操作系统 第四章第四章 存储器管理存储器管理42(2)对换技术)对换技术对换空间的管理:对换空间的管理:为

42、了能对对换区中的空闲盘块进行管理,为了能对对换区中的空闲盘块进行管理,在系统中应配置相应的数据结构,以记录外存的使用情况。在系统中应配置相应的数据结构,以记录外存的使用情况。其形式与内存在动态分区分配方式中所用数据结构相似,即其形式与内存在动态分区分配方式中所用数据结构相似,即同样可以用空闲分区表或空闲分区链。在空闲分区表中的每同样可以用空闲分区表或空闲分区链。在空闲分区表中的每个表目中应包含两项,个表目中应包含两项, 即对换区的首址及其大小,它们的即对换区的首址及其大小,它们的单位是盘块号和盘块数。单位是盘块号和盘块数。 基本思想:基本思想:把内存中暂时不能运行的进程或者暂时不用的把内存中暂

43、时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。调入内存。 对换是提高内存利用率的有效措施。对换是提高内存利用率的有效措施。 操作系统操作系统 第四章第四章 存储器管理存储器管理43进程的换出与换入:进程的换出与换入: 进程的换出。进程的换出。 系统首先选择处于阻塞状态且优先级最低的进程作为系统首先选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动盘块,将该进程的程序和数据传送到换出进程,然后启动盘

44、块,将该进程的程序和数据传送到磁盘的对换区上。若传送过程未出现错误,便可回收该进磁盘的对换区上。若传送过程未出现错误,便可回收该进程所占用的内存空间,并对该进程的进程控制块做相应的程所占用的内存空间,并对该进程的进程控制块做相应的修改。修改。 进程的换入。进程的换入。 系统定时地查看所有进程的状态,从中找出系统定时地查看所有进程的状态,从中找出“就绪就绪”状态但已换出的进程,将其中换出时间状态但已换出的进程,将其中换出时间( (换出到磁盘上换出到磁盘上) )最最久的进程作为换入进程,将之换入,直至已无可换入的进久的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止。程或无可换

45、出的进程为止。 操作系统操作系统 第四章第四章 存储器管理存储器管理44(3)覆盖技术与交换技术的比较:覆盖技术与交换技术的比较:交换主要是在进程或作业之间进行,而覆盖则主要在同一交换主要是在进程或作业之间进行,而覆盖则主要在同一个作业内进行;个作业内进行;覆盖技术对程序设计者是覆盖技术对程序设计者是“不透明不透明”的,而交换技术对用的,而交换技术对用户是户是“透明透明”的;的;覆盖技术的使用要受到限制,要进行覆盖的作业必须满足覆盖技术的使用要受到限制,要进行覆盖的作业必须满足树状的模块结构(即要求用户按层次模块化结构编制程序),树状的模块结构(即要求用户按层次模块化结构编制程序),并写出覆盖

46、文件。而交换技术以整个作业交换为代价,花费并写出覆盖文件。而交换技术以整个作业交换为代价,花费了大量的了大量的CPUCPU时间。时间。 操作系统操作系统 第四章第四章 存储器管理存储器管理454.3 4.3 分页式存储管理分页式存储管理 一、基本原理一、基本原理 将主存空间按固定大小等分为若干个大小相等的块将主存空间按固定大小等分为若干个大小相等的块(页面),并给以从(页面),并给以从“0”0”开始的顺序的编号开始的顺序的编号块号(页块号(页框号)(页架号)框号)(页架号)。 将作业的地址空间等分为若干个与块相等的页,并给以将作业的地址空间等分为若干个与块相等的页,并给以从从“0”0”开始的顺

47、序的编号开始的顺序的编号页号(页面号)。页号(页面号)。 存储分配时,将作业信息按页存放到块中(存储分配时,将作业信息按页存放到块中(存储分配时,存储分配时,以块为单位以块为单位),一个作业所占用的若干个主存块可以是),一个作业所占用的若干个主存块可以是不相不相邻邻的(块号可以是的(块号可以是不连续不连续的)。的)。 操作系统操作系统 第四章第四章 存储器管理存储器管理46 主存空间主存空间 00000H FFFFFH 2# 0# 1#地址空间地址空间 0 3K -1 操作系统操作系统 第四章第四章 存储器管理存储器管理47(一)逻辑地址结构(一)逻辑地址结构在分页存贮管理中,程序的逻辑地址包

48、含两部分内容:页号在分页存贮管理中,程序的逻辑地址包含两部分内容:页号和页内地址(页内偏移量)。(设:页长和页内地址(页内偏移量)。(设:页长=1KB=210B) 页号页号P页内地址页内地址091015 二、页式地址转换二、页式地址转换一个系统的逻辑地址字为一个系统的逻辑地址字为16位,页长为位,页长为1KB,则页,则页长占长占10位,占逻辑地址字的第位,占逻辑地址字的第09位,余下的第位,余下的第1015位为页号。位为页号。 操作系统操作系统 第四章第四章 存储器管理存储器管理48 则:页长(则:页长(L)=212B=4最大分页数最大分页数2页页=页页页号页号P页内地址页内地址0111231

49、若逻辑地址的长度为若逻辑地址的长度为32位,其中位,其中011为页内地址,为页内地址,1231位为页号位为页号 操作系统操作系统 第四章第四章 存储器管理存储器管理49 对某特定机器,其地址结构是一定的。若给定一个逻对某特定机器,其地址结构是一定的。若给定一个逻辑地址空间中的地址为辑地址空间中的地址为A A,页面的大小为,页面的大小为L L,则页号,则页号P P和页内和页内地址地址d d可按下式求得:可按下式求得: MODLAdLAINTP 在系统进行存访操作时,由在系统进行存访操作时,由硬件地址转换机构硬件地址转换机构自动地取自动地取出页号和页内地址,然后进行页地址变换。出页号和页内地址,然

50、后进行页地址变换。 操作系统操作系统 第四章第四章 存储器管理存储器管理50 系统为每个进程建立一个页表,页表的起始地址和系统为每个进程建立一个页表,页表的起始地址和它的长度存放在进程的进程控制块它的长度存放在进程的进程控制块(PCB)(PCB)中。占用处理机中。占用处理机的现行进程的页表必须驻留在内存,其首地址和长度由的现行进程的页表必须驻留在内存,其首地址和长度由地址映射机构的页表起址和页表长度寄存器指示。地址映射机构的页表起址和页表长度寄存器指示。(二)页表(二)页表页表:页表:指出逻辑地址中的页号与该页所在主存的块号指出逻辑地址中的页号与该页所在主存的块号的对应关系。的对应关系。 页页

51、 号号 块块 号号 操作系统操作系统 第四章第四章 存储器管理存储器管理5121程序地址空间程序地址空间页号页号 块号块号 页号页号 作业作业1作业作业2作业作业3 作业作业3 作业作业1 作业作业1 作业作业2 作业作业2 作业作业1页表结构页表结构页表页表内存内存212226232729 操作系统操作系统 第四章第四章 存储器管理存储器管理52(三)页地址转换过程(三)页地址转换过程例:设页面大小为例:设页面大小为1KB,机器的地址长度为,机器的地址长度为16位。位。作业作业2 2的进程在的进程在CPUCPU上运行,执行指令上运行,执行指令Mov r1,2500Mov r1,2500页表始

52、址页表始址寄存器寄存器页号页号p p页内位移页内位移d d000010000010011100010001110001000 09 910101515 2500(100111000100)2Mov r1,Mov r1,250025001231230 01KB1KB2KB2KB3KB-13KB-1地址空间地址空间 (1110111000100)2 7620P=2P=2d=452d=452Mov r1,2500Mov r1,25001231230 02KB2KB4KB4KB7KB7KB256KB-1256KB-1主存主存页号页号 块号块号页表页表 0 1 2 2 4 7块号块号pp 页内位移页内位

53、移d d000111000111011100010001110001000 09 910101515123123AMODLdLAINTP 物理地址物理地址 pp * * L + + d 操作系统操作系统 第四章第四章 存储器管理存储器管理53(四)快表(四)快表 在每次地址变换时要访问内存页表,然后产生内存地在每次地址变换时要访问内存页表,然后产生内存地址,这样执行一条访问内存的指令至少要址,这样执行一条访问内存的指令至少要访问两次内存访问两次内存,运行速度降低一倍。解决这个问题的一种方法是把页表放运行速度降低一倍。解决这个问题的一种方法是把页表放在一组快速存储器中,而不是内存中。在一组快速存

54、储器中,而不是内存中。转换过程转换过程:将当前指令中的逻辑地址(将当前指令中的逻辑地址(2500)分解为页号)分解为页号P(2)和)和 页内页内 地址地址d(452)。)。根据页号根据页号P(2)查页表,取得相应的块号)查页表,取得相应的块号P(7)。)。将块号将块号P(7)与页内地址)与页内地址d(452)拼接为物理地址)拼接为物理地址(7620)。)。 操作系统操作系统 第四章第四章 存储器管理存储器管理54联想方式:联想方式:是用联想线路连接各寄存器,查询时不再用查询是用联想线路连接各寄存器,查询时不再用查询内存表格的方法一个表目一个表目地查询,而是通过电子线内存表格的方法一个表目一个表

55、目地查询,而是通过电子线路同时查询所有的快表寄存器。路同时查询所有的快表寄存器。 在具有高速联想存储器的地址变换过程中,首先检查这在具有高速联想存储器的地址变换过程中,首先检查这个高速存储器,确定需要的页表目是否在其中。如果没有发个高速存储器,确定需要的页表目是否在其中。如果没有发现,再访问主存储器中的页表。在访问内存中页表的同时,现,再访问主存储器中的页表。在访问内存中页表的同时,把从页表中读出的页表目存入一个寄存器单元中,以替代一把从页表中读出的页表目存入一个寄存器单元中,以替代一个老的、认为不再需要的页表目。个老的、认为不再需要的页表目。快表:快表:将当前执行进程中最常用的页表目(页号与

56、对应的块将当前执行进程中最常用的页表目(页号与对应的块号)存入号)存入高速联想存储器高速联想存储器构成一张快表,以减少访问主存的构成一张快表,以减少访问主存的次数,提高存取的速度。次数,提高存取的速度。慢表:慢表:内存中存放的页表。内存中存放的页表。 操作系统操作系统 第四章第四章 存储器管理存储器管理55页表始址寄存器页表始址寄存器分页机构分页机构联想寄存器联想寄存器块号块号 页表页表 (在主存中在主存中)物理地址物理地址apdbdbapb首首先先选选择择这这条条路路a+p仅在联想映像不匹配时进行仅在联想映像不匹配时进行 操作系统操作系统 第四章第四章 存储器管理存储器管理56(五)两级页表

57、及多级页表结构(五)两级页表及多级页表结构 现代的大多数计算机系统,都支持非常大的逻现代的大多数计算机系统,都支持非常大的逻辑地址空间辑地址空间(2(232322 26464) )。在这样的环境下,页表就变。在这样的环境下,页表就变得非常大,要占用相当大的内存空间。得非常大,要占用相当大的内存空间。 例如,对于一个具有例如,对于一个具有3232位位逻辑地址空间逻辑地址空间的分页的分页系统,规定系统,规定页面大小页面大小为为4KB4KB即即2 21212B B,则在每个进程页,则在每个进程页表中的表中的页表项页表项可达可达2 22020个个,1M1M个个之多。又因为之多。又因为每个页每个页表项表

58、项占用占用4 4个字节个字节, 故故每个进程每个进程仅仅其页表就要占仅仅其页表就要占用用4MB4MB的内存空间,而且还要求是连续的。的内存空间,而且还要求是连续的。 操作系统操作系统 第四章第四章 存储器管理存储器管理57 1 1、两级页表结构、两级页表结构逻辑地址为逻辑地址为3232位时位时, ,逻辑地址空间为逻辑地址空间为4GB(即即232B)设设: :页面大小为页面大小为4KB(4KB(即即2 21212B)B)则则: :最多页面数为最多页面数为1MB(1MB(即即2 22020B)B)两极页表结构的逻辑地址字两极页表结构的逻辑地址字: : 主页号主页号P1P1次级页号次级页号P2P2页

59、内地址页内地址d d 31 22 21 12 11 0 操作系统操作系统 第四章第四章 存储器管理存储器管理58 两级页表结构两级页表结构 101110780121742n第0页页表1460121023第1页页表114115011023外部页表012345671141151468第n页页存空间主页表主页表次级页表次级页表 操作系统操作系统 第四章第四章 存储器管理存储器管理59具有两级页表的地址变换机构具有两级页表的地址变换机构 外部页号P1P2外部页内地址页内地址d逻辑地址外部页表寄存器外部页表db页表页表物理地址页内地址页内地址主页表主页表次级页表次级页表主页号主

60、页号次级页号次级页号主页表寄存器主页表寄存器 操作系统操作系统 第四章第四章 存储器管理存储器管理60(一)分配结构:分配结构:位示图三、主存空间的分配与回收三、主存空间的分配与回收10000011001000011000110111111015 14 13 12 11 4 3 2 1 0(二)页的分配与回收分配:分配: 字号(行)字号(行) 扫描位示图,找是扫描位示图,找是“0”的位的位 修改该位为:修改该位为:“1”, 位号(列)位号(列) 块号块号 = = 字号字号 字长字长 + + 位号位号 ,返回块号。,返回块号。 操作系统操作系统 第四章第四章 存储器管理存储器管理61回收回收:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论