第十一讲存储器管理之连续分配方式

合集下载

CH5-1连续分配存储管理

CH5-1连续分配存储管理

动态运行时装入方式 • 将装入模块装入内存后 , 并不立即进行 将装入模块装入内存后, 地址转换, 地址转换 , 而是到程序真正要执行时才 进行地址转换, 因此装入内存后, 进行地址转换 , 因此装入内存后 , 装入 模块中的地址依然是相对地址; 模块中的地址依然是相对地址; 方便存储管理中的“对换” 方便存储管理中的 “ 对换 ” , 以利于提 高系统性能
动态分区分配算法 1)首次适应分配算法 2)循环首次适应算法 3)最优适应分配算法
首次适应分配算法
• 空闲分区按地址递增的次序排列; 空闲分区按地址递增的次序排列; 地址递增的次序排列 在进行内存分配时, 在进行内存分配时 ,从空闲分区表 或空闲分区链)首开始顺序查找, ( 或空闲分区链) 首开始顺序查找, 直到找到一个能满足其大小要求的 空闲分区; 空闲分区; 按照分区分配请求的大小, 按照分区分配请求的大小,从该分 区中划出一块内存空间分配给请求 者,余下的仍留在空闲分区表或空 闲分区链中; 闲分区链中;
例如:编制的程序编译完后,地址为 0000~2020H 0000~2020H,如果分给它的内存空间是 10000H开始的一段内存空间, 从10000H开始的一段内存空间,那么在装 入 时 , 该 目 标 程 序 的 地 址 就 从 10000+0000H 10000+2020H 10000+0000H ~ 10000+2020H 如有一条语句: 2000H 如有一条语句:MOV A,2000H,则将转 变成: 12000H 变成:MOV A,12000H
固定分区式分配方式的内存分配
分区 大 起始 状态 号 小 地址 1 15 30 已分配 2 3 4 …
将这些分区根据大小 将这些分区 根据大小 进行排队, 进行排队 , 并为之建立 一张分区使用表 分区使用表; 一张分区使用表;

连续分配存储管理方式

连续分配存储管理方式
优点:实现简单
7
固定分区分配示例
某系统的内存容量为256K,操作系统占用低地址的20K,其 余空间划分成4个固定大小的分区。如下图:
8
固定分区分配
例:在某系统中,采用固定分区分配管理方式,内存分区(单位字节) 情况如图所示,现有大小为1K、9K、33K、121K的多个作业要求进入内 存,试画出它们进入内存后的空间分配情况,并说明主存浪费多大?
适用于控制多个相同对象的场合 缺乏灵活性,小程序浪费空间,大程序无法装入 2. 分区大小不等 为了解决灵活性问题,将内存分为多个大小不等
的分区:小分区(较多),中等分区(适量),大分 区(少量)
4
固定分区分配
每个用户作业占用一个连续分区,作业的程序和数据一旦装 入分区后就不能再移动,通常采用静态地址重定位。
收。在可变式分区中,应该检查回收区与内存中前后空 闲区是否相邻,若相邻,则应进行合并,形成一个较大 的空闲区,并对相应的链表指针进行修改;若不相邻, 应将空闲区插入到空闲区链表的适当位置。
回收时的几种情况:
(1)上邻空闲区:合并,改大小 (2)下邻空闲区:合并,改大小、首地址。 (3)上、下邻空闲区:合并,改大小,取消下邻空闲区
5
固定分区分配
分区号 1 2 3 4
分区说明表示例
大小(KB) 始址
8
20
32
28
64
60
132
124
状态 已分配 已分配 已分配 未分配
6
固定分区分配
缺点: 分区数量是固定的,每个分区只能装入一道作业, 限制了系统能容纳的作业数。 分区大小是固定的,每个分区只能装入一道作业, 剩余空间无法再利用,造成浪费。
4.3 连续分配方式

连续存储分配页式存储管理.ppt

