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

文章目录

  • 操作系统第3章——内存管理
  • 操作系统——思维导图原图分享链接:
  • 内存管理——思维导图
    • 3.1 内存管理概念
      • 内存保护:
      • 覆盖与交换:
      • 连续分配管理方式:
      • 非连续分配方式:
        • 基本分页存储管理方式
        • 基本分段存储管理方式
        • 段页式管理方式:
      • 例题
    • 3.2 虚拟内存管理
      • 3.2.2 请求分页管理方式:
      • 3.2.3 页面置换算法
      • 3.2.4 页面分配策略
      • 3.2.7 地址翻译
      • 例题:

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

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

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

内存管理——思维导图

操作系统第3章——内存管理_第1张图片

3.1 内存管理概念

操作系统对内存的划分和动态分配,就是内存管理的概念。
操作系统第3章——内存管理_第2张图片
操作系统第3章——内存管理_第3张图片
程序的链接:静态链接、装入时动态链接、运行时动态链接;
程序的装入:绝对装入(只适用于单道程序环境,绝对地址)、可重定位装入(静态重定位,相对地址)、动态运行时装入(动态重定位);
操作系统第3章——内存管理_第4张图片

内存保护:

CPU中设置一对上、下限寄存器;采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器);
操作系统第3章——内存管理_第5张图片

覆盖与交换:

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

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

连续分配管理方式:

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

操作系统第3章——内存管理_第7张图片

非连续分配方式:

操作系统第3章——内存管理_第8张图片

基本分页存储管理方式

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

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

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

顶级页表最多只能有一个页面(一定记住),则顶级页表最多可以容纳4KB/4B=1K个页表项,占用地址位数为10位;
在这里插入图片描述
操作系统第3章——内存管理_第12张图片

基本分段存储管理方式

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

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

段页式管理方式:

操作系统第3章——内存管理_第16张图片
段页式地址变换:
为了实现地址变换,系统为每个进程建立一张段表,而每个分段有一张页表。
注意:在一个进程中,段表只有一个,而页表可能有多个。

在这里插入图片描述
操作系统第3章——内存管理_第17张图片

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

例题

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

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

49、

在这里插入图片描述
51-52、
操作系统第3章——内存管理_第19张图片
操作系统第3章——内存管理_第20张图片
53、
在这里插入图片描述

3.2 虚拟内存管理

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

3.2.2 请求分页管理方式:

请求分页=基本分页+请求调页+页面置换
1、 页表机制
操作系统第3章——内存管理_第22张图片

2、 缺页中断机构
请求的页面不在内存发生一个缺页中断;
在这里插入图片描述
3、 地址变换机构
操作系统第3章——内存管理_第23张图片

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.
操作系统第3章——内存管理_第24张图片
34.增大TLB容量和让页表常驻内存能够加快虚实地址转换;

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

在这里插入图片描述
覆盖与虚存,交换与调入调出:
操作系统第3章——内存管理_第25张图片

你可能感兴趣的:(操作系统,内存管理,操作系统,OS,考研笔记)