存储管理的基本原理
分页存储管理的基本原理

分页存储管理的基本原理分页存储管理是一种计算机内存管理技术,用于将主存(RAM)划分为固定大小的页框(Page Frame)和相同大小的逻辑页面(Page)。
它的基本原理是将进程的逻辑地址空间划分为固定大小的逻辑页面,然后将这些逻辑页面映射到物理内存中的页框。
下面是分页存储管理的基本原理:1. 逻辑页面划分:进程的逻辑地址空间被划分为固定大小的逻辑页面,每个页面具有相同的大小。
逻辑页面的大小通常是2的幂次,如4KB、8KB等。
2. 物理页面划分:物理内存也被划分为固定大小的页框,与逻辑页面大小相同。
页框的数量和大小取决于系统的物理内存容量。
3. 地址映射:当进程访问一个逻辑地址时,操作系统将逻辑地址分为页号和页内偏移量。
页号用于在页表中查找对应的页表项,页表项记录了逻辑页面与物理页框之间的映射关系。
通过页表项,操作系统可以确定逻辑页面对应的物理页框。
4. 页表管理:操作系统维护每个进程的页表,用于记录逻辑页面与物理页框的映射关系。
页表可以存储在主存中的一个特定位置,也可以使用硬件支持的高速缓存(例如,TLB)进行快速查找。
5. 缺页处理:当进程访问一个逻辑页面,但该页面尚未被加载到物理内存时,发生了缺页(Page Fault)。
操作系统会将缺失的页面从辅助存储设备(如硬盘)加载到物理内存的一个空闲页框中,并更新页表,建立逻辑页面与物理页框之间的映射。
6. 页面置换:如果物理内存中的页框已满,无法容纳新的页面,操作系统需要进行页面置换(Page Replacement)。
页面置换算法用于选择要被替换出的页面,并将新页面加载到被释放的页框中。
通过分页存储管理,操作系统可以将进程的逻辑地址空间分割为固定大小的页面,以提供更高效的内存管理和地址空间隔离。
它使得进程可以访问超出物理内存容量的逻辑地址空间,而不需要连续的物理内存空间。
同时,它也引入了缺页和页面置换的开销,这是由于页面的延迟加载和可能的页面置换操作。
计算机操作系统存储管理

计算机操作系统存储管理计算机操作系统存储管理是指操作系统在运行过程中管理和控制计算机的存储资源的一种机制。
它负责分配和回收内存,以及保护和管理进程的内存访问权限。
存储管理是操作系统中的一个重要子系统,对系统的性能和稳定性具有重要影响。
本文将介绍计算机操作系统存储管理的基本原理、常见的存储管理技术以及其在实际应用中的作用。
一、存储管理的基本原理在计算机系统中,存储器扮演着重要的角色,它用于存储程序、数据和系统状态。
计算机操作系统存储管理的基本原理是将物理内存划分为多个逻辑区域,每个区域被分配给不同的程序或进程使用。
操作系统维护一个内存分配表,记录每个逻辑区域的使用情况,并根据请求进行内存分配与回收。
当进程创建时,操作系统将为其分配一定大小的内存,当进程终止时,操作系统会回收这些内存资源。
同时,存储管理还负责处理内存碎片问题,通过内存的动态分配与合并来最大化利用内存资源。
二、常见的存储管理技术1. 基于固定分区的存储管理技术基于固定分区的存储管理技术是最早的一种存储管理方法。
它将物理内存划分为若干固定大小的分区,每个分区只能分配给一个进程使用。
该方法简单直观,但由于分区的固定大小,会产生很多内存碎片,不利于内存的高效利用。
2. 基于可变分区的存储管理技术为了解决内存碎片问题,出现了基于可变分区的存储管理技术。
这种技术允许每个进程动态地申请和释放内存空间,分区的大小可以根据进程的需要进行调整。
它相对于固定分区的方法更加灵活,能够提高内存利用率,但也存在内存碎片问题。
3. 页式存储管理技术页式存储管理技术将物理内存和逻辑内存划分为固定大小的页块,进程的地址空间也被划分为相同大小的页。
通过将逻辑地址转换为物理地址,实现了逻辑内存与物理内存的映射。
该技术可以很好地解决内存碎片问题,并且方便创建和销毁进程,但需要额外的地址转换开销。
4. 段式存储管理技术段式存储管理技术将进程的逻辑地址空间划分为若干段,每个段具有不同的长度和属性。
存储管理的基本原理

