第七章实存管理技术.ppt
《第七章实存管理技术.ppt》由会员分享,可在线阅读,更多相关《第七章实存管理技术.ppt(108页珍藏版)》请在三一文库上搜索。
1、第七章 实存管理技术,存储器是计算机最重要的资源之一,内存管理一直是操作系统最主要的功能之一。 内存容量一直是计算机硬件资源中最紧张的资源,特别在多道程序设计技术条件下,一方面要充分利用内存容量,另一方面必须保证多个程序在内存中互不干扰即保证内存安全。 存储器管理技术分实存管理和虚存管理。,基本的存储管理方法是分区法、覆盖技术、交换技术 、分页法、分段法、段页法。,第七章 实存管理技术,7.1 存储管理的基本概念 7.2 连续分配存储管理方式 7.3 离散分配存储管理方式 7.4 交换技术 7.5 覆盖技术,7.1 存储管理的基本概念,7.1.1 存储管理要解决的问题 7.1.2 存储管理的分
2、类 7.1.3 地址映射(重定位),7.1.1 存储管理要解决的问题,早期计算机系统中,内存是最紧张的资源之一。为了在小内存中运行大程序,人们先发明了覆盖技术。当发明虚存管理技术后,才真正解决了在小内存中运行大程序的问题。 为了有效管理计算机内存资源,操作系统的存储管理要具备以下功能: 1. 内存空间分配与回收 根据某种分配方式,遵循某种分配算法,为进程分配内存,当进程结束时再回收内存。,2. 地址映射 设计地址变换机构,静态和动态地址变换的方法。 3. 内存保护 怎样让内存中各个进程互不干扰,怎样保证内存中程序、数据的安全。 4. 内存扩充 怎样从逻辑上扩充内存。这属于虚存管理的范畴。,7.
3、1.2 存储管理的分类,从分配方式上按进程在内存中是否连续,可以把存储管理分成连续分配方式和离散分配方式两类。 1. 连续分配方式 必须为进程在内存分配一片连续的空间。 2. 离散分配方式 允许将一个进程分散地装入内存的多个不相邻的区域。,从进程是整体装入还是局部装入内存可以把存储管理分成实存管理和虚存管理两类。 1. 实存管理 必须把进程完整地装入内存。 2. 虚存管理 允许将一个进程局部地装入内存。,7.1.3 地址映射(重定位),1. 地址空间和存储空间 源程序经过编译或汇编产生目标文件,目标文件经过连接和装配产生可以执行的文件。在连接装配时,语言系统并不知道将来这个执行文件会放在内存的
4、哪个位置,为了方便地将执行文件装入内存,把执行文件中第一条指令的地址设为 0。 其他指令的地址都以它做参照。执行文件中指令的地址称相对地址或逻辑地址。而相对地址的集合称相对地址空间,简称地址空间。,内存每个字节都有一个地址,这是物理地址是真实的地址,也称绝对地址。绝对地址空间也叫物理地址空间,简称存储空间。 一个程序的逻辑地址和它在内存中的地址是不同的,显然必须先将逻辑地址变成物理地址后程序才能正确运行。,2. 静态重定位 静态重定位是由专门设计的重定位装配程序来完成的,是在目标程序装入到内存区时由装配程序来完成地址转换。 优点:无需增加地址转换机构 缺点 : 不能实现重新分配内存 用户必须事
5、先确定所需的存储量 每个用户进程需各自使用一个独立的副本。,Load #1,450, , ,3500,0,100,450, ,Load #1,2450, ,3500, , , ,2100,操作系统,2000,2450,逻辑地址,物理地址,图 7-2 静态地址映射,3. 动态重定位 动态重定位是在目标程序执行过程中,在CPU访问内存之前,由硬件地址映射机构来完成将要访问的指令或数据的逻辑地址向内存的物理地址的转换。 优点:内存的使用更加灵活有效;几个作业共享一程序段的单个副本比较容易;无需用户干预,由系统来负责全部的存储管理。 缺点 :需附加硬件支持;实现存储器管理的软件比较复杂。,Load#1
6、,450, , ,3500,0,100,450, ,Load#1, 450, ,3500, , , ,2100,操作系统,2000,2450,逻辑地址,物理地址,图 7-3 动态地址映射,基址寄存器,2000,7.2 连续分配方式,7.2.1 单一连续分配方式 7.2.2 固定分区内存管理方式 7.2.3 可变分区内存管理方式,7.2.1 单一连续分配方式,在单任务的操作系统条件下,让用户占用计算机所有资源,内存管理采用单一连续分配方式。 内存被分成两个区 1. 系统区 供操作系统使用 2. 用户区 供用户放一个程序,操作系统区,用户区 ,7.2.2 固定分区内存管理方式,分区管理是满足多道程
7、序设计的一种最早采用的存储管理方法。其基本原理是给每一个进程在内存中划分一块可用的存储区,连续存储各进程的程序和数据,使各进程能并发进行。,内存分配算法: (1)首次适应法 空闲分区按物理地址为升序排列,在内存现有空闲分区中,找到第一个可用的分区就分配。 (2)最佳适应法 在内存现有的空闲分区中,找一个浪费最小的分区分配。,(3)最坏适应法 在现有内存空闲区中,找一个浪费最大的分区分配。 (4)唯一最佳分配法 作业按长度分类排队,一个分区对应一个队,使这个队中每个作业的长度小于等于分区的长度,使分配后内存浪费最小。从整体上看,这个算法也不是最佳的。,固定分区法 固定分区法就是把内存固定划分为若
8、干个不等的区域,划分的原则由系统决定。在整个执行过程中保持分区长度和分区个数不变。操作系统为每个用户作业分配一个分区。,内存管理 :,管理数据结构:设置内存分配表 内存分配:每个区分配一个进程 内存回收:简单 缺点:内存利用率不高,如何记录系统的状况呢?,分配策略,分区4,分区3,分区2,分区1,操作系统,0,100K,200K,400K,700K,1300K,多个输入队列,分区4,分区3,分区2,分区1,操作系统,0,100K,200K,400K,700K,1300K,单个输入队列,(a)唯一最佳分配算法,(b)其他分配算法,固定分区,操作系统建立一个内存分区管理表(分区号、分区长度、分区首
9、址和分区状态),所有分区按物理地址升序排列,每个分区占表中一行。操作系统为作业分配内存时,按(1)、(2)、(4)中某个分配算法查表,有合适的分区就分配,否则就不分配。 固定分区法管理方式虽然简单,但是存在大量内碎片(在分区内存在空余的空间,这就称为内碎片),内存利用率不高。,内存分区管理表,地址映射 对于固定分区,可以采用静态地址映射也可以采用动态地址映射。 内存保护 可以采用界限寄存器法,用两个寄存器分别放用户区的首地址和用户的长度。用户程序访问内存的地址必须在这个范围内,否则就是地址越界。,7.2.3 可变分区内存管理方式,可变分区法 动态分区分配是根据进程的实际需要,动态地为它分配连续
10、的内存空间,各个分区是在相应进程装入内存时建立的,其大小恰好等于进程的大小。 为了实现内存分配,系统中设置了相应的数据结构来记录内存的使用情况,常用的数据结构形式有空闲分区链。,内存分配 数据结构,可以用空闲区链表,节点中包含空闲区的首址、长度、链指针。 在进程PCB中包含进程的内存首址、长度、访问权限等项目。 分配算法:首次适应法、最佳适应法、最坏适应法。 分配时,操作系统填写PCB中进程的内存首址、长度、访问权限。,内存回收 为了最大限度的利用内存资源,就要不断将分散的小碎片拼接成一个大的空闲区,这里有个拼接的时机问题,可以在分配时拼接,也可以在回收时拼接。拼接意味着要求进程能在内存中移动
11、,例如现在进程的首址是 a ,将它向地址增大方向移动 b 个字节,进程的首址变成 a + b 。进程长度不变。,地址映射 为了实现内存拼接,必须用动态地址映射 CPU提供基址寄存器、限长寄存器、地址运算器。 进程切换时,操作系统把PCB中的内存信息( 进程的首址、长度 )写入基址寄存器和限长寄存器同时将进程PCB中的现场信息写入CPU的寄存器集合。,动态重定位的实现过程,内存保护 利用基址寄存器和限长寄存器,一个进程只能访问自己的内存区,只有操作系统进程可以访问全部的内存区。 除了地址界限保护外,为了进程间共享数据还需要访问权限保护,进程可以给另一个进程赋予访问权限,允许在访问权限范围内访问。
12、,动态分区举例,外碎片 进程外的内存空间碎片化 能用压缩方法解决 OS 移动进程使进程和进程相连。 消耗CPU时间,P1 (20M),P2 (14M),P3 (18M),Empty (56M),Empty (4M),P4(8M),Empty (6M),P2 (14M),Empty (6M),Refer to Figure 7.4,例:现在有三个作业A(20KB),B(80KB),C(50KB),内存有两个空闲区F1(110KB),F2(60KB)。 首次适应法(设F1的首址 F2的首址 ) A(占20KB) B(占80KB) C(占50KB),F1( 100KB, 10KB ),F2( 50K
13、B, 10KB ),首次适应法(设F1的首址 F2的首址 ) A(20KB) B(80KB) 最坏适应法 A(20KB) B(80KB) C(50KB),F2(20KB,40KB),F1(80KB,30KB),F1( 100KB, 10KB ),F2( 50KB, 10KB ),最佳适应法 A(20KB) B(80KB) 可变分区分配采用最佳适应算法,结果不一定是最佳的;采用最坏程序算法,结果不一定是最差的。,F2( 20KB, 40KB ),F1( 80KB, 30KB ),伙伴系统,全部可用空间被分成一个长度是2U的块 如请求分配长度s符合2U-1 s = 2U 全部空间分配给它 否则块被
14、分成两个相等的伙伴。 这个过程一直持续直到找到符合长度= s的伙伴,伙伴系统举例,伙伴系统树型表示,7.3 离散分配存储管理方式,固定分区和可变分区都是连续分配内存的技术,把一个进程装入一个分区,使用这种方法会造成许多碎片,降低了内存的利用率。产生碎片的根本原因就是要求把一个进程连续地放在一个内存区。虽然可变分区技术使用内存拼接技术把分散的空闲分区集中成较大的分区,但要增加系统的开销。人们考虑能否化整为零提高内存的利用率。,7.3.1 分页式存储管理方式 7.3.2 分段式存储管理方式 7.3.3 段页式存储管理方式,7.3.1 分页式存储管理方式,可变分区方式除了产生大量的外碎片,还有一个缺
15、点,就是进程动态增长不方便。分页管理是解决碎片问题的一种有效办法,它允许进程在内存空间里是不连续的;还便于进程动态增长。 分页管理技术原理 (1)操作系统按一个2的整数次幂为长度,把内存用户区分成若干存储区,称为块,每个块的容量都是相同的,每个块按物理地址值由小到大顺序从 0 开始编号,称为块号。,000000 000,000000 001,000000 010,000000 ,000000 111,000001 000,000001 001,000001 ,000001 111, ,111111 000,111111 001,111111 010,111111 ,111111 111,块 号
16、 块内地址,# 0,# 1,# 63,假设每块的容量是23个字节物理地址被分成两部分,高位部分称为块号,低位部分称为块内地址。假设内存共有64个块,每块有 8 个字节。块号是从物理地址中截出来,是物理地址固有的。 物理地址=(块号,块内地址) =( B , d ) 内存块的起始地址等于内存块号乘以块长。,物理地址,(2)用户进程的逻辑空间也按内存块的大小分页,每页也按逻辑地址由小到大编号称为页号。 假设一个进程有61个字节,以每页8个字节分页,分成8 页,如图所示:,000000 000,000000 001,000000 010,000000 ,000000 111,000001 000,0
17、00001 001,000001 ,000001 111, ,000111 000,000111 001,000111 010,000111 101,页 号 页内地址,# 0,# 1,# 7,每页的容量是23 逻辑地址被分成两部分,高位部分称为页号,低位部分称为页内地址。 逻辑地址=( p , d ) 程序共有8页,每页有 8 个字节。页号是从逻辑地址中截出来的。为程序的每一页分配一个内存块,这就得出程序任何一页装入内存后,它的页内地址就等于块内地址。,逻辑地址, ,物理地址(块号,块内地址)用(B,d)表示, 逻辑地址(页号,页内地址)用(p,d)表示, 设逻辑地址是A,页长是L,从数学角度
18、描述: p = A div L d = A mod L 因为L=2m,所以p是A逻辑右移 m 位后的结果,d 是A逻辑右移 m 位时,移出去的m 位值。,用汇编语言整数除法指令很容易描述,以A 作为被除数,以L 作为除数,商就是页号,余数就是页内地址。 其实不用对逻辑地址移位,也不用对逻辑地址做除法,在工程上直接根据页长的位数,将逻辑地址一分为二,高位部分是页号,低位部分是页内地址(页内偏移)。,内存空间分配与回收 页式管理以块为单位给进程分配内存,操作系统必须随时掌握内存块的状态(已分配、未分配、当前空闲块的总数)。 下面建立内存空间分配与回收的数学模型: 首先看数据的性质,内存块具有哪些属
19、性? 内存块的起始地址、内存块的状态(已分配或空闲),内存块的总数是固定的。,这个模型要能反映内存块的地址和状态信息。 并且内存块的总数是不变的。 从数据结构和程序语言角度讲,一个数组元素具备两个特性,能否用一个数组元素代表一个内存块? 用数组元素的值代表内存块的状态,元素的下标值代表内存块的地址。因为一个内存块的状态不是已分配就是未分配,可以用一个二进制位表示,0表示未分配,1表示已分配。,进程和页架,A.0,A.1,A.2,A.3,B.0,B.1,B.2,C.0,C.1,C.2,C.3,D.0,D.1,D.2,D.3,D.4,假定系统有m* n个内存块(m行n列),用m*n的位图表示:,0
20、 1 2 3 4 5 . 30 31,0 1 2 3 4 5 6 7,在程序语言中用二维数组表示这个位图,每个元素的长度是一个二进制位,用一个数组元素表示一个内存块。 数组元素值表示对应的内存块的状态(空闲或占用)数组元素的下标映射内存块的起始地址。 从分页原理可知,内存块的起始地址等于内存块号乘以页长,在此页长是个常数,用元素的下标值映射内存块号。块号左移就可获得块的起始地址。,假设i和j分别代表数组元素的行、列下标 。 B = i * n + j 例:n=32, m= 8 , i = 3, j = 5 B = i * n + j = 3 * 32 + 5 = 101 分配时遍历数组,找到元
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 章实存 管理 技术
链接地址:https://www.31doc.com/p-2094755.html