《微处理器系统结构与嵌入式系统设计:存储器管理 材料1》由会员分享,可在线阅读,更多相关《微处理器系统结构与嵌入式系统设计:存储器管理 材料1(59页珍藏版)》请在金锄头文库上搜索。
1、第第 5 5 章章 存存 储储 器器 管管 理理5.1 5.1 存储器管理的基本概念存储器管理的基本概念5.1.1 5.1.1 存储器管理的功能存储器管理的功能引言:同引言:同CPU一样,存储器(指内存)是计算机系统的重要资源,一样,存储器(指内存)是计算机系统的重要资源,为操作系统、各种系统软件和用户程序所共享。存储器以空间分为操作系统、各种系统软件和用户程序所共享。存储器以空间分片方式实现共享(注意与片方式实现共享(注意与CPU时间分片的区别)。存储器的空间时间分片的区别)。存储器的空间被分为系统存储区(称为系统区)和用户存储区(称为用户区)。被分为系统存储区(称为系统区)和用户存储区(称
2、为用户区)。存储器管理讨论的主要对象是内存的用户区。存储器管理讨论的主要对象是内存的用户区。存储器管理的两个基本目的存储器管理的两个基本目的v充分提高内存的利用率;充分提高内存的利用率;v为用户使用存储器提供方便;为用户使用存储器提供方便;存储器管理的功能存储器管理的功能v内存分配;内存分配;第第 5 5 章章 存存 储储 器器 管管 理理v地址重定位;地址重定位;v内存保护;内存保护;v内存扩充;内存扩充;5.1.2 5.1.2 地址重定位(映射)地址重定位(映射)用户源程序在作业调度之前的处理:编译和链接用户源程序在作业调度之前的处理:编译和链接v编译:将用户源代码编译为几个目标模块;编译
3、:将用户源代码编译为几个目标模块;v链接:由链接程序将编译后的目标模块以及所需要的库链接:由链接程序将编译后的目标模块以及所需要的库函数,链接在一起,形成装配模块。函数,链接在一起,形成装配模块。源程序源程序编译程序编译程序目标模块目标模块1目标模块目标模块2目标模块目标模块n库函数库函数链接程序链接程序装配模块装配模块第第 5 5 章章 存存 储储 器器 管管 理理地址空间:上图中的装配模块的地址是从地址空间:上图中的装配模块的地址是从“0”开始的,模开始的,模块中的其它地址都是相对于起始的块中的其它地址都是相对于起始的“0”地址计算的,这些相地址计算的,这些相对地址所形成的地址范围称为对地
4、址所形成的地址范围称为“地址空间地址空间”。相对地址(逻辑地址):地址空间中的地址。相对地址(逻辑地址):地址空间中的地址。存储空间:主存中一系列存储信息的物理单元的集合。存储空间:主存中一系列存储信息的物理单元的集合。绝对地址(物理地址):存储空间中的地址。绝对地址(物理地址):存储空间中的地址。Mov r1,5001234装入装入装入装入Mov r1,50012340100500599地址空间地址空间010001500511K1100物理空间物理空间第第 5 5 章章 存存 储储 器器 管管 理理地址重定位(映射):将作业地址空间中使用的逻辑地址地址重定位(映射):将作业地址空间中使用的逻
5、辑地址(相对地址)转换成存储空间的物理地址的过程。地址映射(相对地址)转换成存储空间的物理地址的过程。地址映射是由于分配给作业的存储空间与作业的地址空间不一致所引是由于分配给作业的存储空间与作业的地址空间不一致所引起的。地址重定位分为静态重定位和动态重定位两类。起的。地址重定位分为静态重定位和动态重定位两类。静态重定位静态重定位v在程序装入内存时进行;在程序装入内存时进行;Mov r1,500123401005005990511K12341100Mov r1,50010001500静态重定位静态重定位静态重定位静态重定位物理地址起始地址相对地址v特点:无需增加硬件地址变换机构,但要求分配的区域
6、特点:无需增加硬件地址变换机构,但要求分配的区域为连续存储区,在执行期间不能移动,共享实现较难。为连续存储区,在执行期间不能移动,共享实现较难。第第 5 5 章章 存存 储储 器器 管管 理理动态重定位动态重定位v在程序执行时进行重定位;在程序执行时进行重定位;Mov r1,50012340100500599Mov r1,500123401000511K1100500相对地址1000重定位寄存器1500v特点:动态重定位可以将程序分配到不连续的存储空间特点:动态重定位可以将程序分配到不连续的存储空间中;在程序的执行过程中,可以实现部分装入,然后根据中;在程序的执行过程中,可以实现部分装入,然后
7、根据需要动态申请和分配内存,可以方便实现虚拟存储管理;需要动态申请和分配内存,可以方便实现虚拟存储管理;便于程序段的共享。但需要硬件的支持,算法较复杂。便于程序段的共享。但需要硬件的支持,算法较复杂。第第 5 5 章章 存存 储储 器器 管管 理理5.1.3 5.1.3 主存分配方式主存分配方式从分配时间和运从分配时间和运行过程特征上分:行过程特征上分:从存储空间划分上:从存储空间划分上:静态分配方式:静态分配方式:静态分配方式:静态分配方式:装入内存时确定;一次性分配所需存储空间;在运行中不能移动,不能再申请和释放。动态分配方式:动态分配方式:动态分配方式:动态分配方式:装入内存时确定;但在
8、运行时可动态申请附加空间和归还系统,允许移动。连续分配方式:连续分配方式:连续分配方式:连续分配方式:将主存划分为大小不等的连续区;一个区存放一个程序或一个程序中的一个逻辑段。如分区存储方式和段式存储方式。离散分配方式:离散分配方式:离散分配方式:离散分配方式:将主存划分为一系列大小相等的块;将程序的地址空间划分为一系列页面,将页面放置于块中。如页面存储管理方式。第第 5 5 章章 存存 储储 器器 管管 理理5.1.4 5.1.4 虚拟存储器虚拟存储器概念:一个程序的地址空间大于内存的物理空间,可将一概念:一个程序的地址空间大于内存的物理空间,可将一部分地址空间放在内存,其余放在外存。当访问
9、的信息不在部分地址空间放在内存,其余放在外存。当访问的信息不在内存时,由操作系统将其调入内存。从逻辑上看,它是对内内存时,由操作系统将其调入内存。从逻辑上看,它是对内存容量进行扩充的一种存储系统;从效果上,系统好像提供存容量进行扩充的一种存储系统;从效果上,系统好像提供了一个比实际内存大得多的存储器。了一个比实际内存大得多的存储器。原理:程序局部性原理,即程序在执行时呈现出局部性规原理:程序局部性原理,即程序在执行时呈现出局部性规律,也就是程序在一较短时间内,程序的执行仅限于某个部律,也就是程序在一较短时间内,程序的执行仅限于某个部分,相应地,它所访问的存储空间也局限于某些区域。分,相应地,它
10、所访问的存储空间也局限于某些区域。特征特征离散性:内存离散性分配,最基本特征;离散性:内存离散性分配,最基本特征;多次性:多次地被调入内存,最重要特征;多次性:多次地被调入内存,最重要特征;对换性:允许指令或数据调进和调出;对换性:允许指令或数据调进和调出;虚拟性:从逻辑上对内存容量的扩充。虚拟性:从逻辑上对内存容量的扩充。第第 5 5 章章 存存 储储 器器 管管 理理实现的物质基础实现的物质基础v足够的外存;足够的外存;v一定容量的内存,受系统的地址结构限制;一定容量的内存,受系统的地址结构限制;v地址变换机构,一般利用动态重定位的方式;地址变换机构,一般利用动态重定位的方式;v一定的策略
11、,一定的调入策略和一定的调出策略。一定的策略,一定的调入策略和一定的调出策略。虚拟存储器容量的限定:由计算机系统的地址结构确定的。虚拟存储器容量的限定:由计算机系统的地址结构确定的。5.1.5 5.1.5 存储保护存储保护目的:防止一个作业有意或无意破坏操作系统或其它作业目的:防止一个作业有意或无意破坏操作系统或其它作业的数据。的数据。方式:不同的内存分配方式,采用不同的保护方式。方式:不同的内存分配方式,采用不同的保护方式。v上、下界保护方式:为分给用户或进程的每个连续内存上、下界保护方式:为分给用户或进程的每个连续内存空间设置一对上下界寄存器,使它们分别指向该区的上空间设置一对上下界寄存器
12、,使它们分别指向该区的上界和下届,因而适用于连续的分配方式中。界和下届,因而适用于连续的分配方式中。第第 5 5 章章 存存 储储 器器 管管 理理进程A0100500599200下届寄存器 100 上届寄存器 200 按上图所示,进程按上图所示,进程A物理地址应在物理地址应在100,200)中,否则,发出中,否则,发出保护性中断,停止该进程执行。保护性中断,停止该进程执行。v基址、限长寄存器保护方式:系统设置一对寄存器,存放当基址、限长寄存器保护方式:系统设置一对寄存器,存放当前执行的程序在内存分区始址的基址以及该程序地址空间的长前执行的程序在内存分区始址的基址以及该程序地址空间的长度。运行
13、时将每个访问内存的相对地址和寄存器的内容进行比度。运行时将每个访问内存的相对地址和寄存器的内容进行比较,如超长,则发出越界中断信号。较,如超长,则发出越界中断信号。进程A0100500599200基址寄存器 100 限长寄存器 100 v存储保护键方式:每个区域分配一个独立保护键,分配在该存储保护键方式:每个区域分配一个独立保护键,分配在该区域的程序也被赋予一个保护键。运行时,检查两者是否一致,区域的程序也被赋予一个保护键。运行时,检查两者是否一致,如不一致,发出保护性中断。如不一致,发出保护性中断。第第 5 5 章章 存存 储储 器器 管管 理理v访问控制信息方式:在专门数据结构中增加访问控
14、制信息,访问控制信息方式:在专门数据结构中增加访问控制信息,如禁止任何操作、只能读操作、只能写操作和读如禁止任何操作、只能读操作、只能写操作和读/写操作。写操作。第第 5 5 章章 存存 储储 器器 管管 理理5.2 5.2 连续分配存储管理方式连续分配存储管理方式5.2.1 5.2.1 单一连续分配单一连续分配分配思想:内存分为用户区域和系统区域。在用户区只允分配思想:内存分为用户区域和系统区域。在用户区只允许驻留一道程序,被一个用户所独占。许驻留一道程序,被一个用户所独占。例子:存在于单用户、单任务的操作系统中。例子:存在于单用户、单任务的操作系统中。重定位:相对地址基地址物理地址。有的系
15、统采用静重定位:相对地址基地址物理地址。有的系统采用静态重定位方式,有的系统采用动态重定位方式。态重定位方式,有的系统采用动态重定位方式。内存保护:一些系统采用内存保护:一些系统采用基址、限长寄存器保护方式,一基址、限长寄存器保护方式,一些系统没有任何保护机构。些系统没有任何保护机构。特点:简单,但不能用于多用户的系统中,一般没设虚拟特点:简单,但不能用于多用户的系统中,一般没设虚拟存储器。存储器。连续分配:连续分配是为一个用户程序分配一个连续的内存空间。连续分配:连续分配是为一个用户程序分配一个连续的内存空间。分类:单一连续分配方式和分区分配方式。分区分配方式又分为分类:单一连续分配方式和分
16、区分配方式。分区分配方式又分为固定分区和动态分区方式,是最简单的多道程序内存分配方法。固定分区和动态分区方式,是最简单的多道程序内存分配方法。系统区用户区第第 5 5 章章 存存 储储 器器 管管 理理5.2.2 5.2.2 固定分区分配固定分区分配分配思想分配思想v内存分区:将内存空间划分为几个固定大小的区域;划内存分区:将内存空间划分为几个固定大小的区域;划分的原则由系统操作员或操作系统确定;所有分区大小可分的原则由系统操作员或操作系统确定;所有分区大小可以相同,也可以不等;每个区域空间是连续的,且一个区以相同,也可以不等;每个区域空间是连续的,且一个区域空间只能驻留一道程序,其大小及边界
17、在程序运行过程域空间只能驻留一道程序,其大小及边界在程序运行过程中不能改变。中不能改变。v分区表:为实现内存固定分配,系统建立一个分区说明分区表:为实现内存固定分配,系统建立一个分区说明表(分区表),记录各分区数目、大小、起始地址和状态。表(分区表),记录各分区数目、大小、起始地址和状态。分区号大小起始地址状 态120K0K在 用28K20K未分配332K28K未分配464K60K未分配5132K124K未分配OS020K124K28K60K255K第1区第2区第3区第4区第5区第第 5 5 章章 存存 储储 器器 管管 理理v程序装入:检索分区表,从表中程序装入:检索分区表,从表中寻找出寻找
18、出一个能满足的、一个能满足的、尚未分配的分区给该程序,并尚未分配的分区给该程序,并修改修改分区表中该分区表项分区表中该分区表项的状态。若找不到大小足够的分区,则拒绝为该程序分的状态。若找不到大小足够的分区,则拒绝为该程序分配内存。当进程运行完毕,进程配内存。当进程运行完毕,进程释放释放该分区空间,系统该分区空间,系统将该分区在分区表中对应的表项的状态将该分区在分区表中对应的表项的状态改为改为未分配。未分配。碎片2K碎片12K碎片14K缺点缺点v各分配分区可能造成碎片(零头);各分配分区可能造成碎片(零头);v程序大小受分区空间大小的限制。程序大小受分区空间大小的限制。作业A 6K作业B 50K
19、作业C 20K作业队列OS020K124K28K60K255K作业A作业C作业B内存第第 5 5 章章 存存 储储 器器 管管 理理5.2.3 5.2.3 动态分区(可变式分区)分配动态分区(可变式分区)分配思想思想v分区:根据作业的实际大小动态地划分分区,使分区的分区:根据作业的实际大小动态地划分分区,使分区的大小正好适应作业的需求。各分区大小是不定的,内存大小正好适应作业的需求。各分区大小是不定的,内存中分区的数目也是不定的。中分区的数目也是不定的。v空闲分区表(或空闲分区链):系统建立一个空闲分区空闲分区表(或空闲分区链):系统建立一个空闲分区表(或空闲分区链)表(或空闲分区链) ,记录
20、各空闲分区数目、大小、起,记录各空闲分区数目、大小、起始地址和状态。始地址和状态。v程序装入:按照一定的程序装入:按照一定的分配算法分配算法从空闲分区表(或空闲从空闲分区表(或空闲分区链)中分区链)中选出选出一个能满足程序需求的分区,如果这个一个能满足程序需求的分区,如果这个空闲分区比所要求的存储量大,则将空闲分区比所要求的存储量大,则将其一分为二其一分为二,一部,一部分分配给作业,剩下的一部分仍留在空闲分区表(或空分分配给作业,剩下的一部分仍留在空闲分区表(或空闲分区链),并对空闲分区表(或空闲分区链)中有关闲分区链),并对空闲分区表(或空闲分区链)中有关信息进行信息进行修改修改。若找不到大
21、小足够的空闲分区,则拒绝。若找不到大小足够的空闲分区,则拒绝为该程序分配内存。为该程序分配内存。第第 5 5 章章 存存 储储 器器 管管 理理分配算法分配算法v首次适应算法首次适应算法q空闲分区表空闲分区表按地址递增的顺序按地址递增的顺序排列。在进行分配时,排列。在进行分配时,从空闲分区表表首开始查找,直到能满足其大小要求从空闲分区表表首开始查找,直到能满足其大小要求的空闲分区为止。然后将该分区划出一块空间给请求的空闲分区为止。然后将该分区划出一块空间给请求者,剩余的空闲部分仍留在空闲分区表中。者,剩余的空闲部分仍留在空闲分区表中。q特点:优先利用内存低地址部分的空闲区。特点:优先利用内存低
22、地址部分的空闲区。q优点:保留了高地址部分的大空闲区。优点:保留了高地址部分的大空闲区。q缺点缺点低地址端留下许多难以利用的很小空闲分区(碎低地址端留下许多难以利用的很小空闲分区(碎片);片);增加查找可用空闲分区开销。增加查找可用空闲分区开销。第第 5 5 章章 存存 储储 器器 管管 理理v最佳适应算法最佳适应算法q空闲分区表空闲分区表按大小递增的顺序按大小递增的顺序排列。在进行分配时,排列。在进行分配时,从空闲分区表首开始查找,直到能满足其大小要求的从空闲分区表首开始查找,直到能满足其大小要求的空闲分区为止。然后将该分区划出一块空间给请求者,空闲分区为止。然后将该分区划出一块空间给请求者
23、,剩余的空闲分区仍留在空闲分区表中。剩余的空闲分区仍留在空闲分区表中。q特点:优先利用了大小与程序要求最接近的空闲区。特点:优先利用了大小与程序要求最接近的空闲区。q优点:保留了大空闲区。优点:保留了大空闲区。q缺点:剩下的空闲区很小,且数量较多。缺点:剩下的空闲区很小,且数量较多。第第 5 5 章章 存存 储储 器器 管管 理理v最坏适应算法最坏适应算法q空闲分区表空闲分区表按大小递减的顺序按大小递减的顺序排列。在进行分配时,排列。在进行分配时,判断空闲分区表首的空闲分区是否能满足其大小的要,判断空闲分区表首的空闲分区是否能满足其大小的要,如果大于程序需求,则从该分区中划出一部分空间给如果大
24、于程序需求,则从该分区中划出一部分空间给请求者,剩余的空闲分区仍留在空闲分区表中;如果请求者,剩余的空闲分区仍留在空闲分区表中;如果小于程序需求,则拒绝内存分配。小于程序需求,则拒绝内存分配。q特点:总是挑选出最大的分区分配给程序。特点:总是挑选出最大的分区分配给程序。q优点:分配给程序后剩下的空闲区较大,可能能装优点:分配给程序后剩下的空闲区较大,可能能装下其它作业。下其它作业。q缺点:最大空闲区总是首先被分配而进行划分,难缺点:最大空闲区总是首先被分配而进行划分,难于满足大作业的要求。于满足大作业的要求。第第 5 5 章章 存存 储储 器器 管管 理理OS30K使用20K使用5K使用46K
25、020K100K160K210K255K分区号大小起始地址130K20K220K100K35K160K446K210K首次适应算法空闲分区表分区号大小起始地址15K160K220K100K330K20K446K210K最佳适应算法空闲分区表分区号大小起始地址146K210K230K20K320K100K45K160K首次适应算法空闲分区表OS30K使用20K使用5K使用46K020K100K160K210K255K作业A-18K作业序列作业A-18KOS30K使用20K使用5K使用46K020K100K160K210K255K作业序列255KOS30K使用20K使用5K使用46K020K100
26、K160K210K作业A-18K作业序列例子例子12K 38K2K 118K28K 228K第第 5 5 章章 存存 储储 器器 管管 理理分区回收分区回收v当作业运行完毕,应回收已分配的分区。回收分区时当作业运行完毕,应回收已分配的分区。回收分区时应首先检查该分区是否有上邻或下邻的空闲分区。如有应首先检查该分区是否有上邻或下邻的空闲分区。如有邻接的空闲区,则合并成一个大的空闲区,然后修改有邻接的空闲区,则合并成一个大的空闲区,然后修改有关的分区状态信息,有四种情况。关的分区状态信息,有四种情况。v回收分区回收分区R上邻一个空闲分区,此时应合并为一个连续上邻一个空闲分区,此时应合并为一个连续的
27、空闲区。合并分区的首地址为的空闲区。合并分区的首地址为R上邻的空闲区的首地上邻的空闲区的首地址,其大小为两者之和。如下图所示:址,其大小为两者之和。如下图所示:ERE+R第第 5 5 章章 存存 储储 器器 管管 理理v回收分区回收分区R下邻一个空闲分区,此时应合并为一个连续的下邻一个空闲分区,此时应合并为一个连续的空闲区。合并分区的首地址为空闲区。合并分区的首地址为R的首地址,其大小为两者的首地址,其大小为两者之和。如下图所示:之和。如下图所示:REE+Rv回收分区回收分区R上邻上邻一个空闲分区,下邻一个空闲分区,此时一个空闲分区,下邻一个空闲分区,此时应将这三个分区合并为一个连续的空闲区。
28、合并分区的首应将这三个分区合并为一个连续的空闲区。合并分区的首地址为与地址为与R上邻的空闲区的首地址,其大小为三者之和,上邻的空闲区的首地址,其大小为三者之和,且应将与且应将与R下邻的空闲分区在空闲分区表中的有关信息删下邻的空闲分区在空闲分区表中的有关信息删去。如下图所示:去。如下图所示:E1RE2E1+E2+R第第 5 5 章章 存存 储储 器器 管管 理理v回收分区回收分区R不与任何空闲分区相邻,此时应建立一个新不与任何空闲分区相邻,此时应建立一个新的空闲区,并将有关信息加入空闲分区表中。的空闲区,并将有关信息加入空闲分区表中。5.2.4 5.2.4 碎片问题及拼接技术碎片问题及拼接技术碎
29、片:内存中无法被利用的小空闲区域。碎片:内存中无法被利用的小空闲区域。拼接:用于解决碎片问题,使空闲区域能满足作业的要求。拼接:用于解决碎片问题,使空闲区域能满足作业的要求。方式是:移动存储器中所分配区到内存的一端,使本来分散方式是:移动存储器中所分配区到内存的一端,使本来分散的空闲区域连成一个大的空闲区。的空闲区域连成一个大的空闲区。OS在使用在使用在使用020K100K160K210K255K50K120KOS在使用在使用在使用020K70K255K50K120K第第 5 5 章章 存存 储储 器器 管管 理理采用拼接技术的时机采用拼接技术的时机v在某个分区回收时立即进行拼接;在某个分区回
30、收时立即进行拼接;v当找不到足够大的空间,且空闲区的存储容量可以满足当找不到足够大的空间,且空闲区的存储容量可以满足作业要求时进行拼接。作业要求时进行拼接。拼接技术存在的问题拼接技术存在的问题v消耗系统资源;消耗系统资源;v当系统进行拼接时,必须停止所有其它的工作;当系统进行拼接时,必须停止所有其它的工作;v拼接需要重新定位已进入内存的作业。拼接需要重新定位已进入内存的作业。第第 5 5 章章 存存 储储 器器 管管 理理练习:某操作系统采用可变分区分配存储管理方法,用户区为练习:某操作系统采用可变分区分配存储管理方法,用户区为512K,始址为始址为0,用空闲分区表管理空闲分区。若分配时采用分
31、,用空闲分区表管理空闲分区。若分配时采用分配空闲区低地址部分的方案,且初始时用户区的配空闲区低地址部分的方案,且初始时用户区的512K空间空闲,空间空闲,对下述申请序列:对下述申请序列:申请申请300K,申请申请100K,释放释放300K,申请申请150K,申请申请30K,申请申请40K,申请申请60K,释放释放30K回答以下问题:回答以下问题:(1)采用首次适应算法,空闲分区有哪些空块(给出始址、大)采用首次适应算法,空闲分区有哪些空块(给出始址、大小)?小)?(2)采用最佳适应算法,空闲分区有哪些空块(给出始址、大)采用最佳适应算法,空闲分区有哪些空块(给出始址、大小)?小)?(3)如再申
32、请)如再申请100K,针对(针对(1)和()和(2)各有什么结果?)各有什么结果?第第 5 5 章章 存存 储储 器器 管管 理理5.3 5.3 对换对换多道程序下的对换多道程序下的对换v在多道程序的环境下采用对换设施的背景:在多道程序的环境下采用对换设施的背景:q被阻塞的进程占了大量的内存空间;被阻塞的进程占了大量的内存空间;q驻留在外存的大量作业,因无内存而不能运行;驻留在外存的大量作业,因无内存而不能运行;v对换:内存中暂时不能运行的进程或数据,换出到外存;将对换:内存中暂时不能运行的进程或数据,换出到外存;将已经具备运行条件的进程,或进程所需要的程序和数据,调入已经具备运行条件的进程,
33、或进程所需要的程序和数据,调入内存。内存。v对换的目的:提高内存利用率,提高系统的吞吐量。对换的目的:提高内存利用率,提高系统的吞吐量。v对换例子:在对换例子:在UNIX和和Windows中具有对换的功能。中具有对换的功能。v对换的分类对换的分类q整体对换(进程对换):以进程为单位进行对换;整体对换(进程对换):以进程为单位进行对换;q部分对换:以页或段为单位进行对换;部分对换:以页或段为单位进行对换;第第 5 5 章章 存存 储储 器器 管管 理理OS为了实现进程的对换,必须实现以下三方面的功能:对换空为了实现进程的对换,必须实现以下三方面的功能:对换空间管理,进程的调出,进程的调入。间管理
34、,进程的调出,进程的调入。v对换空间管理:指对换空间的分配和回收。对换空间管理:指对换空间的分配和回收。q外存的划分:文件区和对换区。前者存放文件,采取离外存的划分:文件区和对换区。前者存放文件,采取离散分配方式;后者存放从内存换出的进程,采取连续分配散分配方式;后者存放从内存换出的进程,采取连续分配方式。方式。q对换区的分配与回收:与动态分区分配方式相似,空闲对换区的分配与回收:与动态分区分配方式相似,空闲分区表,包含对换分区首址和对换区长度。分区表,包含对换分区首址和对换区长度。v进程的换出:即中级调度,由对换程序执行。进程的换出:即中级调度,由对换程序执行。q选出被换出的进程选出被换出的
35、进程选择处于阻塞的进程,有多个时,以优先级最低和在选择处于阻塞的进程,有多个时,以优先级最低和在内存驻留时间综合考虑;内存驻留时间综合考虑;选择处于就绪的进程,有多个时,以优先级最低和在选择处于就绪的进程,有多个时,以优先级最低和在内存驻留时间综合考虑;内存驻留时间综合考虑;第第 5 5 章章 存存 储储 器器 管管 理理q换出过程换出过程申请对换空间申请对换空间写入对换区写入对换区释放所占用的内存释放所占用的内存修改进程控制块和内存分配表修改进程控制块和内存分配表循环前面过程。循环前面过程。注意:在进程被调出内存时,该进程的注意:在进程被调出内存时,该进程的PCB仍保留在内仍保留在内存。存。
36、v进程的换入:即中级调度,由对换程序执行。进程的换入:即中级调度,由对换程序执行。q检查检查PCB中所有进程的状态,从中找出中所有进程的状态,从中找出“就绪且换出就绪且换出”状状态的进程态的进程申请内存申请内存换入换入循环前面过程。循环前面过程。第第 5 5 章章 存存 储储 器器 管管 理理5.4 5.4 页式存储管理及请求页式存储管理页式存储管理及请求页式存储管理页式页式存储管理产生的背景:与分区存储管理比较。分区存储管理存储管理产生的背景:与分区存储管理比较。分区存储管理要求将作业放在连续的存储区中,产生许多碎片。页式存储管理要求将作业放在连续的存储区中,产生许多碎片。页式存储管理允许将
37、作业存放在不相邻的分区中,实现非连续分配,可有效地允许将作业存放在不相邻的分区中,实现非连续分配,可有效地解决碎片问题。解决碎片问题。5.4.1 5.4.1 页式存储管理页式存储管理实现思想实现思想v页面(页):用户作业地址空间被分为大小相等区域。页面(页):用户作业地址空间被分为大小相等区域。v块(物理块):存储空间被分为与页大小相等的区域。块(物理块):存储空间被分为与页大小相等的区域。v分配:以块为单位分配,可将任意一页放在任意一块中;分配:以块为单位分配,可将任意一页放在任意一块中;一次性分配所有页面所需要的块。一次性分配所有页面所需要的块。v页表:系统为每个进程建立一张页面与物理块的
38、映射表,页表:系统为每个进程建立一张页面与物理块的映射表,即:记录相应页在内存中对应的物理块号,称为页表,一即:记录相应页在内存中对应的物理块号,称为页表,一般驻留在内存中。般驻留在内存中。第第 5 5 章章 存存 储储 器器 管管 理理012247页号 块号页表页表012345678内存01024=011024=102421024=204831024=307241024=409651024=512061024=614471024=71680页1页2页用户作业假设页面大小为假设页面大小为1K=1024字节字节第第 5 5 章章 存存 储储 器器 管管 理理v页式页式逻辑地址结构:作业装入内存或
39、进程访问某个逻辑逻辑地址结构:作业装入内存或进程访问某个逻辑地址中的数据时,由机器硬件将作业的逻辑地址划分为页地址中的数据时,由机器硬件将作业的逻辑地址划分为页号和页内地址(系统地址结构所决定的),如下所示。号和页内地址(系统地址结构所决定的),如下所示。页号P页内位移w091015按照上述的结构来分,作业逻辑地址被分为两部分。假设按照上述的结构来分,作业逻辑地址被分为两部分。假设某系统地址为某系统地址为16位,则按上图的地址结构,两部分地址长位,则按上图的地址结构,两部分地址长度为度为16位,位,09位为页内地址,即每页大小为位为页内地址,即每页大小为210=1K;1015位为页号,即地址空
40、间最多允许有位为页号,即地址空间最多允许有28=64个页面个页面。页号P1位移w相对页号P2位移w相对第第 5 5 章章 存存 储储 器器 管管 理理一般说,具体操作系统的页面大小是固定的(假设为一般说,具体操作系统的页面大小是固定的(假设为L),),当当给定一个逻辑地址空间中的地址为给定一个逻辑地址空间中的地址为A时,则时,则A转换为页号转换为页号p和页和页内地址内地址w可按下式求得:可按下式求得:P=intA/L w=A mod L如:设页面大小为如:设页面大小为1KB1024,有一个逻辑地址有一个逻辑地址A3484,则,则p= int3484/1024=3,w= 3484 mod 102
41、4=412地址变换过程(重定位过程)地址变换过程(重定位过程)v分页地址变换机构自动将逻辑地址分为页号和页内位移分页地址变换机构自动将逻辑地址分为页号和页内位移两部分,再以页号为索引去检索页表。在检索前,先将页两部分,再以页号为索引去检索页表。在检索前,先将页号和页表长度进行比较,如果页号超过页表长度,则表示号和页表长度进行比较,如果页号超过页表长度,则表示本次要访问的地址超过进程的地址空间,系统产生越界中本次要访问的地址超过进程的地址空间,系统产生越界中断。如果页访问合法,则由页表起始地址和页号计算出相断。如果页访问合法,则由页表起始地址和页号计算出相应页表项的位置,得到该页的物理块号。最后
42、将块号的起应页表项的位置,得到该页的物理块号。最后将块号的起始物理地址与逻辑地址中的页内位移相加,得到物理地址。始物理地址与逻辑地址中的页内位移相加,得到物理地址。第第 5 5 章章 存存 储储 器器 管管 理理页号页内位移页表始址页表长度+0x1y2z块始址页内位移页表寄存器越界中断逻辑地址页号 块号物理地址页表第第 5 5 章章 存存 储储 器器 管管 理理2452页表始址页表长度+02132881024452=8644页表寄存器越界中断逻辑地址页号 块号物理地址页表例题:假设某系统为例题:假设某系统为16位系统,页面大小为位系统,页面大小为1K,逻辑地址为逻辑地址为2500的页面为的页面
43、为2,页内位移为,页内位移为452,则该逻辑地址转换过程如下:,则该逻辑地址转换过程如下:第第 5 5 章章 存存 储储 器器 管管 理理具有高速缓存的地址变换机构具有高速缓存的地址变换机构v页表放在内存,存取一个数据或一条指令至少要访问两页表放在内存,存取一个数据或一条指令至少要访问两次内存。这种方式效率低。为提高查表速度,增设了高速次内存。这种方式效率低。为提高查表速度,增设了高速缓存(联想存储器)。通常将正在运行作业当前访问的页缓存(联想存储器)。通常将正在运行作业当前访问的页表项存放在高速缓存中,页表的其余部分放在内存中。表项存放在高速缓存中,页表的其余部分放在内存中。v地址变换过程:
44、页号与高速缓存所有页号比较,若其中地址变换过程:页号与高速缓存所有页号比较,若其中有与其匹配的页号,取出对应的块号,形成物理地址;若有与其匹配的页号,取出对应的块号,形成物理地址;若没有匹配的页号,还需访问内存的页表,找出对应块号,没有匹配的页号,还需访问内存的页表,找出对应块号,形成物理地址,并将所找到的页表项加到高速缓存中。若形成物理地址,并将所找到的页表项加到高速缓存中。若高速缓存已满,则必须按某种原则淘汰一个表项以腾出位高速缓存已满,则必须按某种原则淘汰一个表项以腾出位置。置。第第 5 5 章章 存存 储储 器器 管管 理理作业:若有一分页存储管理系统中,某作业页表如下表所示。作业:若
45、有一分页存储管理系统中,某作业页表如下表所示。已知页面大小为已知页面大小为1024字节,试将逻辑地址字节,试将逻辑地址1011,2148,3000,4000和和5015转化为相应的物理地址。转化为相应的物理地址。01232316页号 块号页表页表第第 5 5 章章 存存 储储 器器 管管 理理5.4.2 5.4.2 请求页式存储管理请求页式存储管理页式页式存储管理的局限性:要求将所有作业的页面一次调入内存储管理的局限性:要求将所有作业的页面一次调入内存,不利于大作业的运行。存,不利于大作业的运行。请求页式存储管理实现思想请求页式存储管理实现思想v页面、块与页式存储管理一样;页面、块与页式存储管
46、理一样;v区别区别1:部分页面装入内存,当所需要的页面不在内存时:部分页面装入内存,当所需要的页面不在内存时由操作系统将其调入。由操作系统将其调入。v区别区别2:页表结构修改。为发现所需页面是否在内存以及:页表结构修改。为发现所需页面是否在内存以及为了处理当要访问的页面不在内存的情况,必须对页式存为了处理当要访问的页面不在内存的情况,必须对页式存储管理的页表结构进行修改,如下:储管理的页表结构进行修改,如下:页号 块号状态位访问字段修改位外存地址页面是否在内存该页最近访问记录该页调入内存后是否被修改该页在外存的地址第第 5 5 章章 存存 储储 器器 管管 理理v区别区别3:地址变换。当访问的
47、页面在内存时,地址变换与:地址变换。当访问的页面在内存时,地址变换与页式存储管理页式存储管理 相同;当不在内存时,产生缺页中断,用户相同;当不在内存时,产生缺页中断,用户程序被中断,控制转到调页程序,由调页程序根据该页在程序被中断,控制转到调页程序,由调页程序根据该页在外存的地址将其调入内存;当内存有空闲块时,只要将该外存的地址将其调入内存;当内存有空闲块时,只要将该页面装入任何空闲块,并将块号填入页表中相应的表目,页面装入任何空闲块,并将块号填入页表中相应的表目,同时修改状态位;若内存无空闲块,则必须先淘汰主存中同时修改状态位;若内存无空闲块,则必须先淘汰主存中某一页面,若被淘汰的页在主存中
48、被修改过,将其写回辅某一页面,若被淘汰的页在主存中被修改过,将其写回辅存。存。页面置换算法页面置换算法v目的:用于确定应淘汰哪一页的策略。目的:用于确定应淘汰哪一页的策略。v抖动:刚被淘汰出去的页,过后不久又要被访问,需要抖动:刚被淘汰出去的页,过后不久又要被访问,需要再次调入,而调入不久又再次被淘汰,然后又要访问,如再次调入,而调入不久又再次被淘汰,然后又要访问,如此反复,使系统将大部分时间花在页面的调进和调出上。此反复,使系统将大部分时间花在页面的调进和调出上。v分类:最佳置换算法、先进先出置换算法和最近最久未分类:最佳置换算法、先进先出置换算法和最近最久未使用置换算法。使用置换算法。第第
49、 5 5 章章 存存 储储 器器 管管 理理页面置换算法页面置换算法v最佳置换算法:从内存中移出永远不再需要的页面。若最佳置换算法:从内存中移出永远不再需要的页面。若无这样的页面,则选出最长时间不再需要的页面。特点:无这样的页面,则选出最长时间不再需要的页面。特点:不实际。不实际。v先进先出置换算法:选择在主存驻留时间最长的一页并先进先出置换算法:选择在主存驻留时间最长的一页并将其淘汰。特点:对按线性顺序访问的程序比较适合,另将其淘汰。特点:对按线性顺序访问的程序比较适合,另外,可能出现外,可能出现Belady现象。现象。v最近最久未使用置换算法:选择最近一段时间内没有被最近最久未使用置换算法
50、:选择最近一段时间内没有被访问过的页淘汰。特点:实现比较困难。访问过的页淘汰。特点:实现比较困难。第第 5 5 章章 存存 储储 器器 管管 理理例题:在一个请求分页存储管理系统中,一个作业的页面的走例题:在一个请求分页存储管理系统中,一个作业的页面的走向为向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业,当分配给该作业的物理块数分别是的物理块数分别是3和和4时,试计算采取下述页面置换算法时缺时,试计算采取下述页面置换算法时缺页率(假设开始执行时主存中没有页面),并比较结果。页率(假设开始执行时主存中没有页面),并比较结果。(1)最佳置换淘汰算法;)最佳置换淘汰算法;(2)先
51、进先出淘汰算法;)先进先出淘汰算法;(3)最近最久未使用淘汰算法。)最近最久未使用淘汰算法。第第 5 5 章章 存存 储储 器器 管管 理理解(解(1)使用最佳淘汰(置换)算法,页面淘汰情况如下:)使用最佳淘汰(置换)算法,页面淘汰情况如下:左向左向第第1块块第第2块块第第3块块缺页缺页4 3 2 1 4 3 5 4 3 2 1 54缺缺43缺缺432缺缺431缺缺431431435缺缺435435235缺缺215缺缺故缺页率:故缺页率:7/12=58.3%物理块数为物理块数为3时:时:215第第 5 5 章章 存存 储储 器器 管管 理理左向左向第第1块块第第2块块第第3块块第第4块块4 3
52、 2 1 4 3 5 4 3 2 1 54缺缺43缺缺432缺缺4321缺缺432143214325缺缺4325432543251325缺缺故缺页率:故缺页率:6/12=50%物理块数为物理块数为4时:时:缺页缺页1325第第 5 5 章章 存存 储储 器器 管管 理理(2)使用先进先出淘汰(置换)算法,页面淘汰情况如下:)使用先进先出淘汰(置换)算法,页面淘汰情况如下:左向左向第第1块块第第2块块第第3块块缺页缺页4 3 2 1 4 3 5 4 3 2 1 54缺缺43缺缺432缺缺132缺缺142缺缺143缺缺543缺缺543543523缺缺521缺缺故缺页率:故缺页率:9/12=75%物
53、理块数为物理块数为3时:时:521第第 5 5 章章 存存 储储 器器 管管 理理左向左向第第1块块第第2块块第第3块块第第4块块4 3 2 1 4 3 5 4 3 2 1 54缺缺43缺缺432缺缺4321缺缺432143215321缺缺5421缺缺5431缺缺5432缺缺1432缺缺故缺页率:故缺页率:10/12=83.3%物理块数为物理块数为4时:时:缺页缺页1532缺缺第第 5 5 章章 存存 储储 器器 管管 理理(3)使用最近最久淘汰(置换)算法,页面淘汰情况如下:)使用最近最久淘汰(置换)算法,页面淘汰情况如下:左向左向第第1块块第第2块块第第3块块缺页缺页4 3 2 1 4 3
54、 5 4 3 2 1 54缺缺43缺缺432缺缺132缺缺142缺缺143缺缺543缺缺543543243缺缺213缺缺故缺页率:故缺页率:10/12=83.3%物理块数为物理块数为3时:时:215缺缺第第 5 5 章章 存存 储储 器器 管管 理理左向左向第第1块块第第2块块第第3块块第第4块块4 3 2 1 4 3 5 4 3 2 1 54缺缺43缺缺432缺缺4321缺缺432143214351缺缺435143514352缺缺4312缺缺故缺页率:故缺页率:8/12=66.7%物理块数为物理块数为4时:时:缺页缺页5312缺缺第第 5 5 章章 存存 储储 器器 管管 理理5.4.3 5
55、.4.3 页的共享与保护页的共享与保护在页式存储管理下的共享实现在页式存储管理下的共享实现v可重入代码(纯代码):允许多个进程进行同时访问的可重入代码(纯代码):允许多个进程进行同时访问的代码。不允许在执行过程中可重入代码有任何改变。代码。不允许在执行过程中可重入代码有任何改变。v实现方法:使共享同一个可重入代码的各进程的页表中,实现方法:使共享同一个可重入代码的各进程的页表中,都建立可重入代码的页表项,即指向相同的物理块。都建立可重入代码的页表项,即指向相同的物理块。v缺点:缺点:q被共享的部分不一定被包含于一个完整的页面中。不被共享的部分不一定被包含于一个完整的页面中。不该被共享的数据也被
56、共享,不利于保密;该被共享的数据也被共享,不利于保密;q被共享的页面在诸作业中页内地址可能不同;被共享的页面在诸作业中页内地址可能不同;保护保护v越界保护;越界保护;v在页表中设置访问控制信息;在页表中设置访问控制信息;第第 5 5 章章 存存 储储 器器 管管 理理5.4.4 5.4.4 页式存储管理系统的特点页式存储管理系统的特点优点优点v有效解决碎片;有效解决碎片;v提供虚拟存储管理,方便用户利用大的存储空间,有利提供虚拟存储管理,方便用户利用大的存储空间,有利于多道程序执行。于多道程序执行。缺点缺点v要求一定的硬件支持;要求一定的硬件支持;v增加系统开销;增加系统开销;v可能产生抖动(
57、在请求页式存储管理中可能产生);可能产生抖动(在请求页式存储管理中可能产生);v可能产生页内碎片;可能产生页内碎片;v不利于数据的共享。不利于数据的共享。第第 5 5 章章 存存 储储 器器 管管 理理作业作业1:有一矩阵:有一矩阵 int a100100;按先行后列次序存储。假设在一虚拟系统中,采用最近最久未按先行后列次序存储。假设在一虚拟系统中,采用最近最久未使用的淘汰策略(使用的淘汰策略(LRU),),一个进程有一个进程有3页内存空间,每页可页内存空间,每页可以存放以存放200个整数,其中第一页存放程序,且假定程序已在内个整数,其中第一页存放程序,且假定程序已在内存。存。程序程序A: f
58、or (i=1;i=100;i+) for (j=1;j=100;j+) aij=0;程序程序B: for (j=1;j=100;j+) for (i=1;i=100;i+) aij=0;问:程序问:程序A和程序和程序B在执行过程的缺页次数。在执行过程的缺页次数。第第 5 5 章章 存存 储储 器器 管管 理理5.5 5.5 段式与请页式存储管理段式与请页式存储管理段式存储管理产生的背景:分区存储管理存在碎片的问题;分页段式存储管理产生的背景:分区存储管理存在碎片的问题;分页存储管理实现了非连续分配,较好地解决了碎片问题,但不利于存储管理实现了非连续分配,较好地解决了碎片问题,但不利于数据的共
59、享以及难以满足用户二维地址空间的要求(即不能满足数据的共享以及难以满足用户二维地址空间的要求(即不能满足用户的要求);在一般情况下,用户作业空间是二维的,即按一用户的要求);在一般情况下,用户作业空间是二维的,即按一定的逻辑关系将作业分段,每段有自己的名字,用户可以根据名定的逻辑关系将作业分段,每段有自己的名字,用户可以根据名字来访问相应的程序或数据段。段式存储管理能较好地解决上述字来访问相应的程序或数据段。段式存储管理能较好地解决上述问题。问题。5.5.1 5.5.1 段式存储管理段式存储管理实现思想实现思想v作业地址空间分段:作业的地址空间由若干逻辑分段组作业地址空间分段:作业的地址空间由
60、若干逻辑分段组成,每一分段为一组逻辑意义完整的信息集合,每段有自成,每一分段为一组逻辑意义完整的信息集合,每段有自己的名字,且每一分段都是首地址为己的名字,且每一分段都是首地址为0的连续一维地址空间。的连续一维地址空间。因此,整个地址空间是二维的。见下图。因此,整个地址空间是二维的。见下图。第第 5 5 章章 存存 储储 器器 管管 理理01k分段分段main (主程序主程序)0500 分段分段a (子程序子程序)0400 分段分段b (数据段数据段)0300 分段分段c (堆栈段堆栈段)v内存分配:以段为单位分配内存,每段分配一个连续的内存分配:以段为单位分配内存,每段分配一个连续的内存区,
61、但各段不要求连续。内存的分配与回收类似动态内存区,但各段不要求连续。内存的分配与回收类似动态分区分配。分区分配。v地址空间结构:作业地址空间是二维的,由段号和段内地址空间结构:作业地址空间是二维的,由段号和段内位移组成。位移组成。段号段号S段内段内位移位移W0151623第第 5 5 章章 存存 储储 器器 管管 理理v段表:为了实现从逻辑地址转变到物理地址,系统为每段表:为了实现从逻辑地址转变到物理地址,系统为每个进程创建一个段表。个进程创建一个段表。段号 段长起始地址地址变换过程地址变换过程v为了实现从地址的转换,在系统中设置了段表寄存器,为了实现从地址的转换,在系统中设置了段表寄存器,用
62、于存放段表的起始地址和段表的长度。在进行地址转换用于存放段表的起始地址和段表的长度。在进行地址转换时,系统将逻辑地址中的段号与段表长度进行比较,若时,系统将逻辑地址中的段号与段表长度进行比较,若段段段段号超过段表长度,表示超界,产生越界中断号超过段表长度,表示超界,产生越界中断号超过段表长度,表示超界,产生越界中断号超过段表长度,表示超界,产生越界中断;若未越界,;若未越界,根据段表起始地址和段号计算出该段对应段表项的位置,根据段表起始地址和段号计算出该段对应段表项的位置,读出该段在内存的起始地址,然后再读出该段在内存的起始地址,然后再检查段内地址是否超检查段内地址是否超检查段内地址是否超检查
63、段内地址是否超过该段的段长,过该段的段长,过该段的段长,过该段的段长,若超过则同样发出越界中断信号;若未越若超过则同样发出越界中断信号;若未越界,则将该段在内存的起始地址与段内位移相加,从而得界,则将该段在内存的起始地址与段内位移相加,从而得到要访问的物理地址。到要访问的物理地址。v快表:为了提高内存访问速度,也可使用快表。快表:为了提高内存访问速度,也可使用快表。第第 5 5 章章 存存 储储 器器 管管 理理段号段内位移段表始址段表长度+0x1y2z块始址段内位移段表寄存器越界中断逻辑地址段号 段长物理地址段表a1a2a3起始地址第第 5 5 章章 存存 储储 器器 管管 理理2100段表
64、始址段表长度+01k180026008k100=8292段表寄存器越界中断逻辑地址段号 段长物理地址段表起始地址6k4k8k第第 5 5 章章 存存 储储 器器 管管 理理5.5.2 5.5.2 请求分段存储管理请求分段存储管理分段存储管理的局限性:要求将所有作业的段一次调入内存,分段存储管理的局限性:要求将所有作业的段一次调入内存,不利于大作业的运行。不利于大作业的运行。请求分段存储管理实现思想请求分段存储管理实现思想v部分装入:一个作业各分段的副本都保存在外存中,当部分装入:一个作业各分段的副本都保存在外存中,当运行时,首先将当前需要的一段或几段调入内存,其它段运行时,首先将当前需要的一段
65、或几段调入内存,其它段在需要时再调入。在需要时再调入。v段表结构修改:为发现所需段是否在内存以及为了处理段表结构修改:为发现所需段是否在内存以及为了处理当要访问的段不在内存的情况,必须对段式存储管理的段当要访问的段不在内存的情况,必须对段式存储管理的段表结构进行修改,如下:表结构进行修改,如下:段号 段长 内存始址 访问字段 修改位状态位外存地址该段是否在内存该段最近访问记录该段调入内存后是否被修改该段在外存的地址第第 5 5 章章 存存 储储 器器 管管 理理v地址变换:当访问的段在内存时,地址变换与分段存储地址变换:当访问的段在内存时,地址变换与分段存储管理相同;当不在内存时,产生缺段中断
66、。管理相同;当不在内存时,产生缺段中断。OS在主存中查在主存中查找是否有足够大的分区存放该段。如果没有这样的分区,找是否有足够大的分区存放该段。如果没有这样的分区,则检查未分配的分区的总和,确定是否对分区进行拼接,则检查未分配的分区的总和,确定是否对分区进行拼接,或者调出一个或多个分段后再装入所需要的分段。或者调出一个或多个分段后再装入所需要的分段。段的共享与保护段的共享与保护v共享:比分页存储管理的共享容易多,只需在每个进程共享:比分页存储管理的共享容易多,只需在每个进程的段表中,为共享段(必须是可重入代码)设置一个段表的段表中,为共享段(必须是可重入代码)设置一个段表项。项。v保护:地址越
67、界保护法。保护:地址越界保护法。段表寄存器中的段表长度与逻辑地址中的段号进行比段表寄存器中的段表长度与逻辑地址中的段号进行比较;较;段表项中的段长与逻辑地址中的段内位移进行比较。段表项中的段长与逻辑地址中的段内位移进行比较。第第 5 5 章章 存存 储储 器器 管管 理理5.5.3 5.5.3 段式存储管理的特点段式存储管理的特点优点优点v每一个段是一组意义相对完整的信息;每一个段是一组意义相对完整的信息;v便于实现信息共享和链接;便于实现信息共享和链接;缺点缺点v要求一定的硬件支持,增加成本;要求一定的硬件支持,增加成本;v存在碎片的问题;存在碎片的问题;v每段的长度受内存可用空闲区大小的限
68、制。每段的长度受内存可用空闲区大小的限制。第第 5 5 章章 存存 储储 器器 管管 理理5.6 5.6 段页式存储管理段页式存储管理分页与分区比较分页与分区比较v相同点:不要求作业要连续存放;相同点:不要求作业要连续存放;v区别区别页是不完整的信息物理单位,分页是为了实现非连续分配,页是不完整的信息物理单位,分页是为了实现非连续分配,以解决碎片问题,是系统管理的需要;段是完整的信息逻以解决碎片问题,是系统管理的需要;段是完整的信息逻辑单位,分段是为了更好地实现共享,是用户的需要。辑单位,分段是为了更好地实现共享,是用户的需要。页的大小固定且由系统决定,将逻辑地址转换为页号和页页的大小固定且由
69、系统决定,将逻辑地址转换为页号和页内地址是由硬件实现的。而段的长度可能不同,决定于用内地址是由硬件实现的。而段的长度可能不同,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分。根据信息的性质来划分。分页的作业地址空间是一维的,分段的地址空间是二维的。分页的作业地址空间是一维的,分段的地址空间是二维的。第第 5 5 章章 存存 储储 器器 管管 理理段页式产生的背景:通过上面的分析知道,页式能有效提高段页式产生的背景:通过上面的分析知道,页式能有效提高内存的利用率,而段式能反映程序的逻辑结构并有利于段的共内存的利用率
70、,而段式能反映程序的逻辑结构并有利于段的共享。将两种存储管理方式结合起来,就形成段页式存储管理方享。将两种存储管理方式结合起来,就形成段页式存储管理方式。式。段页式存储管理思想:段页式存储管理思想:v作业地址空间划分:被分为几个逻辑段;每段有自己的作业地址空间划分:被分为几个逻辑段;每段有自己的段号,再将每个段分为若干个固定的页。对于主存空间的段号,再将每个段分为若干个固定的页。对于主存空间的管理仍然和页式管理一样,将其分成若干个和页面大小相管理仍然和页式管理一样,将其分成若干个和页面大小相同的存储块,对主存的分配以存储块为单位。同的存储块,对主存的分配以存储块为单位。v地址结构:包含段号、页
71、号和页内位移动。地址结构:包含段号、页号和页内位移动。段号段号S页号页号P页内页内位移位移d段内位移w第第 5 5 章章 存存 储储 器器 管管 理理v从从程序员的角度,逻辑地址仍由段号和段内位移程序员的角度,逻辑地址仍由段号和段内位移w组成。组成。地址变换机构将段内位移地址变换机构将段内位移w的高的高几位解释为页号几位解释为页号P,剩下的剩下的为解释为页内位移为解释为页内位移d。v段表和页表:系统为每个进程建立一张段表,而每个段段表和页表:系统为每个进程建立一张段表,而每个段有一张页表。段表结构包含:段号、页表始址和页表长度。有一张页表。段表结构包含:段号、页表始址和页表长度。而页表至少包含
72、页号和块号。此外,系统还有一个段表寄而页表至少包含页号和块号。此外,系统还有一个段表寄存器,指出作业的段表的起始地址和段表长度。存器,指出作业的段表的起始地址和段表长度。段号 页表始址页表长度v地址变换:利用段表寄存器的段表起始地址信息,找到地址变换:利用段表寄存器的段表起始地址信息,找到段表的位置,再利用段号,将它与段表寄存器的段表长度段表的位置,再利用段号,将它与段表寄存器的段表长度进行比较,若小于段表长度,表示未越界,于是利用段表进行比较,若小于段表长度,表示未越界,于是利用段表起始地址和段号求出该段对应段表项的位置,从中得到该起始地址和段号求出该段对应段表项的位置,从中得到该段的页表始
73、址,再利用逻辑地址中的段内页号获得对应页段的页表始址,再利用逻辑地址中的段内页号获得对应页表项的位置,从中读出该页所在的物理块,再与页内地址表项的位置,从中读出该页所在的物理块,再与页内地址拼接得到物理地址。拼接得到物理地址。第第 5 5 章章 存存 储储 器器 管管 理理作业作业某段式存储管理中采用下表所示的段表某段式存储管理中采用下表所示的段表段号段的长度内存起始地址06602191143330210090358012374961952(1)简述地址变换过程;)简述地址变换过程;(2)计算)计算0,430,1,10,2,500,3,400,4,20,5,100的内存地址,其中方括号内的第一元素为段号,第二的内存地址,其中方括号内的第一元素为段号,第二元素是段内地址。元素是段内地址。(3)存取主存中的一条指令或数据至少需要几次访问内存。)存取主存中的一条指令或数据至少需要几次访问内存。