最新第7章 存储器管理
操作系统中存储器管理
03
访问。
存储器管理的目标和功能
存储器管理的目标是实现高效、安全、 可靠和灵活的存储器管理。
存储器管理的基本功能包括内存分配、 内存回收、内存保护和内存扩充等。
内存分配是指根据程序的需求为其分 配所需的内存空间。
内存回收是指将不再使用的内存空间 释放出来,以便其他程序使用。
内存保护是指通过内存访问权限的设置,防止 程序访问非法内存地址,保护用户数据和程序 的安全。
03
存储器管理技术
分段存储管理
总结词
分段存储管理是一种将程序划分为若干个逻辑段,并为每个段分配一个连续的内存空间 的存储管理方式。
详细描述
分段存储管理的主要优点是方便编写程序和使用内存,因为每个段可以独立分配和释放, 提高了内存利用率。然而,它也存在一些缺点,例如内存碎片化和难以实现内存保护。
页式存储管理
BSD操作系统的内存管理
BSD使用类似于Linux的内存管理机制,包 括伙伴系统算法、内存保护和共享等。
Solaris操作系统的内存管理
Solaris采用ZFS文件系统和zones技术进行内存管 理,提供灵活的资源隔离和分配。
macOS操作系统的内存 管理
macOS使用Mach微内核架构进行内存管理 ,通过虚拟化技术实现高效的资源管理和隔 离。
通过将内存划分为不同的区域,根据不同任务的需求分配相应的 内存空间,以提高内存利用率。
内存交换
当系统内存不足时,将部分内存中的数据暂时存放到硬盘上,以 释放出更多的内存空间供其他任务使用。
内存共享
多个进程或线程可以共享同一块内存区域,以减少内存占用和提 高数据访问效率。
内存压缩技术
数据压缩
通过压缩技术将内存中的数据压缩,以减少内存占用和提高存储效 率。
《计算机操作系统》虚拟存储管理
7.2 请求分页存储管理
7.2.1 工作原理 7.2.2 驻留集管理 7.2.3 调页策略 7.2.4 页面置换算法
7.2.1工作原理
♦ 若内存中没有可用的物理块,则还需根据页面置 换算法淘汰一些页,若淘汰的页曾做过改动,还 需将此页重写回外存,最后将缺页调入内存指定 的物理块。
开始
根据页表记录的外 存始址找到缺页
内存有可用 Y 物理块吗?
N 由页面置换算法选
择一页换出 Y
N 该页被改动 过吗? Y
将该页写回外存
启动磁盘I/O,从外 存读入缺页
►显然,一方面,内存中存在一些不用或暂时不用的程序占据了大量的内存 空间;另一方面,一些需要运行的程序因没有足够的内存空间而无法装入 内存运行。
►人们不禁考虑,“一次性”和“驻留性”在程序运行时是否是必要的?
7.1.1 引入背景
2.局部性原理
►程序在执行时,在一段时间内,CPU总是集中地访问程序中的某一个部分 而不是随机地对程序所有部分具有平均访问概率,这种现象称为局部性原 理。局部性表现在下述两个方面:
7.2.3 调页策略
►调页策略用于确定何时将进程所需的页调入内存。常用的调页策略有: ♦ 预调页策略 ● 系统预测进程接下来要访问的页,将一个或多个页提前调入内存。 ● 常用的预测原理是局部性原理,即每次调页时,将相邻的若干个页 一并调入内存。 ♦ 请求调页策略 ● 发生缺页时,再将其调入内存的方法。 ● 实现简单,增加磁盘I/O开销。
♦ 状态位:用于表示该页是否已调入内存。若没有调入内存,则产生一个 缺页中断。
第7章-存储器管理PPT课件
.
10
分区使用表例
分区号 大小 起始地址 状态
1
8KB 20KB 已பைடு நூலகம்配
2 32KB 28KB 已分配 3 32KB 60KB 未分配
4 120KB 92KB 未分配 5 300KB 212KB 已分配
区存储管理策略。现有以下作业序列:96K、20K、 200K。若用首次适应算法和最佳适应算法来处理这 些作业序列,试问哪一种算法可以满足该作业序列的
请求?
分区号 1 2 3 4 5
大小 32K 10K 5K 218K 96K
.
起始地址 100K 150K 200K 220K 530K
27
例--采用最佳适应算法分配1
申请96K,
选中5号分区,5号 分区大小与申请空 间大小一致,应从 空闲分区表中删去 该表项;
分区号 1 2 3 4 5
分区号 1 2 3 4
大小 32K 10K 5K 218K 96K
大小 32K 10K 5K 218K
起始地址 100K 150K 200K 220K 530K
起始地址 100K 150K 200K 220K
.
23
最坏适应算法
最坏适应算法要求空闲分区按容量大小递减的 次序排列。
在进行内存分配时,先检查空闲分区表(或空 闲分区链)中的第一个空闲分区,若第一个空 闲分区小于作业要求的大小,则分配失败;
否则从该空闲分区中划出与作业大小相等的一 块内存空间分配给请求者,余下的空闲分区仍 然留在空闲分区表(或空闲分区链)中。
如果该空闲分区大于作业的大小,则从该分 区中划出一块内存空间分配给请求者,将剩 余空闲区仍然留在空闲分区表(或空闲分区 链)中。
《计算机组成原理》第7章:存储系统
/webnew/
7.1 存储系统概论
所谓速度,通常用存取时间(访问时间)和存取周期 来表示。存取时间是指从启动一次存取操作到完成 该操作所经历的时间;存取周期是指对存储器进行 连续两次存取操作所需要的最小时间间隔。由于有 些存储器在一次存取操作后需要有一定的恢复时间, 所以通常存取周期大于或等于取数时间。单位容量 的价格是指每位的价格。数据传输率是指在单位时 间内可以存取的二进制信息的位数,在数值上等于 存储器总线宽度除以存取周期,所以又可称为存储 器总线带宽或频宽。除此之外,存储器件还有一个 十分重要的性能,就是它是否是挥发性的。
图7-6 2114的读/写周期波形图
/webnew/
7.2.2 静态MOS RAM芯片举例
4. 静态存储器的组织 1)位扩展
图7-7 位扩展连接方式
/webnew/
/webnew/
性 能 存储信息 破坏性读出 需要刷新 行列地址 运行速度
SRAM 触发器 否 否 同时送 快 电容 是 需要 分两次送 慢
DRAM
集成度
发热量 存储成本
低
大 高
高
小 低
表7-1 静态存储器和动态存储器性能比较
/webnew/
7.2 主 存 储 器
7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7
基本概念 静态MOS RAM芯片举例 动态MOS RAM 2164芯片 动态MOS RAM 4116芯片 动态RAM的刷新 只读存储器举例 主存储器与CPU的连接
/webnew/
/webnew/
7.2.2 静态MOS RAM芯片举例
3. 读写时序 为了使芯片正常工作,必须按所要求的时序关系 提供地址信息、数据信息和有关控制信号,2114 的读/写周期波形图如图7-6所示。 1) 读周期 2) 写周期
存储器管理-操作系统PDF课件-中国科技大学-4
jmp 150 100
jmp 2150 2100
• 说明:重定位表中列出所有修改的位置。如:重定位表的150 表示相对地址150处的内容为相对地址(即100为从0起头的相 对位置)。在装入时,要依据重定位后的起始位置(2000)修改 相对地址。
– 重定位修改:重定位表中的150->绝对地址2150(=2000+150) – 内容修改:内容100变成2100(=100+2000))。
4.2分区存储管理
单一连续区存储管理
适用于单道程序系统
• 内存分为两个连续区域:系统区,用户 区。应用程序装入到用户区,可使用用 户区全部空间。 • 最简单,适用于单道程序设计的OS。 • 优点:易于管理。 • 缺点:对要求内存空间少的程序,造成 内存浪费(空闲存储区)。
0H 中断矢量表 操作系统 7FFFH 用户程序区 界限寄存器 08000H
区 号 1 2 3 4 5 起始地址 08000H 0A000H 12000H 1A000H 3A000H 大小 8K 32K 32K 128K 512K 使用 标志 Y Y N Y N 118K 作业 大小 6K 24K 12000H 空闲分区 1A000H 作业C 3A000H 空闲分区 分区5 分区4 08000H 0A000H 作业B 分区2 分区3 作业A 分区1
• 优点:
– 可以实现分区共享 – 诸进程可以共享数据分区。
4.3 覆盖和交换
覆盖(overlay)
• 引入:其目标是在较小的可用内存中运行较大 的程序。常用于多道程序系统,与分区存储管 理配合使用。 • 基本思想:一个作业的若干程序段,或几个作 业的某些部分共享同一存储区。 • 优点:解决小主存容量与大作业之间的矛盾。 • 缺点:实现覆盖管理的系统开销较大。
《存储器管理》word版
第四章存储器管理4.1 程序的装入和链接将一个用户源程序变为一个可执行程序,通常都要经过以下几个步骤:编译:由编译程序(Compiler)将用户源代码编译成若干个目标模块(Object Module);链接:由链接程序(Linker)将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的可装入模块(Load Module)。
4.1.1 程序的装入将一个装入模块装入内存时,可以有以下两种方式:绝对地址装入方式(Absolute Loading Mode)可重定位装入方式(Relocation Loading Mode)动态运行时装入方式(Dynamic Run-time Loading)1. 绝对装入方式在编译时,如果知道程序将驻留在内存的什么位置,那么,编译程序将产生绝对地址的目标代码。
装入模块被装入内存后,由于程序中的逻辑地址与实际内存地址完全相同,故不须对程序和数据的地址进行修改。
程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。
此种程序一般有特殊用途,比如启动程序。
2.可重定位装入方式绝对装入方式只能将目标模块装入到内存中事先指定的位置。
在多道程序环境下,编译程序不可能预知所编译的目标模块应放在内存的何处,因此,绝对装入方式只适用于单道程序环境。
在多道程序环境下,所得到的目标模块的起始地址通常是从0开始的,程序中的其它地址也都是相对于起始地址计算的。
此时应采用可重定位装入方式,根据内存的当前情况,将装入模块装入到内存的适当位。
示例在用户程序的1000号单元处有一条指令LOAD 1,2500,该指令的功能是将2500单元中的整数365取至寄存器1。
静态地址重定位把在装入时对目标程序中指令和数据的修改变换过程称为重定位。
又因为地址变换通常是在装入时一次完成的,装入以后不再改变,故称为静态地址重定位。
静态地址重定位装入方式,可将装入模块装入到内存中任何允许的位置,故可用于多道程序环境;但并不允许程序运行时在内存中移动位置。
第七章:存储系统
第七章:存储系统一、选择题1、外存储器与内存储器相比,外存储器( 速度慢,容量大,成本低)。
2、EPROM是指(光擦除可编程只读存储器)。
3、没有外存储器的计算机初始引导程序可以放在(ROM ) 。
4、存储单元是指(存放一个机器字的所有存贮元集合)。
5、主存储器是计算机系统中的记忆设备,它主要用来(存放数据和程序)。
6、软磁盘、硬磁盘、磁带机、光盘属于(外存储器)设备。
7、主存贮器和CPU之间增加cache的目的是(解决CPU和主存之间的速度匹配问题)。
8、采用虚拟存贮器的主要目的是(扩大主存贮器的存贮空间,并能进行自动管理和调度)。
9、单片机或单板机要扩展8K的EPROM需要( 13)条地址线。
10、假设V1和V2是用DW定义的变量,下列指令中正确的是( A )。
A、MOV V1,20HB、MOV AL,V1C、MOV V1,V2D、MOV 2000H,V211.下列( A )指令不合法。
A、IN AX,0278HB、RCR DX,CLC、CMPSBD、RET 412.为了使MOV AX,VAR指令执行后,AX寄存器中的内容为4142H,数据定义(C )是错误的。
A、VAR DW 4142H B、VAR DW 16706C、VAR DB 42H,41HD、VAR DW,‘AB’13.在下列指令中,隐含使用AL寄存器的指令有( 4)条。
SCASB;XLAT;MOVSB;DAA;NOP;MUL BH;14.下列描述不正确的是( A )。
A.汇编语言即是机器语言B.汇编语言程序不可直接运行C.汇编语言的指令语句与机器指令一一对应D.汇编语言程序运行速度快,阅读方便,但仍属于面向机器的程序设计语言15.下列描述正确的是( B )。
A.汇编语言是由若干条指令语句构成B.汇编语言包括指令语句和伪指令语句C.指令语句和伪指令语句的格式是完全相同的D.指令语句和伪指令语句需经汇编语言翻译成机器代码后才能运行16.汇编语言程序经汇编后不能直接生成( A )。
存储器管理
运行时动态链接
目标模块的链接在程序真正执行时进行 装入模块随执行情况而变化 加快程序的装入过程,而且可节省大量的内存空间。
连续分配存储管理
单一连续分配方式 分区式分配方式
固定分区式 将内存用户区划分成若干固定大小的区域,每个区
分配失败
检索空闲区链表
否
否
空闲区总和
>u.size
紧凑形成连续空闲区
空闲区>u.size 是
动态分区方式分配
修改有关数据结构
修改有关数据结构
返回分区号 及首址
对换
解决问题:由于内存紧张而导致系统无法正常进行。 对换:
把内存中暂不能运行的进程,或暂时不用的程序和数据,换出到外存 上,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需 要的程序和数据,换入内存。
序号1 1 2
分区大小
12300KkBB
10kB
分区始址
340
60
状态 可用 可用
存储分配实现
【例1】:已知主存320k,OS占用低位32k,现有一作业序列如下: J1:40k,J2:100k,J3:80k,J2完成,J4要求60k,J5要求32k,J3完 成,J6要求112k,J1完成,J7要求30k,请用最佳适应法分配主存,画 出主存分配情况和自由主存队列。
10kb 用户程序2
12kb 用户程序3
…
紧凑后
操作系统 用户程序1 用户程序2 用户程序3
22kb
…
程序地址发 生变化
动态重定位
动态重定位:是指程序真正运行时,完成逻辑地址到物理地址的转 换,需要硬件地址变换机构的支持。 重定位寄存器:存放程序在内存中的起始地址。
作业系统之储存器管理
作业系统之储存器管理p1164.0.1 储存器管理的目的和功能储存器管理的主要目的和功能如下:1.主储存器的支配和管理:按使用者要求把适当的储存空间支配给相应的作业。
一个有效的储存支配机制,应在使用者恳求时能作出快速的响应,支配相应的储存空间;在使用者不再使用它时,应马上**,以供其他使用者使用。
为此,这个储存支配机制应具有如下功能(3个):(1)记住每个储存区域的状态:哪些是已支配的,哪些是可以用作支配的。
(2)实施支配:在系统程式或使用者提出申请时,按所需的量赐予支配;修改相应的支配记录表。
(3)接受系统或使用者释放的储存区域:并相应地修改支配记录表。
2.提高主储存器的利用率:使多道程式能动态地共享主存,最好能共享主存中的资讯。
3.“扩充”主存容量:这是藉助于供应虚拟储存器或其它自动掩盖技术来达到的。
即为使用者供应比主存的储存空间还大的地址空间,之后,使用者可以想象把他的程式或资料装入到这样的地址空间内。
4.储存爱护:确保各道使用者作业都在所支配的储存区内操作,互不干扰。
即要防止一道作业由于发生错误而损害其它作业,特殊需要防止破坏其中的系统程式。
这个问题不能用特权指令来加以解决。
而必需由硬体供应爱护功能,并由软体协作实现。
4.0.2 储存支配的三种方式所谓储存支配,主要是争辩和解决多道作业之间共享主存的储存空间问题。
前面已讲到现代计算机系统都採用多级储存体系结构。
因此,储存支配所要解决的问题是:要确定什么时候,以什么方式,或是把一个作业的全部资讯还是把作业执行时首先需要的资讯支配到主存中,并使这些问题对使用者来说儘可能是“透亮”的。
解决储存支配问题有三种方式:1.直接指定方式:程式设计师在程式设计序时,或编译程式(彙编程式)对源程式进行编译(彙编)时,所用的是实际储存地址。
例如,在多道程式环境下,应保证各作业所用的地址互不重叠。
明显,採用直接指定方式支配的前提是:储存器的可用容量(空间)已经给定或可以指定,这对单使用者计算机系统是不成问题的。
操作系统原理电子课件教案-第七章 主存管理
0 20KB 52KB 66KB 130KB
os
作业1 作业2
作业3
作业4
230KB
作业2 完成
0 20KB 52KB
os
作业1
66KB
作业3
130KB
作业4
230KB
作业4 完成
0 20KB 52KB
os
作业1
66KB
作业3
130KB
Hale Waihona Puke 230KB256KB1
主存
256KB1
主存
256KB1
主存
6
(二) 主存管理功能
一、几个概念 1. 物理地址(绝对地址、实地址)
物理地址是计算机主存单元的真实地址,又称绝对 地址或实地址。
2. 主存空间
物理地址的集合所对应的空间组成了主存空间。
3. 区域
物 理 地 址 集 合 的 一 个 递 增 整 数 序 列 子 集 n, n+1, …,n+m所对应的主存空间。
有一定容量的主存: 存放运行进程的当前信息
地址变换机构
33
六、存储保护
1. 什么是存储保护
在多用户环境中,主存储器按区分配给 各用户程序使用。为了互不影响,必须 由硬件(软件配合)保证每道程序只能 在给定的存储区域内活动,这种措施叫 做存储保护。
34
2. 存储保护方法 界地址保护 存储键保护
作业3
0 20KB 52KB 66KB 130KB
os
作业1 作业2
作业3
作业4
230KB
256KB1
256KB1
256KB1
256KB1
256KB1
主存
7存储管理习题
第七章存储管理练习题(一)单项选择题1.存储管理的目的是( )A、方便用户B.提高主存空间利用率C.方便用户和提高主存利用率D.增加主存实际容量2.为了实现存储保护,对共享区域中的信息( )。
A.既可读,又可写B.只可读,不可修改C.能执行,可修改D.既不可读,也不可写3.单连续存储管理时,若作业地址空间大于用户空间,可用( )把不同时工作的段轮流装入主存区执行。
A.对换技术B.移动技术C.虚拟存储技术D.覆盖技术4.把一个分区的存储管理技术用于系统时,可采用( )让多个用户作业轮流进入主存储器执行。
A.存储技术B.对换技术C.覆盖技术D.虚拟存储技术5.动态重定位是在作业的( )中进行的。
A.编译过程B.装入过程C.修改过程D.执行过程6.( )要求存储分配时具有连续性。
A.固定分区存储管理B.可变分区存储管理C.段式存储管理D.段页式存储管理7.固定分区存储管理一般采用( )进行主存空间的分配。
A.最先适应分配算法B.最优适应分配算法C.最坏适应分配算法D.顺序分配算法8.( )存储管理支持多道程序设计,算法简单,但存储碎片多。
A.段式B.页式C.固定分区D.段页式9.固定分区存储管理中存储保护用( )关系式进行核对。
A.逻辑地址≤限长寄存器值B.下限寄存器值≤绝对地址≤上限寄存器值C.界限地址≤绝对地址≤主存最大地址D.段内地址≤段表中对应段的限长10.提高主存利用率主要是通过( )实现的。
A.内存分配B.内存保护C.地址转换D.内存扩充11.( )判断到“逻辑地址>限长寄存器值”时,形成—个“地址越界”的程序性中断事件。
A.一个存储分区管理B.固定分区存储管理;C.可变分区存储管理D.段式存储管理12.可变分区存储管理时采用的地址转换公式为( )。
A.绝对地址=界限寄存器值+逻辑地址B.绝对地址=下限寄存器值+逻辑地址C.绝对地址=基址寄存器值+逻辑地址 D.绝对地址=块号×块长÷页内地址13.公式“绝对地址=下限寄存器+逻辑地址”被用来在( )中做地址转换。
计算机操作系统第七章 - 存 储 管 理
分页系统中的地址映射
图5-16 分页系统的地址转换机构 每个进程平均有半个页面的内部碎 片
页面尺寸
设进程的平均大小为s字节,页面尺寸为p字节 ,每个页表项占e字节。那么,每个进程需要的 页数大约为s/p,占用 s . e /p 字节的页表空间。 每个进程的内部碎片平均为p/2。 因此,由页表和内部碎片带来的总开销是: s . e /p+p/2
• • •
虚拟存储器的特征
① ② ③ ④
虚拟扩充。 部分装入。 离散分配。 多次对换。
地址重定位( 地址重定位(地址映射)
• • • • • • • • • • • •
MOV AX,1234 ;立即数寻址 MOV [1000],AX 存储器直接寻址 MOV BX,1002 ;立即数寻址 MOV BYTE PTR[BX],20 ;基址寻址 MOV DL,39 ;立即数寻址 INC BX ;寄存器寻址 MOV [BX],DL ;基址寻址 DEC DL ;寄存器寻址 MOV SI,3 ;立即数寻址 MOV [BX+SI],DL ;基址加变址寻址 MOV [BX+SI+1],DL ;基址+变址+立即数寻址 ;基址+变址+ MOV WORD PTR[BX+SI+2],2846 ;基址+变址+立即数寻址 ;基址+变址+
页面置换算法
页面置换
1.页面置换过程
图5-35 页面置换
需要解决的问题
• 系统抖动 • 缺页中断
•
在学汇编时,很多初学者对PC的寻址方式和很 在学汇编时,很多初学者对PC的寻址方式和很 不理解,甚至是很难理解。的确,这方面的知识 是很抽象的,需要比较强的空间想象能力。尤其 是我们在输入字符串时,那这些字符是如何进行 排列的呢?对于,这个问题,我相信很多初学者 也是很难想象是如何排列。但是,我可以这样比 喻:内存就是有很多栋“楼房” 喻:内存就是有很多栋“楼房”,“楼房”又是 楼房” 由“单元号”,“门户号”组成,那“楼房”就 单元号” 门户号”组成,那“楼房” 相当于内存地址的段地址,“单元号” 相当于内存地址的段地址,“单元号”就相当于 内存的的 偏移地址,“门户号(家)”就相当于“变 偏移地址,“门户号( 就相当于“ 地址”,而每个单元有16个 门户号( )",又当我 地址”,而每个单元有16个"门户号(家)",又当我 们找到"门户号( )"后 走进这个"门户号( )"就会 们找到"门户号(家)"后,走进这个"门户号(家)"就会 见到里面会有" ",而我们所说的人就是寄存器所 见到里面会有"人",而我们所说的人就是寄存器所 指的"内容" 指的"内容"了,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
248KB 空闲 (8K)
256KB-1
分区号 大小 起始地址
1
8KB 24KB
2 12KB 128KB 3 8KB 248KB
4
…
…
5
…
…
空闲分区链示意图
0 24KB 32KB
操作系统 空闲 (8K) 已分 (96K)
128KB 空闲 (12K)
140KB 已分 (108K)
然后,再按照作业大小,从该分区中划出一 块内存空间分配给请求者,余下的空闲分区 仍然留在空闲分区表(或空闲分区链)中。
循环首次适应算法的特点
特点:使存储空间的利用更加均衡,但会使 系统缺乏大的空闲分区。
最佳适应算法
最佳适应算法要求空闲分区按容量大小递增 的次序排列。
在进行内存分配时,从空闲分区表(或空闲 分区链)首开始顺序查找,直到找到第一个 能满足其大小要求的空闲分区为止。
0
┆
100 mov ax,[500]
┆
500 54321
0 1000 1100
重定位装入程序
1500
999
作业的地址空间
1999 1M-1
┆ ┆ mov ax,[1000+500]
┆ 54321
┆ ┆
主存空间
动态地址变换
动态地址变换:又称动态重定位,在程序执 行过程中,每次访问内存之前将要访问程序 地址转换成内存地址。
为了便于管理内存,系统需要建立一张分区 使用表,其中记录系统中的分区数目、分区 大小、分区起始地址及状态。
分区使用表例
分区号 大小 起始地址 状态
1
8KB 20KB 已分配
2 32KB 28KB 已分配 3 32KB 60KB 未分配
4 120KB 92KB 未分配 5 300KB 212KB 已分配
第7章 存储器管理
存储器管理的主要目标是为用户提供方便、 安全和充分大的存储器。
存储器即主存、内存,分为两大部分:
系统区:供操作系统使用 用户区:划分为一个或多个区域,供用户进程使
用。
存储器管理的功能
存储空间的分配和回收: 地址变换:将逻辑地址变换为物理地址 存储保护:防止因用户程序错误破坏系统或
地址变换:将逻辑地址转换为物理地址。 又称地址映射、重定位。
地址变换分为两类:
静态地址变换 动态地址变换
静态地址变换
静态地址变换:又称静态地址重定位,地址 变换在程序装入时一次完成,以后不再改变。
特点:不需硬件支持,但程序运行时不能在 内存移动,程序需要连续存储空间,难以共 享。
静态地址变换示意图
首次适应算法
首次适应算法又称最先适应算法,该算法要 求空闲分区按地址递增的次序排列。
在进行内存分配时,从空闲分区表(或空闲 分区链)首开始顺序查找,直到找到第一个 能满足其大小要求的空闲分区为止。
然后,再按照作业大小,从该分区中划出一 块内存空间分配给请求者,余下的空闲分区 仍然留在空闲分区表(或空闲分区链)中。
分区存储管理是多道程序系统中采用的一种最 简单的方法。它把系统的内存划分为若干大小 不等的区域,操作系统占一个区域,其他区域 由并发进程共享,每个进程占一个区域。
分区存储管理分为:
固定分区 动态分区
7.2.1 固定分区存储管理
固定分区存储管理方法将内存空间划分为若 干个固定大小的分区,每个分区中可以装入 一道程序。分区的位置及大小在运行期间不 能改变。
分区回收:当程序执行完毕不再需要内存资源时,释 放程序占用的分区,管理程序只需将对应分区的状态 置为未分配即可。
特点:最早的多道程序存储管理方式,不能充分利用 内存,存在内存碎片。
7.2.2 动态分区存储管理
动态分区存储管理又称为可变分区存储管 理,这种存储管理方法的实现思想是根据 作业大小动态地建立分区,并使分区的大 小正好适应作业的需要。因此系统中分区 的大小是可变的,分区的数目也是可变的。
0 操作系统 20KB 用户作业 28KB 用户作业 60KB 92KB
212KB 用户作业
512KB-1
固定分区的内存分配
分区分配:当有用户程序要装入时,由内存分配程序 检索分区使用表,从中找出一个能满足要求的空闲分 区分配给该程序,然后修改分区说明表中相应表项的 状态;若找不到大小足够的分区,则拒绝分配内存。
248KB 空闲 (8K)
256KB-1
0 24KB 32KB
操作系统 空闲 (8K) 已分 (96K)
128KB 空闲 (12K)
140KB 已分 (108K)
248KB 空闲 (8K)
256KB-1
表头指针
分区分配算法
目前常用的分区分配算法有以下几种:
首次适应算法 循环首次适应算法 最佳适应算法 最坏适应算法
其他用户,防止程序之间的相互干扰 存储扩充:在逻辑上为用户提供一个比实际
内存更大的存储空间
7.1 存储器管理的基本概念
逻辑地址:用户编程时所使用的地址。又称 相对地址、虚地址。
地址空间:逻辑地址的集合。 物理地址:内存中的地址。又称绝对地址、
实地址。 主存空间:物理地址的集合。
地址变换
特点:需要硬件支持,不需连续空间,可以 实现虚拟存储。
动态地址变换示意图
0
┆
100 mov ax,[500]
┆
重定位寄存器 0
1000
1000 1100
逻辑地址
500Biblioteka +1500500 54321 ┆
999
作业的地址空间
1999 1M-1
┆ ┆ mov ax,[500]
┆
54321 ┆
┆
存储空间
7.2 分区存储管理
首次适应算法的特点
特点:优先利用内存低地址端,高地址端有 大空闲区。但低地址端有许多小空闲分区时 会增加查找开销。
循环首次适应算法
循环首次适应算法又称下次适应算法,它是 首次适应算法的变形。
该算法在为进程分配内存空间时,从上次找 到的空闲分区的下一个空闲分区开始查找, 直到找到第一个能满足其大小要求的空闲分 区为止。
动态分区中的数据结构
在动态分区中常用的数据结构有:
空闲分区表。用一个空闲分区表来登记系统中 的空闲分区。其表项类似于固定分区。
空闲分区链。将内存中的空闲分区以链表方式 链接起来,构成空闲分区链。
空闲分区表示意图
0 24KB 32KB
操作系统 空闲 (8K) 已分 (96K)
128KB 空闲 (12K)
如果该空闲分区大于作业的大小,则从该分 区中划出一块内存空间分配给请求者,将剩 余空闲区仍然留在空闲分区表(或空闲分区 链)中。