408计算机考研笔记(王道考研):操作系统 第三章 内存管理

3.1内存管理概念

3.1.1 内存的基础知识

image.png

1、内存及作用

image.png
image.png

2、常用的数量单位

image.png

3、指令的工作原理

指令的工作基于”地址“,每个地址对应一个数据的存储单元
image.png

4、装入的三种方式

绝对装入

image.png

可重定位装入(静态重定位)

image.png

动态运行时装入(动态重定位)

image.png

5、从写程序到程序运行

image.png

6、链接的三种方式

静态链接

image.png

装入时动态链接

image.png
image.png

运行时动态链接

image.png
image.png

小结:

image.png

3.1.2 内存管理的概念

1、内存空间的分配与回收

image.png
操作系统负责内存空间的分配与回收。

2、内存空间的扩展

image.png
操作系统需要提供某种技术从逻辑上对内存空间进行扩充。

3、地址转换

image.png
操作系统需要提供 地址转换功能,负责程序的逻辑地址与物理地址的转换。

实现转换的三种方式:
image.png

4、内存保护

操作系统需要提供内存保护功能。保证各进程在各自存储空间内运行,互不干扰。

两种方法:
image.png
方法一:
image.png
方法二:
image.png

小结:

image.png

3.1.3 覆盖与交换

1、覆盖技术

image.png
例子:
image.png
但是:覆盖技术必须有程序员声明覆盖结构,操作系统完成自动覆盖。
缺点:对用户不透明,增加了用户编程负担
覆盖技术只用于早期的操作系统中,现在已成为历史。

2、交换技术

设计思想:
image.png
暂时换出外存等待的进程状态为 挂起状态(挂起态)
挂起态又可以进一步细分外就绪挂起、阻塞挂起两种状态。
image.png

image.png

image.png

小结:

image.png

3.1.4 连续分配管理方式

image.png

分区分配内存方式也称为连续分配管理方式


1、单一连续分配

image.png
image.png

2、固定分区分配

image.png

分区大小相等

image.pngimage.png

分区大小不等

image.pngimage.png
image.png

3、动态分区分配(可变分区策略)

image.png
问题1:
系统要用什么样的数据结构记录内存的使用情况?
image.png
image.png
问题2:
当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配?
利用动态分区算法—>下一小节
问题3:
如何进行分区的分配与回收操作?
image.png

image.png

image.png
image.png

小结:

image.png

3.1.5 动态分区分配算法

1、首次适应算法

image.png

2、最佳适应算法

image.png
缺点:
每次都选最小的分区进行分配,会留下越来越多的、很小的、难以利用的内存块。因此这种方法会产生很多的外部碎片。

3、最坏适应算法

image.png
image.png

4、邻近适应算法

又称 循环首次适应算法
image.png
image.png

小结:

image.png

非连续分配管理方式:

3.1.6 基本分页存储管理的概念

image.png

1、什么是分页存储

image.png

2、重要的数据结构-页表

image.png
问题1:

每个页表项占多少字节?

image.png
计算机中内存块的数量---->页表项中块号至少占多少字节

问题2:

如何实现地址的转换?

image.png
例子:
image.png

如何确定一个逻辑地址对应的页号、页内偏移量?

image.png

image.png

页面大小刚好是2的整数幂的好处:

image.png

3、逻辑地址结构

image.png

小结:

image.png

3.1.7 基本地址变换机构

属于基本分页存储管理
image.png
image.png

image.png

image.png
例子:
image.png


对页表项大小进一步讨论
image.png

小结:

image.png

3.1.8 具有快表的地址变换机构

--------->是基本地址变换机构的改进版本

1、快表(TLB)

image.png
image.png
但是不能把整个页表都放在TLB,因为速度更快的价格越贵
例子:
image.png

2、引入快表后,地址的变换过程

image.png
例子:
image.png
image.png

3、局部性原理

image.png

小结:

image.png

3.1.9 两级页表

----->用于解决单机页表存在的问题

1、单级页表存在的问题

image.png
image.png
image.png

2、如何解决

问题1
image.png

3、两级页表的原理、地址结构

image.png
image.png
例子:
image.png


问题2
image.png

4、注意的细节

image.png

小结:

image.png

3.1.10 基本分段存储管理方式

image.png

1、分段

image.png
image.png