连续存储分配页式存储管理.ppt
第十一讲 连续存储分配、页式存储管 理
目的与要求:了解连续存储分配,掌握页式 存储管理。 重点与难点:连续可变存储管理;页式存储 管理。 作业:5,6,7,11
第五章 存储管理
研究作业或进程在主存的存放问题(以放的 方法为线索):
• 放(placement) 连续、非连续 • 取(fetch) • 替换(replacement)
5. 否则将k分成k1、k2,其中k1分给用户 size(k1)=size(v), F = F + {k2}
回收: 当作业结束时,收回作业所占空间,
将此块链入空闲队列。
若空闲队列中原来有与此块的相邻块, 则把这些块合并成一个大连续块。
二、可用空间管理
除用队列表示可用空闲块外,也可以用 数组登记可用空闲块,数组项=用户空间 总量/基本分配单位。
等效访问时间:设访存时间为750ns,搜索 联想存储器的时间为50ns,命中率为80%, 则(这里假设先查联想存储器再查页表): 80% *(50+750)+ 20% *(50+ 750+750)= 950ns
在进程被调度占用cpu时,将进程页表始址 装入页表始地址寄存器,同时作废掉联想存 储器中的原内容,用新的页表项替换。
CPU 地址A < True
+
F
主存
程序性异常
二、作业存储调度
OS
多 ... 3k 4k 1k 2k
4k
队 列
...
5k 6k
6k
法 ... 7k 10k 11k 8k
12k
OS

4k
队 列 ... 7k 3k 4k 5k
6k

12k
三、存储碎片

操作系统-连续分配存储管理方式

操作系统-连续分配存储管理方式
5
第一章 操作系统引论
图4-6 空闲分区表
6
第一章 操作系统引论
图4-7 空闲链结构
7
第一章 操作系统引论
2. 动态分区分配算法 为把一个新作业装入内存,须按照一定的分配算法,从 空闲分区表或空闲分区链中选出一分区分配给该作业。由于 内存分配算法对系统性能有很大的影响,故人们对它进行了 较为广泛而深入的研究,于是产生了许多动态分区分配算法。
16
第一章 操作系统引论
3. 最佳适应(best fit,BF)算法 所谓“最佳”是指,每次为作业分配内存时,总是把能 满足要求、又是最小的空闲分区分配给作业,避免“大材小 用”。为了加速寻找,该算法要求将所有的空闲分区按其容 量以从小到大的顺序形成一空闲分区链。
17
第一章 操作系统引论
4. 最坏适应(worst fit,WF)算法 由于最坏适应分配算法选择空闲分区的策略正好与最佳 适应算法相反:它在扫描整个空闲分区表或链表时,总是挑 选一个最大的空闲区,从中分割一部分存储空间给作业使用, 以至于存储器中缺乏大的空闲分区,故把它称为是最坏适应 算法。
15
第一章 操作系统引论
2. 循环首次适应(next fit,NF)算法 为避免低址部分留下许多很小的空闲分区,以及减少查 找可用空闲分区的开销,循环首次适应算法在为进程分配内 存空间时,不再是每次都从链首开始查找,而是从上次找到 的空闲分区的下一个空闲分区开始查找,直至找到一个能满 足要求的空闲分区,从中划出一块与请求大小相等的4.3.2 固定分区分配 1. 划分分区的方法 可用下述两种方法将内存的用户空间划分为若干个固定
大小的分区: (1) 分区大小相等(指所有的内存分区大小相等)。 (2) 分区大小不等。
2

第十一讲存储器管理之连续分配方式

第十一讲存储器管理之连续分配方式

第十一讲存储器管理之连续分配方式连续分配是指将存储器中的空间按照一定的方式连续划分给进程使用的一种存储器管理方式。

常见的连续分配方式有三种:单一连续分配方式、固定分区分配方式和动态分区分配方式。

单一连续分配方式是最简单的分配方式,每个进程只有一个连续的存储区域。

操作系统将整个存储器分成两部分,一部分为操作系统占用,另一部分为用户程序占用。

优点是实现简单,缺点是无法有效利用存储器空间和不能同时运行多个程序。

2.固定分区分配方式固定分区分配方式是将存储器划分成若干个固定大小的区域,每个区域对应一个作业或进程。

每个进程的大小必须小于等于所分配的存储区域大小。

操作系统为每个进程分配存储空间时,优先从大小与所需存储空间最接近的空闲分区开始分配。

优点是管理简单,缺点是会导致存储空间的浪费和外部碎片的产生。

3.动态分区分配方式动态分区分配方式是将存储器分为多个大小不等的存储块,每个进程可以根据需要分配不同大小的存储块。

