操作系统第3章——内存管理

操作系统第3章——内存管理

操作系统——思维导图原图分享链接:

https://blog.csdn.net/qq_34767784/article/details/105674226

内存管理——思维导图

在这里插入图片描述

3.1 内存管理概念

操作系统对内存的划分和动态分配,就是内存管理的概念。
在这里插入图片描述
在这里插入图片描述
程序的链接:静态链接、装入时动态链接、运行时动态链接;
程序的装入:绝对装入(只适用于单道程序环境,绝对地址)、可重定位装入(静态重定位,相对地址)、动态运行时装入(动态重定位);
在这里插入图片描述

内存保护:

CPU中设置一对上、下限寄存器;采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器);
在这里插入图片描述

覆盖与交换:

多道程序环境下扩充内存的两种方法。
覆盖:用户空间分为固定区和若干覆盖区,不在覆盖区的段能够常驻内存;
交换(对换):程序在内存与辅存之间的交换

交换技术主要是在不同进程(或作业)之间进行,而覆盖则用于同一个程序或进程中。而后覆盖被虚拟内存技术淘汰。

连续分配管理方式:

单一连续分配(低地址系统区,高地址用户区,只适用于单用户、单任务的OS)、固定分区分配(最简单多道程序存储管理方式,分区大小可等可不等,有分区说明表,存在内部碎片,无外部碎片);动态分区分配(可变分区分配,分区大小数目可变,存在外部碎片,外碎可以用紧凑技术解决)
动态分区的分配策略:首次适应算法(最好)、最佳适应(空闲分区容量递增分区链)、最坏适应(最大适应,空闲分区容量递减分区链)、临近适应(循环首次适应)
在这里插入图片描述

在这里插入图片描述

非连续分配方式:

在这里插入图片描述

基本分页存储管理方式

分页思想:把主存空间划分为大小相等且固定的块作为主存的基本单位。
分页管理类似于分区相等的固定分区技术,无外部碎片,块比分区小很多,每个进程平均只产生半个块大小的内部碎片(页内碎片)。

基本概念
进程中的块称为页,内存中的块称为页框(或页帧)。
在这里插入图片描述
在这里插入图片描述
系统为每个进程建立一张页表;
在这里插入图片描述
在这里插入图片描述
页表的作用是实现从页号到物理块号的地址映射。
在这里插入图片描述
地址变换机构的任务是将逻辑地址转换为内存中物理地址,地址变换是借助于页表实现的。
在这里插入图片描述
在这里插入图片描述
页式管理只需要给出一个整数就能确定对应的物理地址,这是因为页面大小L是固定的。因此,页式管理中地址空间是一维的。

地址转换过程变慢->访存速率降低;
页表太大->内存利用率降低。
具有快表(局部性原理)的地址变换机构:
在这里插入图片描述
为此,引入具有并行查找能力的高速缓冲存储器——快表,也称联想存储器(TLB),主存中的页表称为慢表(Page)
在这里插入图片描述

顶级页表最多只能有一个页面(一定记住),则顶级页表最多可以容纳4KB/4B=1K个页表项,占用地址位数为10位;
在这里插入图片描述
在这里插入图片描述

基本分段存储管理方式

分页机制通过硬件机制实现,对用户完全透明。
段式管理方式按照用户进程中的自然段划分逻辑空间。
段内要求连续,段间不要求连续,因此整个作业的地址空间是二维的
在这里插入图片描述
页号与页内偏移对用户透明;段号与段内偏移由用户显式提供,由编译程序完成;
每个进程都有一张逻辑空间和内存空间映射的段表。
在这里插入图片描述
在这里插入图片描述

在系统中设置了段表寄存器,用于存放段表始址F和段表长度M。
在这里插入图片描述
不能修改的代码称为纯代码可重入代码(它不属于临界资源)。
在这里插入图片描述
分段管理的地址空间分为(段号,段内偏移),是二维的。

段页式管理方式:

在这里插入图片描述
段页式地址变换:
为了实现地址变换,系统为每个进程建立一张段表,而每个分段有一张页表。
注意:在一个进程中,段表只有一个,而页表可能有多个。

