Skip to content

Latest commit

 

History

History
272 lines (131 loc) · 4.74 KB

内存管理.md

File metadata and controls

272 lines (131 loc) · 4.74 KB

内存管理

bss段、data段、text段

不在可执行文件中:

栈:1、存放局部变量 2、保存和恢复现场

堆:动态内存分配

存储管理的基石:地址独立、地址保护

存储分配:直接指定、动态分配、静态分配

单道程序的内存管理:

​ 静态地址翻译

多道程序的存储管理

分区式分配

1、固定(静态)式分区分配

分区大小相等/不等

单一队列分配/多队列

采用:分区表

​ id/size/addr/status

2、可变(动态)式分区分配

​ 闲置空间管理:

​ (1)位图表示法(分区表)

​ 每个分配单元一个位

​ (2)链表表示法(分区链表)

​ P/ADDR/SIZE/NEXT

分区分配算法

基于顺序搜索的分配算法

1、First Fit

2、Next Fit

3、Best Fit

4、Worst Fit

基于索引搜索的分配算法

快速适应算法(分类搜索法)

按容量大小分类、经常用到+管理索引表

内部碎片:

外部碎片:内存系统性能下降的主要原因

紧凑技术

通过移动作业把多个分散小分区拼接成一个大分区

实现支撑:动态重定位(重定位寄存器)

多重分区分配

一个作业多个片段不同区域

存储保护

界限寄存器法:上下界寄存器方法/基址、限长(BR,LR)寄存器方法

存储保护键方法:保护键(锁)-->每个存储块 保护键(钥匙)-->作业

覆盖和交换技术(小内存运行大程序)

覆盖:把一个程序分成一系列功能相对独立的程序段,执行时不要求同时装入内存的程序段,共享主存

减少一个程序运行空间

交换:暂时不用的程序/数据交换出去

操作整个程序,让出内存空间

进程:程序+数据

分页式存储管理

逻辑地址连续的程序分散存放到不连续的内存区域

纯分页系统:无页面对换 无虚存

所有页一次性装入。

页面大小:

小:碎片少,页表占用内存大,换进换出速度降低

大:碎片大,占用内存小,换进换出速度快

数据结构

进程页表

物理页面表:整个系统

请求表:整个系统,进程页表的位置和大小,可以结合到PCB

页表:

页表寄存器:页表始址+长度

地址变换机构

(1)逻辑地址=页号+页内地址

(2)页表长度>页号

(3)页表始址+页号-->块号

(4)块号+页内地址-->物理地址寄存器

一级页表:

​ 解决存储空间大:

​ 动态调入页表

​ 多级页表

快表

ASID--为进程提供地址空间保护

哈希页表

反置页表

​ pid/p(逻辑地址)

页共享与保护

保护:

​ 1、地址越界保护

​ 2、设置保护位

共享

段式存储管理

方便编程、信息共享(段式信息的逻辑单位)、信息保护(一个也能有两个不同子程序段代码)、动态增长、动态链接

段表

段表寄存器(段表始址+段表长度)

地址变换机构

段号+段内地址

信息共享:可重入代码(纯代码)

段页式存储管理

断号+段内页号+页内地址

每个进程一张段表

每个段一张页表

段表寄存器(段表始址+段表长度)

地址变换机构

(1)从PCB取出段表始址和段表长度,装入reg

(2)段越界判断

(3)段表项=页表始址+页表长度

(4)页越界判断

(5)页表项

(6)物理块号+业内地址

虚拟存储管理

基本原理:程序装入时。不必全部读入内存,只需经当前需要执行的部分页或段读入

请求调入和置换功能

特征:离散性/多次性/对换性

请求式分页系统:

交换分区:按页划分的一段连续的磁盘空间。物理内存不够时,把内存中暂时不用的数据,存到交换空间。

进程空间到虚拟空间的映射(进程的虚存分配)

分配以段为单位

创建虚拟内存布局,建立好虚拟内存和磁盘文件的映射

虚拟存储器的管理

调入问题:

预调页

按需调页

缺页中断:

现场保护、页面定位、权限检查、新页面调入、旧页面写回、更新页表、恢复现场、继续执行

页面置换策略

OPT、FIFO、LRU

Second Chance:

Clock算法

LRU算法

硬件实现:所在行1,所在列0

AGING算法

工作集与驻留集管理

进程工作集:

当前正在使用的页面的集合

进程驻留集:

每个进程驻留在内存的页面集合/进程分到的物理页框的集合

工作集的定义:W(t,▲)

工作集大小变化:随着访问新页面-->工作集稳定-->局部性区域变化-->快速扩张/收缩-->再次趋于稳定

驻留集的管理

页面分配策略:

固定分配策略:

可变分配策略