【操作系统】24王道考研笔记——第三章 内存管理

第三章 内存管理

一、内存管理概念

1.基本概念

2.覆盖与交换

覆盖技术:

交换技术:

总结:

3.连续分配管理方式

单一连续分配

固定分区分配

动态分区分配

动态分区分配算法:

总结:

4.基本分页存储管理

定义:

页表:

地址转换的实现:

子问题:

逻辑地址结构:

总结:

5.基本地址变换机构

流程:

原理:

例子:

总结:

6.具有快表的地址变换机构

快表,又称联想寄存器(TLB, translation lookaside buffer ),是一种访问速度比内存快很多的高速缓存(TLB不是内存!),用来存放最近访问的页表项的副本,可以加速地址变换的速度。与此对应,内存中的页表常称为慢表。

流程:

原理:

局部性原理:

总结:

7.两级页表

8.基本分段存储管理方式

分段:

进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址 。

内存分配规则:以段为单位进行分配,每个段在内存中占据连续空间,但各段之间可以不相邻。

段表:

地址变换:

对比:

总结:

9.段页式管理方式

分别的优缺点:

逻辑地址结构:

总结:

二、虚拟内存管理

1.基本概念

2.请求分页管理方式

请求分页存储管理与基本分页存储管理的主要区别:

  • 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
  • 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存

机制:

缺页中断机构:

缺页中断是因为当前执行的指令想要访问的目标页面未调入内存而产生的,因此属于内中断 。

一条指令在执行期间,可能产生多次缺页中断。(如:copy A to B,即将逻辑地址A中的数据复制到逻辑地址B,而A、B属于不同的页面,则有可能产生两次中断)

地址变换机构:

3.页面置换算法

请求分页存储管理与基本分页存储管理的主要区别:

  • 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
  • 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。

此时使用页面置换算法决定应该换出哪个页面

最佳置换算法可以保证最低的缺页率,但实际上,只有在进程执行的过程中才能知道接下来会访问到的是哪个页面。操作系统无法提前预判页面访问序列。因此,最佳置换算法是无法实现的。

总结:

4.页面分配策略

页面分配:

抖动(颠簸)现象:

工作集:

总结:

5.内存映射文件

传统的:

内存映射文件:

总结:

主要参考:王道考研课程

后续会持续更新考研408部分的学习笔记,欢迎关注。

github仓库(含所有相关源码):408数据结构笔记

相关推荐
Thexhy32311 小时前
Linux学习,CentOS虚拟机网络存在问题,主网络接口 ens33没有分配到 IP 地址,按照这个流程,99% 的虚拟机无网络访问问题都能得到解决。请从第一
操作系统
CYRUS_STUDIO2 天前
Android 反调试攻防实战:多重检测手段解析与内核级绕过方案
android·操作系统·逆向
_落纸2 天前
三大基础无源电子元件——电阻(R)、电感(L)、电容(C)
笔记
Alice-YUE2 天前
【CSS学习笔记3】css特性
前端·css·笔记·html
2303_Alpha2 天前
SpringBoot
笔记·学习
Hello_Embed2 天前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中2 天前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Grassto2 天前
RAG 从入门到放弃?丐版 demo 实战笔记(go+python)
笔记
Magnetic_h2 天前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
周周记笔记2 天前
学习笔记:第一个Python程序
笔记·学习