Lab3:虚拟内存管理
前言 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。 覆盖和技术 覆盖 依据程序逻辑结构,将程序划分为若干功能相对独立的模块;将不会同时执行的模块共享同一块内存区域 但是由于需要程序员来划分功能模块和确定模块之间的覆盖关系,所以增加了编程难度,并且也增加了执行时间 交换 交换技术和覆盖技术讨论的不一样的是,交换技术讨论的是当前内存足够当前的单个程序运行的内存,但是对于多道程序可能会有运行内存不够的情况 实现方法可以将暂时不能运行的程序放到外存当中,再运行时来执行换入换出操作 虚拟内存 在装载程序时,只将当前指令执行需要的部分页面或段装入内存,指令执行中需要的指令或数据不在内存(称为缺页)时,处理器通知操作系统将相应的页面调入内存,操作系统将内存中暂时不同的页面保存到外存 虚拟内存在页机制的基础上,也就是增加了请求调页和页面置换 当用户程序要装载到内存运行时,只装入部分页面,就启动程序运行 进程在运行中发现有需要的代码或数据不在内存时,则向系统发出缺页异常请求 操作系统在处理缺页异常时,将外存中相应的页面调入内存,使得进程能继续运行 页表项结构 驻留位:表示该页是否在内存 修改位:表示在内存中的该页是否被修改过 访问位