3.内存管理
迪丽瓦拉
2024-06-02 13:47:48
0

1.地址空间

1.动态重定位

基址寄存器、界限寄存器
地址值+基址值,并检查是否超过界限寄存器的值
缺点:每次都要加法和比较

2.处理内存超载

2.1 交换

2.2 虚拟内存(见4)

3.空闲内存管理

3.1 位图

每个分配单元对应位图的一位
缺点:查找指定长度的0串耗时,并且可能越界

3.2 空闲区链表

4.虚拟内存

4.1 映射机制

MMU(内存管理单元)把虚拟地址映射为物理地址
虚拟地址空间比物理内存大:缺页中断

4.2 页表

“在/不在”位:
该表项对应的虚拟页面在不在内存中
保护位:
读、写、执行
修改位:
若页面已被修改,即“脏”,则必须把它写回磁盘
否则简单丢弃,因为它在磁盘的副本仍有效
访问位:
缺页中断时选择要淘汰的页面,若为1,则表示缺页中断时该页面正在使用
高速缓存禁止位:
假如OS正紧张地等待某个I/O设备响应,保证硬件从设备读取数据,而不是访问旧的高速缓存的副本

4.3加速分页过程

4.3.1 TLB(转换检查缓冲区)
TLB:将虚拟地址直接映射为物理地址,不必访问页表,也叫相联存储器、快表
原理类似局部性
还有一位有效位
4.3.2 软件TLB管理
软失效:一个页面访问在内存中,而不在TLB中
硬失效:不在内存,当然也不在TLB
次要缺页错误:所需页面在内存中,但未记录在进程的页表
严重缺页错误:需要从硬盘重新调入页面
段错误:程序访问了一个非法地址,根本不需要向TLB中新增映射

4.4 针对大内存

4.4.1 多级页表
4.4.2 倒排页表
实际内存中的每个页框对应一个表项,而不是虚拟页面对应表项

5.设计

共享库是内存映射文件的特例

6.分段

页面是定长的,而段不是

形成外部碎片,通过内存紧缩解决

相关内容