存储管理的基本原理存储管理是计算机系统中的一个重要子系统,它负责管理计算机的内存资源,并为进程提供必要的内存空间和访问权限。
存储管理的目标是提供高效的内存分配、保护和调度策略,以满足多个进程同时运行的需求,并确保系统的稳定性和可靠性。
下面将介绍存储管理的基本原理。
1.内存的分配和回收内存的分配是指进程申请内存资源的过程。
在计算机系统中,内存被分为不同的分区,如操作系统区、用户区等。
当进程需要内存空间时,存储管理会为其分配一块合适的内存区域。
常见的内存分配算法有首次适应算法、最佳适应算法和最坏适应算法。
首次适应算法是从低地址开始查找空闲的内存分区,找到第一个满足要求的即可。
最佳适应算法则是在所有空闲区中找到最合适的分区。
最坏适应算法是找到最大的空闲区。
内存回收是指释放被进程占用的内存空间,将其标记为空闲状态,以便再次被分配给其他进程使用。
2.内存保护内存保护是指对内存资源进行保护,防止进程非法访问或修改其他进程的数据。
计算机系统通过在每个进程的内存地址空间中分配不同的访问权限位,如读、写、执行等权限。
同时也会为操作系统分配专用的内存区域,以保护操作系统的关键数据和代码。
此外,存储管理还负责分配和维护页表,将虚拟地址映射到物理地址,通过页表进行地址转换和权限检查。
3.内存调度和置换当计算机内存资源有限时,存储管理需要根据一定的策略来选择进程的执行顺序,以最大程度地利用内存资源。
内存调度可以根据进程的优先级、内存使用情况等因素来确定进程的执行顺序。
内存置换是指当内存中没有空闲区域时,存储管理需要将一部分内存中的数据和指令置换到磁盘上,以腾出空间给新的进程使用。
常用的内存置换算法有最佳置换算法、先进先出算法和最近使用算法等。
4.虚拟内存管理虚拟内存是指计算机系统为每个进程提供的虚拟的地址空间,它将物理内存和磁盘空间结合起来,形成一个逻辑上连续的地址空间。
虚拟内存管理允许进程访问超过物理内存大小的数据,并将一部分数据存储在磁盘上,只有在需要时才调入内存。
页式存储管理的基本原理

页式存储管理的基本原理页式存储管理是一种常见的内存管理方式,其基本原理包括页面分割和页面置换。
页面分割是指将进程的虚拟内存空间划分为固定大小的页,通常为4KB或者8KB。
每个页都有一个唯一的页号,用来标识该页在虚拟内存空间中的位置。
进程的虚拟内存被分为一系列的页,形成一个页表,用来记录页与物理内存的映射关系。
页面置换是指根据一定的算法,将物理内存中的页面与虚拟内存中的页面进行置换。
当一个进程需要访问一个虚拟内存页面时,首先检查这个页面是否已经在物理内存中。
如果在,则直接进行访问。
如果不在,则需要进行页面置换,将物理内存中的某个页面置换出来,以便给新的页面腾出空间。
页式存储管理的基本原理是为了解决计算机系统中内存有限的问题。
由于物理内存的容量通常远小于进程的虚拟内存空间,因此无法将进程的全部虚拟内存空间都加载到内存中。
页式存储管理将进程的虚拟内存空间划分为页,并根据需要将页逐个加载到物理内存中。
页式存储管理的基本思想是将进程的虚拟内存空间分成一个个固定大小的页,并且将这些页映射到物理内存上的一块块固定大小的页框中。
通过这种映射关系,可以实现进程在虚拟内存和物理内存之间的无缝切换,使得进程能够正常运行。
当进程需要访问虚拟内存的某个页面时,首先根据页号在页表中找到相应的页表项,该项记录了该页所在的物理内存页框的地址。
如果该页已经在物理内存中,则直接进行访问。
如果不在物理内存中,则需要进行页面置换。
页面置换算法是页式存储管理中的核心部分,其目的是从物理内存中选择一个页面进行置换,以给新的页面腾出空间。
常见的页面置换算法有最先进入先出(FIFO)、最少使用(LRU)、最近最久未使用(LRU)等。
总体来说,页式存储管理是一种以页面为单位进行内存管理的方式,通过页面分割和页面置换实现进程的虚拟内存与物理内存之间的映射关系。
通过这种映射关系,可以实现计算机系统中内存资源的有效利用,提高系统的性能和可靠性。
分段式存储管理基本原理(一)