当新的进程需要存储空间时,操作系统从存储器的起始地址开始查找,找到第一个可用空闲块,并将其分配给进程。

优点是存储空间利用率高,可以同时运行多个进程,但缺点是会导致内部碎片的产生。

对于动态分区分配方式,还可以采用三种具体的分区算法:a. 首次适应算法(First Fit):从前向后遍历所有空闲分区,找到第一个大小大于或等于所需存储空间的空闲分区进行分配。

优点是速度快,但容易产生较多的碎片。

b. 循环首次适应算法(Next Fit):与首次适应算法类似,但从上一次分配的位置开始查找,减少了空闲分区的时间。

可以避免每次都从头开始,但仍会产生较多的碎片。

c. 最佳适应算法(Best Fit):从所有空闲分区中找到最小且大于所需存储空间的空闲分区进行分配。

优点是最大限度地避免碎片,但速度相对较慢。

综上所述,连续分配方式是一种常见的存储器管理方式。

根据应用场景和需求不同,可以选择合适的连续分配方式来管理存储器,以实现存储空间的高效利用和进程的有效管理。

内存管理之一段式与页式管理

内存管理之一段式与页式管理

内存管理之⼀段式与页式管理内存管理⽅法内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。

下⾯主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。

1.连续分配存储管理⽅式连续分配是指为⼀个⽤户程序分配连续的内存空间。

连续分配有单⼀连续存储管理和分区式储管理两种⽅式。

(1)单⼀连续存储管理在这种管理⽅式中,内存被分为两个区域:系统区和⽤户区。

应⽤程序装⼊到⽤户区,可使⽤⽤户区全部空间。

其特点是,最简单,适⽤于单⽤户、单任务的操作系统。

CP/M 和 DOS 2.0以下就是采⽤此种⽅式。

这种⽅式的最⼤优点就是易于管理。

但也存在着⼀些问题和不⾜之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装⼊,使得很少使⽤的程序部分也占⽤—定数量的内存。

(2)分区式存储管理为了⽀持多道程序系统和分时系统,⽀持多个程序并发执⾏,引⼊了分区式存储管理。

分区式存储管理是把内存分为⼀些⼤⼩相等或不等的分区,操作系统占⽤其中⼀个分区,其余的分区由应⽤程序使⽤,每个应⽤程序占⽤⼀个或⼏个分区。

分区式存储管理虽然可以⽀持并发,但难以进⾏内存分区的共享。

分区式存储管理引⼈了两个新的问题:内碎⽚和外碎⽚。

前者是占⽤分区内未被利⽤的空间,后者是占⽤分区之间难以利⽤的空闲分区(通常是⼩空闲分区)。

为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。

表中各表项⼀般包括每个分区的起始地址、⼤⼩及状态(是否已分配)。

分区式存储管理常采⽤的⼀项技术就是内存紧缩(compaction):将各个占⽤分区向内存⼀端移动,然后将各个空闲分区合并成为⼀个空闲分区。

这种技术在提供了某种程度上的灵活性的同时,也存在着⼀些弊端,例如:对占⽤分区进⾏内存数据搬移占⽤CPU~t⼨间;如果对占⽤分区中的程序进⾏“浮动”,则其重定位需要硬件⽀持。

1)固定分区(nxedpartitioning)。

固定式分区的特点是把内存划分为若⼲个固定⼤⼩的连续分区。

连续分配存储管理方式

连续分配存储管理方式

连续分配存储管理方式什么是连续分配存储管理方式连续分配存储管理方式指的是将内存空间划分为一系列连续的块,并按照一定的规则将这些块分配给进程使用。

这种存储管理方式广泛应用于操作系统中的进程管理和文件系统管理等领域。

连续分配存储管理的常见算法1. 首次适应算法(First Fit)首次适应算法是按照内存空间的地址顺序,从低地址到高地址依次查找可用的空闲块,并将进程分配到第一个满足大小要求的空闲块中。

该算法简单直接,但容易产生碎片。

2. 最佳适应算法(Best Fit)最佳适应算法是在所有可用的空闲块中选择最小且能满足进程大小要求的空闲块进行分配。

该算法能够充分利用内存空间,但是搜索过程较为复杂,效率较低。

