虚拟存储器
- 和操作系统中的一样
- 页式存储
- 我们的程序很大,需要连续的主存空间不现实
- 所以将一个程序,在逻辑上拆分为若干个大小相等的页面,离散的放入不同的主存块中
- 每个页面大小和物理块的大小相同
- 两个地址
- 逻辑地址:程序员视角 (地址=逻辑页号+页内地址)机器指令中都是逻辑地址
- 物理地址:实际地址 (地址=实际页号+页内地址)
- 页表实现 两个地址的映射
- 页表放在主存中
- 页表中每一行是页表项
- 将逻辑页号转换为实际页号
- 页表基址寄存器:指明页表在主存的存放位置 即,帮我们在主存中找到页表
- 这个思路就很清晰了
- 下面是整体的流程
- 页式虚拟存储器
- 在之前的基础上 加上了一个外存(辅存)的概念
- 之前是关注于空间连续问题,假定所有数据都在主存中
- 而这里是主存空间不够,只能放外存数据的部分
- 在之前的基础上 加上了一个外存(辅存)的概念
- 段式虚拟存储器
- 按照功能分段
- 操作系统决定将哪些段先放入内存
- 有逻辑关系
- 就不能分页了,没有块的概念,按字节来
- 段页式
- 先段
- 后页