分段式存储管理基本原理(一)分段式存储管理基本什么是分段式存储管理分段式存储管理是一种计算机内存管理方式,它将内存按照程序的逻辑结构分成若干段,每段可以不连续地放置在内存中。
这种管理方式能够更好地满足不同程序的内存需求,提高内存利用率和程序的运行效率。
分段式存储管理的基本原理分段•将程序按照逻辑结构划分为若干段•每段对应一个逻辑上独立的模块或功能•段的长度可变,根据程序需求进行动态分配和释放段表•维护一个段表,用于记录每个段的起始地址和长度•段表中的每个表项对应一个段,包含段的基址和长度信息•CPU通过段表来访问内存中的各个段段选择子•每个程序或进程拥有一个段选择子•段选择子用于指定程序要访问的段的索引号•CPU根据段选择子从段表中获取段的基址和长度信息地址转换•程序通过逻辑地址来访问内存,它由段选择子和段内偏移量组成•CPU根据段选择子获取段的基址•将段的基址与段内偏移量相加,得到物理地址•物理地址用于读取或写入实际的存储单元动态分配•分段式存储管理支持动态分配和释放内存•程序可以向系统请求申请一段新的内存空间•系统根据空闲内存块的大小和位置,为程序分配合适的内存段分段式存储管理的优缺点优点•更好地满足不同程序的内存需求,提高内存利用率•支持动态分配和释放内存,灵活性更好•可以减少内存碎片的产生,减少内存回收的频率缺点•需要维护段表和段选择子,增加了系统开销•地址转换过程相对复杂,增加了访问内存的延迟•容易出现外部碎片,影响分配效率总结分段式存储管理是一种灵活的内存管理方式,能够更好地满足不同程序的内存需求。
它通过分段、段表、段选择子以及地址转换等机制,实现了程序对内存的访问和管理。
尽管存在一些缺点,但分段式存储管理仍然广泛应用于现代的操作系统中,为程序的运行提供了有力支持。
分段式存储管理基本原理

分段式存储管理基本原理分段式存储管理基本什么是分段式存储管理?分段式存储管理是一种计算机存储管理方法,用于将程序和数据分割成逻辑上相互独立的若干段,并分别存放在内存中不同的区域。
这种方法能够有效提高内存利用率,并简化程序的管理和维护。
分段式存储管理的基本原理1.段的定义:在分段式存储管理中,段是指一个独立的程序或数据块,拥有一组相关联的逻辑地址空间。
每个段都有一个起始地址和长度,并且可以动态分配和释放。
2.段表:为了实现分段式存储管理,操作系统维护一个段表,用于记录每个段的起始地址和长度等信息。
段表由一系列段描述符组成,每个段描述符包括段的起始地址、长度以及其他一些控制信息。
3.段的逻辑地址:在分段式存储管理中,程序和数据的逻辑地址由两个部分组成,即段号和段内偏移量。
段号用于唯一标识一个段,段内偏移量则表示从段的起始地址开始的偏移量。
4.地址转换:当一个程序引用某个逻辑地址时,操作系统需要将逻辑地址转换为物理地址,以实现实际的访问。
这个转换过程涉及到查找段表、计算物理地址等操作。
分段式存储管理的优势和不足优势: - 动态分配:分段式存储管理可以动态地分配和释放段,灵活性更高,能够更好地适应不同程序的需求。
- 内存利用率高:通过将程序和数据分割成若干段,并根据需要加载到内存中,可以更有效地利用内存空间,避免了内存碎片的问题。
不足: - 外部碎片:由于段的大小不一,分段式存储管理容易导致外部碎片的问题。
当多次分配和释放段后,内存中可能会出现一些较小的空闲区域,导致内存浪费。
- 内部碎片:由于每个段都有固定的长度,如果段内的数据不足以充满整个段,就会导致内部碎片的问题。
分段式存储管理的应用场景•多任务操作系统:分段式存储管理可以实现多个程序的并发执行,通过将不同的程序和数据分割成不同的段,并分别加载到内存中,实现对多个程序的管理和调度。
•虚拟内存:分段式存储管理是虚拟内存的基础,通过将程序和数据分割成不同的段,并按需加载到内存中,可以实现对大型程序的有效管理和执行。
操作系统原理第5章 存储管理