3. 最坏适应算法(Worst Fit)最坏适应算法是在所有可用的空闲块中选择最大的空闲块进行分配,这样可以最大程度地保留大块空闲空间。

但是这种策略可能导致产生更多的碎片。

4. 快速适应算法(Next Fit)快速适应算法是首次适应算法的改进版本,在分配空闲块时,从上次分配的位置开始搜索。

这样可以避免每次都从头开始搜索,提高了搜索的效率。

连续分配存储管理的优点和缺点优点1.实现简单:连续分配存储管理算法相对而言比较简单,易于实现和理解。

2.内存利用率高:连续分配存储管理可以充分利用内存空间,减少空闲空间的浪费。

3.顺序访问性好:由于连续分配存储管理方式将内存空间划分为连续的块,所以对于顺序访问的进程来说,访问效率较高。

缺点1.碎片问题:连续分配存储管理容易产生内部碎片和外部碎片。

内部碎片是指分配给进程的内存块比进程所需的内存块大,造成内存空间浪费。

外部碎片是指内存空闲块的分布不连续,无法满足大块连续内存需求,导致内存的浪费。

2.分配效率低:由于需要搜索可用的空闲块,连续分配存储管理的分配效率相对较低。

3.控制粒度难以调整:连续分配存储管理方式中,分配块的大小通常是固定的,难以根据进程的需要进行灵活调整。

第十一讲存储器管理之连续分配方式

第十一讲存储器管理之连续分配方式

第十一讲存储器管理之连续分配方式所谓连续分配方式:是指为一个用户程序分配一个连续的内存空间。

又可把连续分配方式分为:单一连续分配,固定分区分配,动态分区分配,动态重定位分区分配,四种方式。

1 单一连续分配(单独分区分配)最简单的一种存储管理方式,但只能用于单用户、单任务的OS中。

概念:单一连续分配就是整个主存区域的用户空间均归一个用户作业使用。

存储管理方法:将内存分为系统区(内存低端,分配给OS用)和用户区(内存高端,分配给用户用)。

其中用户区是指除了系统区外的内存空间,提供给用户程序使用。

采用静态分配方式,即作业一旦进入内存,就要等待它运行结束后才能释放内存。

主要特点:管理简单,只需小量的软件和硬件支持,便于用户了解和使用。

但因内存中只装入一道作业运行,内存空间浪费大,各类资源的利用率也不高。

例子:一个容量为256KB的内存,操作系统占用32KB,剩下224KB全部分配给用户作业,如果一个作业仅需64KB,那么就有160KB的存储空间被浪费。

2 固定分区分配分区分配方式是满足多道程序设计需要的一种最简单的存储管理方法。

2.1 思想:将内存分成若干个分区(大小相等/不相等),除OS占一区外,其余的每一个分区容纳一个用户程序。

这样来实现多道并发。

2.2 分区划分方法:分区大小相等,分区大小不等。

但事先必须确定,在运行时不能改变。

即分区大小及边界在运行时不能改变。

2.3 内存分配:首先:要先建立一张分区说明表或使用表,以记录分区号、分区大小、分区的起始地址及状态(已分配或未分配)。

其次:当某个用户程序要装入内存时,由内存分配程序检索分区说明表,从表中找出一个满足要求的尚未分配的分区分配该程序,同时修改说明表中相应分区的状态;若找不到大小足够的分区,则拒绝为该程序分配内存。

第三:当程序执行完毕,释放占用的分区,管理程序将修改说明表中相应分区的状态为未分配,实现内存资源的回收。

2.4 特点主要特点:管理简单,但因作业的大小并不一定与某个分区大小相等,从而使一部分存储空间被浪费。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十一讲存储器管理之连续分配方式
所谓连续分配方式:是指为一个用户程序分配一个连续的内存空间。

又可把连续分配方式分为:单一连续分配,固定分区分配,动态分区分配,动态重定位分区分配,四种方式。

1 单一连续分配(单独分区分配)
最简单的一种存储管理方式,但只能用于单用户、单任务的OS中。

概念:单一连续分配就是整个主存区域的用户空间均归一个用户作业使用。

存储管理方法:将内存分为系统区(内存低端,分配给OS用)和用户区(内存高端,分配给用户用)。

其中用户区是指除了系统区外的内存空间,提供给用户程序使用。

