现代操作系统 第3章 存储管理

3.3 虚拟内存

每个程序拥有的地址空间被分为很多块,每一块称为一页page,page被映射到物理内存。当程序用到的部分不在物理空间时,产生缺页中断;

分页:

1.程序产生的地址称为虚拟地址,构成的空间称为虚拟地址空间;

地址空间的单元称为页面,在物理内存对应的单元称为页框;

2.虚拟地址送给MMU,MMU转换为物理地址;

3.页表:

本质:虚拟地址到页框的映射;

结构:页框号、访问位、在/不在位、等

加速分页:TLB,一个硬件结构,加速找到页框,传入虚拟页号;

多级页表:页表项太多,放在内存占空间;

倒排页表:一个页框对应一个页面;

3.4 页面置换算法

1.最优页面置换算法;

2.最近未使用页面置换算法

3.FIFO

4.第二次机会页面置换算法(FIFO改进,R位)

5.时钟页面置换算法:第二次机会的时钟版(时钟驱动,其余的是任务驱动,新任务进来才换)

6.LRU算法

7.工作集页面置换算法

8.工作集时钟页面置换算法

进程正在使用的页面的集合称为工作集;

最好的算法:老化算法和工作集时钟;

3.5 分页系统设计

1.局部分配策略和全局分配策略

局部:只为单个进程分配和置换,自己处理自己的

全局:在所有运行的进程考虑和动态分配;

2.共享页面

共享I空间;

共享数据:fork,写时复制;

3.动态库

减小可执行文件大小和内存空间;

共享库函数修改后不需要重新编译主程序;

3.6 分页系统实现

1.上下文切换(进程调度):重置MMU、TLB,加载页表;

2.缺页中断:

流程:

陷入内核;

启动汇编,保存寄存器;

分段与分页:

虚拟地址分为段号和段内地址,段内地址有页号和业内偏移量;

猜你喜欢

转载自blog.csdn.net/shhchen/article/details/88555307