• ⑶最佳适应算法
• 最佳适应算法的空闲链是按空闲区从小到大顺序排 列。为进程选择分区时总是寻找其大小最接近进程 所要求的存储区域。所谓“最佳”是指每次为进程 分配内存时,总是把能满足要求、又是最小的空闲 分区分配给进程,避免“大材小用”。
• 因为每次分配后所切割下来的剩余部分总是最小的, 这样将加速碎片的形成。
• ①如果被回收空闲分区没有空闲伙伴分区,那么保留该分区为一 个独立的空闲分区,否则执行②;
• ②合并回收分区及其伙伴分区,从而得到一个尺寸(2I+1)更大的 回收空闲分区,转移到①;
一个伙伴系统内存分配与回收的例子
• 伙伴系统克服了固定分区和动态分区存储管理技术的缺陷。但是伙伴 系统存在一个问题,即内存空间需要不断地进行分裂和合并,频繁的 伙伴分区合并操作会浪费很多时间。
• ③内存分配原则,以页帧为单位来分配内存,将进程若干个逻辑上连续的 页面装入若干个离散的页帧中,由页表提供进程的页号到存储空间帧号的 映射。
5.2.4伙伴系统
• 其实现原理如下: • 一个伙伴系统内存的用户可用空间为2U。进程申请存储空间时,
系统总是为其分配大小为2I的一个空闲分区。其中S≤I≤U,2S是系 统允许的最小分区尺寸。在实际操作系统中,最小分区尺寸一般 为212。 • 如果进程申请的存储空间大小为K,且2I-1<K≤2I,则将整个2I大小的 分区分配给该进程;否则,该分区被分割成两个大小相等的伙伴 分区,大小为2I-1;再判断K是否满足条件:2I-2<K≤2I-1,若满足条件, 则将两个伙伴中的任何一个分配给该进程。否则,将其中一个伙 伴又分成两个大小相等的伙伴分区;此过程一直继续进行,直到 产生的分区满足条件I-J≥S并2I-J-1<K≤2I-J,将2I-J大小的分区分配给该 进程;当I-J-1<S时,系统不再分割成两个大小相等的伙伴分区,将 2S大小的分区分配给该进程。 • 当进程执行完毕,释放一个尺寸为2I的分区时,系统用下面的算法 回收该分区。
存储管理