采用静态分配方式,即作业一旦进入内存,就要等待它运行结束后才能释放内存。

主要特点:管理简单,只需小量的软件和硬件支持,便于用户了解和使用。

但因内存中只装入一道作业运行,内存空间浪费大,各类资源的利用率也不高。

例子:一个容量为256KB的内存,操作系统占用32KB,剩下224KB全部分配给用户作业,如果一个作业仅需64KB,那么就有160KB的存储空间被浪费。

2 固定分区分配
分区分配方式是满足多道程序设计需要的一种最简单的存储管理方法。

2.1 思想:将内存分成若干个分区(大小相等/不相等),除OS占一区外,其余的每一个分区容纳一个用户程序。

这样来实现多道并发。

2.2 分区划分方法:分区大小相等,分区大小不等。

但事先必须确定,在运行时不能改变。

即分区大小及边界在运行时不能改变。

2.3 内存分配:
首先:要先建立一张分区说明表或使用表,以记录分区号、分区大小、分区的起始地址及状态(已分配或未分配)。

其次:当某个用户程序要装入内存时,由内存分配程序检索分区说明表,从表中找出一个满足要求的尚未分配的分区分配该程序,同时修改说明表中相应分区的状态;若找不到大小足够的分区,则拒绝为该程序分配内存。

第三:当程序执行完毕,释放占用的分区,管理程序将修改说明表中相应分区的状态为未分配,实现内存资源的回收。

2.4 特点
主要特点:管理简单,但因作业的大小并不一定与某个分区大小相等,从而使一部分存储空间被浪费。

所以主存的利用率不高
3 动态分区分配
3.1 基本思想:根据进程的实际需要,动态的为其分配内存空间。

因此分区大小是动态可变的,分区的个数也是可变的。

3.2 主要特点
管理简单,只需小量的软件和硬件支持,便于用户了解和使用。

进程的大小与某个分区大小相等,从而主存的利用率有所提高。

3.3 分区分配的数据结构
为描述空闲分区合已分配的分区,引入如下数据结构。

3.3.1空闲分区表
用于记录每个空闲分区的情况。

每个空闲分区占一个表目,表目重含有分区序号,分区起始地址,分区大小等数据项。

如下图
3.3.2空闲分区链
用链头指针将系统中的空闲分区链接起来,构成空闲分区链。

每个空闲分区的起始部分存放相应的控制信息(如大小,指向下一空闲分区的指针等).
就是在分区头设置一个前向指针,分区尾部设置一个后向指针,这样把所有空闲分区连起来。

3.4分区分配算法
把一个新作业装入内存,须按照一定的分配算法,从空闲分区表或空闲分区链中选择一俄国分区分配给该作业。

有下面三种分配算法:
3.4.1首次适应算法
算法过程:
算法要求空闲分区(链)按地址递增的次序排列。

在进行内存分配时,从空闲分区表/链首开始顺序查找,直到找到第一个满足其大小要求的空闲分区为止。

然后再按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲分区表(链)中。

算法的特点
优先利用内存低地址部分的空闲分区,从而保留了高地址部分的大空闲区。

但由于低地址部分不断被划分,致使低地址端留下许多难以利用的很小的空闲分区(碎片或零头),而每次查找又都是从低地址部分开始,这无疑增加了查找可用空闲分区的开销。

3.4.2循环首次适应算法
算法过程:
由首次适应算法发展而来,每次为进程分配内存空间时,不是从链首开始,而是从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个满足要求的空闲分区。

该算法要设置一个起始查寻指针。

用于标识下一次起始查寻的空闲分区。

算法特点
使存储空间的利用更加均衡,不致使小的空闲区集中在存储区的一端,但这会导致缺乏大的空闲分区。

3.4.3最佳适应算法
算法过程:
算法要求空闲分区表/链按容量大小递增的次序排列。

在进行内存分配时,从空闲分区表/链的首开始顺序查找,直到找到第一个满足其大小要求的空闲分区为止。

按这种方式为作业分配内存,就能把既满足作业要求又与作业大小最接近的空闲分区分配给作业。

如果该空闲分区大于作业的大小,则与首次适应算法相同,将剩余空闲分区仍留在空闲分区表/链中。