在这里插入图片描述
在这里插入图片描述

无论是段式管理、页式管理、段页式管理,读者都只需要关注三个问题:1、逻辑地址结构2、表项结构3、寻址过程

例题

1、形成逻辑地址的阶段是链接,完成该变换过程的阶段是装载。
编址空间的大小取决于硬件的访存能力,地址总线宽度决定。
3、 进程正在进行I/O操作时不能换出主存
4、覆盖与交换为了逻辑上扩充主存,节省主存空间。
8、
在这里插入图片描述
9、
在这里插入图片描述
13、
在这里插入图片描述
21、
在这里插入图片描述
23、
在这里插入图片描述

27、
在这里插入图片描述
33、
在这里插入图片描述
34、
在这里插入图片描述
35、页式存储管理所划分的页面大小必须相同。
36、
在这里插入图片描述
37、
在这里插入图片描述
38、
在这里插入图片描述
41、
在这里插入图片描述
45、
在这里插入图片描述
48、
在这里插入图片描述

49、

在这里插入图片描述
51-52、
在这里插入图片描述
在这里插入图片描述
53、
在这里插入图片描述

3.2 虚拟内存管理

快表、页高速缓存以及虚拟内存技术广义上说都属于高速缓存技术,其依赖于局部性原理。
时间局部性(程序中有大量循环操作)、空间局部性(指令顺序执行);
在这里插入图片描述
系统提供了部分装入、请求调入和置换功能,给用户感觉好像存在一个比实际物理内存大得多的存储器,称为虚拟存储器。
大小由计算机的地址结构决定,而不是内外存的简单相加;
虚拟存储器特征:多次性、对换性、虚拟性。
因此,虚拟内存的实现需要建立在离散分配的内存管理方式的基础上。
在这里插入图片描述

3.2.2 请求分页管理方式:

请求分页=基本分页+请求调页+页面置换
1、 页表机制
在这里插入图片描述

2、 缺页中断机构
请求的页面不在内存发生一个缺页中断;
在这里插入图片描述
3、 地址变换机构
在这里插入图片描述

3.2.3 页面置换算法

选择调出页面的算法;
最佳置换算法(OPT)(栈):最长时间内不被访问的页面;无法实现;
先进先出(FIFO)页面置换算法(队列):优先淘汰最早进入内存的页面,亦即在内存中驻留时间最久的页面。

Belady异常:
在这里插入图片描述
3.最近最久未使用(LRU)置换算法(栈)
在这里插入图片描述
4.时钟(CLOCK)置换算法
简单CLOCK算法:使用位
CLOCK算法也叫最近未用(NRU)算法;
改进型的CLOCK算法:增加一个修改位
在这里插入图片描述

3.2.4 页面分配策略

1、驻留集大小
给特定的进程分配多大的主存空间。
固定分配局部置换;可变分配全局置换(最易于实现);可变分配局部置换。
2、调页时机
预调页(运行前调入),请求调页(运行期间调入)
3、从何处调入页面
请求分页系统的外存=存放文件的文件区(离散分配)+存放对换页面的对换区(连续分配方式),对换区的I/O速度比文件区更快。
分为三种方式:
对换区够、对换区不够、UNIX方式
3.2.5 抖动
在这里插入图片描述

3.2.6 工作集
在这里插入图片描述

3.2.7 地址翻译

实例讲解,精彩

本节小结
1、虚存的大小 <= 内存容量和外存容量之和。
在这里插入图片描述

例题:

在这里插入图片描述
3.
缺页中断是访存指令引起的,说明所要访问页面不在内存中,在进行缺页中断处理后,调入所需访问的页后,访存指令显然应该重新执行。

在这里插入图片描述
11.
在这里插入图片描述
17.
在这里插入图片描述
20.
在这里插入图片描述
29、
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
32.
在这里插入图片描述
34.增大TLB容量和让页表常驻内存能够加快虚实地址转换;

在这里插入图片描述
38.
在这里插入图片描述

在这里插入图片描述
覆盖与虚存,交换与调入调出:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李霁明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值