虚拟存储器


overview

  • 理论基础:局部性原理
  • 本质:以时间(外存与内存的信息交换)换空间(扩大内存逻辑空间)
  • 受限:地址结构,外存容量,内存容量
  • 实现
    请求分页存储管理
    请求分段存储管理
    请求调页的段页式存储管理

按需调页

  • 结构:页表,地址变换机构,缺页中断机构,请求调页机构和页面置换机构
  • 页表
扩展后的页表
  • page fault
steps in handling a page fault
  • 缺页中断
    缺页中断处理程序根据该页在外存的地址把它调入内存;
    在调页过程中,若内存有空闲空间,则缺页中断处理程序只需把缺页装入并修改页表中的相应项;
    若内存中无空闲物理块,则需要先淘汰内存中的某些页,若淘汰页曾被修改过,则还要将其写回外存。

  • 地址变换流程

分页地址变换+缺页中断处理

地址变换流程
缺页处理流程
  • 内存访问时间
内存访问流程

页在主存中且页表项在快表中:
访问时间=查快表时间+访问内存时间=ε+t。

页在主存中且页表项不在快表中:
访问时间=查快表时间+查页表时间+修改快表时间+访问内存时间=ε+t+ε+t=2(ε+t)

页不在主存中,设处理缺页中断的时间为t1(包含读入缺页、页表更新、快表更新时间):
访问时间=查快表时间+查页表时间+处理缺页中断时间t1+查快表时间+访问内存时间=ε+t+t1+ε+t=t1+2(ε+t)

有效访问时间:内存的读写周期为t,缺页中断服务时间为tl(包含读入缺页、页表更新、快表更新时间), 快表的命中率为α,缺页中断率为f,快表访问时间为ε,则有效存取时间可表示为:EAT= α (ε +t )+(1- α )[(1-f) 2 (ε +t ) +f(tl+ 2 (ε+t ) )]

缺页中断处理时间:缺页中断服务时间,页面传送时间,重新启动进程时间

  • 写时拷贝
    允许父子进程在内存中共享页面
写时拷贝
  • 帧分配算法
    决定为每个进程分配多少个帧(物理块)
页错误与帧数量关系图

写时拷贝

页面置换

页面分配

进程需要的最少物理块数,进程的物理块数是固定的还是可变的,按什么原则为进程分配物理块数

  • 最小物理块数
  • 页面分配算法
  • 全局分配和局部分配

抖动

内存映射文件

其他考虑

  • 预调页
  • 页面尺寸选择
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容