算法特点
若存在与作业大小一致的空闲分区,则它必然被选中,若不存在与作业大小一致的空闲分区,则只划分比作业稍大的空闲分区,,从而保留了大的空闲分区,但空闲区一般不可能正好和它申请的内存空间大小一样,因而将其分割成两部分时,往往使剩下的空闲区非常小,从
而在存储器中留下许多难以利用的小空闲区(碎片或零头)。

3.5分区分配操作
这里所谓的操作是:分配内存合回收内存。

3.5.1分配内存操作
实际上是分区的分割。

具体过程如下:
设请求的分区大小为u.size,空闲分区的大小为m.size,若m.size-u.size size(size 是事先规定的不再切割的剩余分区的大小),说明多余部分太小,可不再切割,将整个分区分配给请求者;否则,即多余部分超过size,从该分区中按请求的大小划分出一块内存空间分配出去,余下的部分仍留在空闲分区表/链中,然后,将分配区的首址返回给调用者。

分配流程图:
3.5.2回收内存操作
基本过程:当作业执行结束时,应回收已使用完毕的分区。

系统根据回收分区的大小及首地址,在空闲分区表中检查是否有邻接的空闲分区,如有,则合成为一个大的空闲分区,然后修改有关的分区状态信息。

回收分区与已有空闲分区的相邻情况有以下四种:
1)回收分区上邻接一个空闲分区,合并后首地址为空闲分区的首地址,大小为二者之和。

2)回收分区下邻接一个空闲分区,合并后首地址为回收分区的首地址,大小为二者之和。

3)回收分区上下邻接空闲分区,合并后首地址为上空闲分区的首地址,大小为三者之和。

4)回收分区不邻接空闲分区,这时在空闲分区表中新建一表项,并填写分区大小等信息,并根据其首地址插入到空闲链的适当位置。

如下图:
4 可重定位分区分配
4.1 动态重定位的引入
在连续分配方式中,我们必须把一个系统或用户程序装入一个连续的内存空间。

但是,如果在系统中只有一些小分区并且这些分区不相邻链接,即使它们的相加之后的空间大于要装入的程序,也不可能把程序装入这些内存中。

这些小分区就叫做“零头”或“碎片”。

处理思路“紧凑”:将内存中的所有作业移动到内存的另一端,使它们全部相邻。

这样,就可以把原来分散的多个小分区拼接成一个大分区,这时就可把作业装入了。

称为“紧凑”或“拼接”。

出现问题:紧凑后,明显可以看出内存中的数据和程度的存放位置发生了变化,如果不对程序和数据的地址加以更改,则程序不能运行,因此我们需要重定位。

也就是说在每次紧凑之后需要重定位。

4.2 动态重定位的实现
引入重定位寄存器,程序在执行时,真正访问的内存地址是相对地址和重定位寄存器中的地址相加后的地址。

见课本图p111
动态重定位:地址变换过程是在程序执行期间,随着对每条指令或数据的访问时才进行的。

因此称为动态重定位。

4.3 动态重定位分区分配算法
和动态分区分配算法基本相同,只是增加了紧凑功能。

算法流程如下:
5 对换了解
多道程序环境下,会出现某些进程未执行而占据内存空间,而大量的作业在外存而不能进入内存执行。

为了充分的利用内存空间,我们引入了覆盖和对换。

覆盖是早期的操作系统中运用,有兴趣的同学了解一下。

我们主要说一下对换。

对换:将暂时不用的某个进程及数据(首先是处于阻塞状态优先级最低的,根据系统的采用算法决定)部分(或全部)从内存移到到外存(备份区或对换区,采用连续分配的动态存储管理方式)中去,让出内存空间,同时将某个需要的进程调入到内存中,让其运行。

交换到外存的进程需要时可以被再次交换回(选择换出时间最久的,也是根据系统采用的算法决定)内存中继续执行。

这种内存扩充技术就是交换技术。

6 覆盖
6.1 引入:
其目标是在较小的可用内存中运行较大的程序。

常用于多道程序系统,与分区存储管理配合使用。

6.2 原理:
一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。

–将程序的必要部分(常用功能)的代码和数据常驻内存;
–可选部分(不常用功能)在其他程序模块中实现,平时存放在外存中(覆盖文件),在需要用到时才装入到内存;
–不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。

(即不同时用的模块可共用一个分区)
覆盖示例如下:。

相关文档
最新文档