【操作系统】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数据结构笔记

相关推荐
冷眼看人间恩怨4 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
A懿轩A9 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
Hejjon10 小时前
SpringBoot 整合 SQLite 数据库
笔记
西洼工作室12 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.12 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑14 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
p@nd@14 小时前
Oracle筑基篇-调度算法-LRU的引入
数据库·oracle·操作系统·lru
stm 学习ing15 小时前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉15 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
bohu8316 小时前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口