2、地址变换

image.png

3、分段、分页管理的对比

image.png

image.png

image.png

小结:

image.png

3.1.11 段页式管理方式

是分段和分页的结合

1、分页、分段的优缺点分析

image.png

2、段页式管理的逻辑地址结构

image.png

image.png

小结:

image.png

3.2 虚拟内存管理

image.png

3.2.1 虚拟存储的基本概念

1、传统存储管理方式的特征、缺点

image.png

2、局部性原理

可以解决传统存储管理方式的缺点

时间局部性

---->循环

空间局部性

---->数组
image.png

3、虚拟内存的定义和特征

image.png
虚拟内存是操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充。

4、如何实现虚拟内存技术

image.png

小结:

image.png

3.2.2 请求分页管理方式

image.png

1、页表机制

image.png

2、缺页中断机构

页面不在内存时---->>状态位为0
例子:
image.png
image.png

3、地址变换机构

image.png

image.png

image.png

image.png

小结:

image.png

3.2.3 页面置换算法

页面置换算法

image.png

1、最佳置换算法(OPT)

在这里插入图片描述

就是看前一列的内存块分别存放在哪,图中指的前面一列就是7 0 1image.png
image.png

image.png

2、先进先出置换算法(FIFO)

image.png一共缺页9次
当要分配四个内存时
image.png

image.png

3、最近最久未使用置换算法(LRU)

image.png
image.png
该算法需要专门的硬件支持,虽然算法性能好,但是实现困难,开销大。

4、时钟置换算法(CLOCK)

------->是一种性能和开销较均衡的算法,又称为CLOCK算法,或最近未用算法(NRU)

image.png

简单的CLOCK算法

image.png
例子:
image.png
开始,因为分配5个内存块,所以访问到1,3,4,2,5这5个内存块的时候不考虑淘汰页面
image.png
当访问6号时,所有页面访问位是1,然后第一轮扫描后将所有访问位变为0,开始第二轮扫描
image.png
然后,指针扫描到1号页面,访问位为0,然后将6号页面置换到1号,将6号访问位置换为1,然后指针指向下一个页面3号
image.png
页面被替换时,该指针设置指向被替换页面的下一页
然后接下来,访问3号和4号页面,都在内存中,只是将访问位置换为1,但是指针不转动!!!!
image.png

访问到7号页面时,依次开始3号、4号,把访问位置位0,然后访问到2号页面时发现为0,将2号页面置换为7号,然后将7号页面访问位置为1,指针指向下一页面
image.png

改进型的时钟置换算法

image.png

(访问位,修改位)
访问位=1–>近期被访问过 修改位=1–>页面被修改过
访问位=0–>近期未被访问 修改位=0–>页面未被修改

例子:
image.png分配5个内存块

只需一轮扫描,找到(0,0),然后淘汰


image.png

扫描一轮,没有发现(0,0),
第二轮为image.png,先将扫描到的(1,1)置换为(0,1),然后淘汰第二个淘汰(0,1)


image.png
第一轮扫描没有发现
第二轮扫描,修改访问位为0,image.png没有发现(0,1)
第三轮扫描发现(0,0)image.png


image.png
第一轮不满足
第二轮后,修改访问位之后变成image.png
第三轮没有发现(0,0)
第四轮找到(0,1)image.png


image.png

小结:

image.png

3.2.4 页面分配策略、抖动、工作集

image.png

1、页面分配、置换策略

image.png

固定分配局部置换

image.png

可变分配全局置换

image.png
未锁定----->系统会锁定一些页面,这些页面中的内容不能置换出外存(如:重要的内核数据可以设定为“锁定”)

可变分配局部置换

image.png
区别:
image.png

2、何时调入页面

预调页策略

image.png

请求调页策略

image.png

3、从何处调入页面

系统拥有足够的对换区空间

image.png
image.png

系统缺少足够的对换区空间

image.png
image.png

UNIX方式

image.png
image.png

4、抖动(颠簸)现象

image.png

5、工作集

image.png

小结:

image.png

3.2.5 内存映射文件(大纲新增)

----->大概率考概念型选择题,不会考很深

1、内存映射文件概念

image.png

2、传统的文件访问方式

image.png

3、内存映射文件

第一个作用:方便访问
image.png
第二个作用:共享
image.png

小结:

image.png

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值