存储管理主要是指对内存空间的管理(外存管理见文件 系统)。内存空间一般分为两部分:系统区和用户区。 系统区存放系统程序和系统数据等;用户区存放用户 的程序和数据等。存储管理主要是对内存中用户区进 行管理。
存储管理功能 内存资源管理 存储管理方式
1 存储管理功能
存储空间的分配和回收
静态地址映射:程序装入内存时进行地址转换; 动态地址映射:程序执行过程中进行地址转换, 需要硬件的支持。
2 内存资源管理
2.1 内存分区
分区时刻
静态分区:系统初始化时分; 动态分区:申请时分。 等长分区:2i 异长分区:依程序、程序单位、对象大小。 静态+等长(页式、段页式) 动态+异长(段式、可变分区方式)
X(段号1) e: 调用y段f
80k-1 D(段号3)
0 a: … 20k-1 段内地址 (二维地址)
逻辑地址=
段号
3. 对应关系
main
... 100k: 40k
...
200k:
x
60k
... 300k: 320k:
y
20k 80k ... 内存空间
d
进程空间
4. 所需表目
(1) 段表:每进程一个
b: l b 段号 ... 段首址 段长 … b’ … … l’ …
物理地址
b’+d
s
... ... b l ... PCB s d 逻辑地址 若查不到
+
段号 .. . s .. .
段长 段首址 … ... l’ b’ … ...
cp
b: l cp b + 段号 ... 段首址 段长 … b’ … ... l’ ...
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 存储管理的基本原理4.1.1 内存管理方法内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。
下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。
1.连续分配存储管理方式连续分配是指为一个用户程序分配连续的内存空间。
连续分配有单一连续存储管理和分区式储管理两种方式。
(1)单一连续存储管理在这种管理方式中,内存被分为两个区域:系统区和用户区。
应用程序装入到用户区,可使用用户区全部空间。
其特点是,最简单,适用于单用户、单任务的操作系统。
CP/M和DOS 2.0以下就是采用此种方式。
这种方式的最大优点就是易于管理。
但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。
(2)分区式存储管理为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。
分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。
分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。
分区式存储管理引人了两个新的问题:内碎片和外碎片。
前者是占用分区内未被利用的空间,后者是占用分区之间难以利用的空闲分区(通常是小空闲分区)。
为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。
表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。
分区式存储管理常采用的一项技术就是内存紧缩(compaction):将各个占用分区向内存一端移动,然后将各个空闲分区合并成为一个空闲分区。
这种技术在提供了某种程度上的灵活性的同时,也存在着一些弊端,例如:对占用分区进行内存数据搬移占用CPU~t寸间;如果对占用分区中的程序进行“浮动”,则其重定位需要硬件支持。
1)固定分区(nxedpartitioning)。
固定式分区的特点是把内存划分为若干个固定大小的连续分区。
分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。
分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。
根据程序的大小,分配当前空闲的、适当大小的分区。
这种技术的优点在于,易于实现,开销小。
缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。
2)动态分区(dynamic partitioning)。
动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。
与固定分区相比较其优点是:没有内碎片。
但它却引入了另一种碎片——外碎片。
动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。
若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。
分区分配的先后次序通常是从内存低端到高端。
动态分区的分区释放过程中有一个要注意的问题是,将相邻的空闲分区合并成一个大的空闲分区。
下面列出了几种常用的分区分配算法:首先适配法(nrst-fit):按分区在内存的先后次序从头查找,找到符合要求的第一个分区进行分配。
该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。
但随着低端分区不断划分会产生较多小分区,每次分配时查找时间开销便会增大。
下次适配法(next-fit):按分区在内存的先后次序,从上次分配的分区起查找(到最后{区时再从头开始},找到符合要求的第一个分区进行分配。
该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大空闲分区不易保留。
最佳适配法(best-fit):按分区在内存的先后次序从头查找,找到其大小与要求相差最小的空闲分区进行分配。
从个别来看,外碎片较小;但从整体来看,会形成较多外碎片优点是较大的空闲分区可以被保留。
最坏适配法(worst- fit):按分区在内存的先后次序从头查找,找到最大的空闲分区进行分配。
基本不留下小空闲分区,不易形成外碎片。
但由于较大的空闲分区不被保留,当对内存需求较大的进程需要运行时,其要求不易被满足。
2.覆盖和交换技术引入覆盖(overlay)技术的目标是在较小的可用内存中运行较大的程序。
这种技术常用于多道程序系统之中,与分区式存储管理配合使用。
覆盖技术的原理很简单,一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。
将程序必要部分(常用功能)的代码和数据常驻内存;可选部分(不常用功能)平时存放在外存(覆盖文件)中,在需要时才装入内存。
不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。
覆盖技术的缺点是编程时必须划分程序模块和确定程序模块之间的覆盖关系,增加编程复杂度;从外存装入覆盖文件,以时间延长换取空间节省。
覆盖的实现方式有两种:以函数库方式实现或操作系统支持。
交换(swapping)技术在多个程序并发执行时,可以将暂时不能执行的程序送到外存中,从而获得空闲内存空间来装入新程序,或读人保存在外存中而处于就绪状态的程序。
交换单位为整个进程的地址空间。
交换技术常用于多道程序系统或小型分时系统中,与分区式存储管理配合使用又称作“对换”或“滚进/滚出”(roll-in/roll-out)。
其优点之一是增加并发运行的程序数目,并给用户提供适当的响应时间;与覆盖技术相比交换技术另一个显著的优点是不影响程序结构。
交换技术本身也存在着不足,例如:对换人和换出的控制增加处理器开销;程序整个地址空间都进行对换,没有考虑执行过程中地址访问的统计特性。
3.页式和段式存储管理在前面的几种存储管理方法中,为进程分配的空间是连续的,使用的地址都是物理地址。
如果允许将一个进程分散到许多不连续的空间,就可以避免内存紧缩,减少碎片。
基于这一思想,通过引入进程的逻辑地址,把进程地址空间与实际存储空间分离,增加存储管理的灵活性。
地址空间和存储空间两个基本概念的定义如下:地址空间:将源程序经过编译后得到的目标程序,存在于它所限定的地址范围内,这个范围称为地址空间。
地址空间是逻辑地址的集合。
存储空间:指主存中一系列存储信息的物理单元的集合,这些单元的编号称为物理地址存储空间是物理地址的集合。
根据分配时所采用的基本单位不同,可将离散分配的管理方式分为以下三种段式存储管理和段页式存储管理。
其中段页式存储管理是前两种结合的产物。
(1)页式存储管理1)基本原理。
将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(pageframe)。
程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。
该方法需要CPU的硬件支持,来实现逻辑地址和物理地址之间的映射。
在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内地址,如图4-2所示。
这种管理方式的优点是,没有外碎片,每个内碎片不超过页大比前面所讨论的几种管理方式的最大进步是,一个程序不必连续存放。
这样就便于改变程序占用空间的大小(主要指随着程序运行,动态生成的数据增多,所要求的地址空间相应增长)。
缺点是仍旧要求程序全部装入内存,没有足够的内存,程序就不能执行。
2)页式管理的数据结构。
在页式系统中进程建立时,操作系统为进程中所有的页分配页框。
当进程撤销时收回所有分配给它的页框。
在程序的运行期间,如果允许进程动态地申请空间,操作系统还要为进程申请的空间分配物理页框。
操作系统为了完成这些功能,必须记录系统内存中实际的页框使用情况。
操作系统还要在进程切换时,正确地切换两个不同的进程地址空间到物理内存空间的映射。
这就要求操作系统要记录每个进程页表的相关信息。
为了完成上述的功能,—个页式系统中,一般要采用如下的数据结构。
进程页表:完成逻辑页号(本进程的地址空间)到物理页面号(实际内存空间)的映射。
每个进程有一个页表,描述该进程占用的物理页面及逻辑排列顺序。
物理页面表:整个系统有一个物理页面表,描述物理内存空间的分配使用状况,其数据结构可采用位示图和空闲页链表。
请求表:整个系统有一个请求表,描述系统内各个进程页表的位置和大小,用于地址转换也可以结合到各进程的PCB(进程控制块)里。
3)页式管理地址变换在页式系统中,指令所给出的地址分为两部分:逻辑页号和页内地址。
CPU 中的内存管理单元(MMU)按逻辑页号通过查进程页表得到物理页框号,将物理页框号与页内地址相加形成物理地址(见图4-3)。
上述过程通常由处理器的硬件直接完成,不需要软件参与。
通常,操作系统只需在进程切换时,把进程页表的首地址装入处理器特定的寄存器中即可。
一般来说,页表存储在主存之中。
这样处理器每访问一个在内存中的操作数,就要访问两次内存。
第一次用来查找页表将操作数的逻辑地址变换为物理地址;第二次完成真正的读写操作。
这样做时间上耗费严重。
为缩短查找时间,可以将页表从内存装入CPU内部的关联存储器(例如,快表)中,实现按内容查找。
此时的地址变换过程是:在CPU给出有效地址后,由地址变换机构自动将页号送人快表,并将此页号与快表中的所有页号进行比较,而且这种比较是同时进行的。
若其中有与此相匹配的页号,表示要访问的页的页表项在快表中。
于是可直接读出该页所对应的物理页号,这样就无需访问内存中的页表。
由于关联存储器的访问速度比内存的访问速度快得多。
(2)段式存储管理1)基本原理。
在段式存储管理中,将程序的地址空间划分为若干个段(segment),这样每个进程有一个二维的地址空间。
在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。
而在段式存储管理系统中,则为每个段分配一个连续的分区,而进程中的各个段可以不连续地存放在内存的不同分区中。
程序加载时,操作系统为所有段分配其所需内存,这些段不必连续,物理内存的管理采用动态分区的管理方法。
在为某个段分配物理内存时,可以采用首先适配法、下次适配法、最佳适配法等方法。
在回收某个段所占用的空间时,要注意将收回的空间与其相邻的空间合并。
段式存储管理也需要硬件支持,实现逻辑地址到物理地址的映射。
程序通过分段划分为多个模块,如代码段、数据段、共享段。
这样做的优点是:可以分别编写和编译源程序的一个文件,并且可以针对不同类型的段采取不同的保护,也可以按段为单位来进行共享。
总的来说,段式存储管理的优点是:没有内碎片,外碎片可以通过内存紧缩来消除;便于实现内存共享。
缺点与页式存储管理的缺点相同,进程必须全部装入内存。
2)段式管理的数据结构。
为了实现段式管理,操作系统需要如下的数据结构来实现进程的地址空间到物理内存空间的映射,并跟踪物理内存的使用情况,以便在装入新的段的时候,合理地分配内存空间。