电子科枚大学 软件技术基础 2.10页式管理及虚拟存储技术 主讲教师:刘民岷 航空航天学院 软件技术基础课程组
软件技术基础 2.10 页式管理及虚拟存储技术 主讲教师:刘民岷 航空航天学院 软件技术基础课程组
虚拟以存储管理 ▣分区存储管理存在的局限性: 逻辑地址空间不能超过物理地址空间 产生内存碎片,内存空间利用率低 ▣ 虚拟存储技术有效地解决了这两个问题。虚拟存储的基本思想是用 大容量的外存来扩充内存,利用虚拟技术为用户提供一个比有限的实 际内存空间大得多的虚拟内存空间 口虚拟存储管理技术关键在于采用“部分装入”,“部分交换”的策 略,即当大型作业运行时,不是将它的全部信息装入内存,而是将其 一部分先装入内存,另一部分暂存放在外存(磁盘)上,在作业运行 过程中,根据需要动态地装入 具体实现有分页存储管理、分段存储管理和段页式存储管理。 电子科技大学刘民岷 页式管理及虚拟存储技术 2
电子科技大学 刘民岷 2 1、虚拟存储管理 页式管理及虚拟存储技术 分区存储管理存在的局限性: • 逻辑地址空间不能超过物理地址空间 • 产生内存碎片,内存空间利用率低 虚拟存储技术有效地解决了这两个问题。虚拟存储的基本思想是用 大容量的外存来扩充内存,利用虚拟技术为用户提供一个比有限的实 际内存空间大得多的虚拟内存空间 虚拟存储管理技术关键在于采用“部分装入”,“部分交换”的策 略,即当大型作业运行时,不是将它的全部信息装入内存,而是将其 一部分先装入内存,另一部分暂存放在外存(磁盘)上,在作业运行 过程中,根据需要动态地装入 具体实现有分页存储管理、分段存储管理和段页式存储管理
页式存储管理 分页存储管理中,将逻辑地址空间分为大小相同的块,称为 虚页面(Page),通常页面大小为2的整数次幂(512K~4K)。 将物理空间也划分为与页面大小相等的块,称之为存储块或页 框(Page frame) 连续逻辑地址空间的页面,通过页面地址转换机构可以映射 到不连续的内存块中。 0 3 15 34 15 相对页号P 页内地址W 块号 块内地址 (a) 图逻辑地址与物理地址 (b) (a)逻辑地址(LA) (b)物理地址 Page Page Frame 电子科技大学刘民岷 页式管理及虚拟存储技术 3
电子科技大学 刘民岷 3 2、页式存储管理 页式管理及虚拟存储技术 分页存储管理中,将逻辑地址空间分为大小相同的块,称为 虚页面(Page),通常页面大小为2的整数次幂(512K~4K)。 将物理空间也划分为与页面大小相等的块,称之为存储块或页 框(Page frame)。 连续逻辑地址空间的页面,通过页面地址转换机构可以映射 到不连续的内存块中。 相对页号P 页内地址W 块 号 块内地址 (a) (b) 0 3 4 15 0 3 4 15 图 逻辑地址与物理地址 (a)逻辑地址(LA) (b)物理地址 Page Page Frame
2、页式存储管理(续) 页式存储管理的实现基于如下数据结构(表) 1)存储分块表MBT(Memory Block Table) 表中记录内存中每个存储块的使用情况,其中状态是指存储块是否空 闲整个系统一张表,表目数等于内存块的总数。 块号 作业号 状态 0 os 忙 1 J1 忙 内存分配情况如何? 2 J1 忙 n JK 闲 电子科技大学刘民岷 页式管理及虚拟存储技术 4
电子科技大学 刘民岷 4 2、页式存储管理(续) 页式管理及虚拟存储技术 页式存储管理的实现基于如下数据结构(表)。 1)存储分块表MBT(Memory Block Table) 表中记录内存中每个存储块的使用情况,其中状态是指存储块是否空 闲整个系统一张表,表目数等于内存块的总数。 块号 作业号 状态 0 1 2 … n OS J1 J1 JK 忙 忙 忙 闲 内存分配情况如何?
页式存储管理(续) 页式存储管理的实现基于如下数据结构(表) 2)页表PT(Page Table) 每个运行的作业建立一张页表,表项对应该作业虚拟地址空间的一页。 作业被调度时,将作业对应的页表起始地址及大小装入特定的页表控制 寄存器(PTCR)中。 页号 标志 块号 0 1 2 页在哪个页框? 1 1 2 0 3 1 8 4 0 页面在不在内存 ·0-不在 ·1-在 m 1 17 电子科技大学刘民岷 页式管理及虚拟存储技术 5
电子科技大学 刘民岷 5 2、页式存储管理(续) 页式管理及虚拟存储技术 页式存储管理的实现基于如下数据结构(表)。 2)页表PT(Page Table) 每个运行的作业建立一张页表,表项对应该作业虚拟地址空间的一页。 作业被调度时,将作业对应的页表起始地址及大小装入特定的页表控制 寄存器(PTCR)中。 页号 标志 … 块号 0 1 2 3 4 … m 1 1 0 1 0 … 1 … … … … … … … 2 1 - 8 - … 17 页面在不在内存 • 0-不在 • 1-在 页在哪个页框?
2、页式存储管理(续) 页式存储管理的实现基于如下数据结构(表)。 3)作业表JT(Job Table) 整个系统设置一张作业表,每个作业为一个表项,用于记录该作 业的页表在内存中的起始地址、大小及状态等。 作业号 作业大小 页面始址 状态 J1 16 1025 已占用 J2 18 … 作业的页表在哪儿? 电子科技大学刘民岷 页式管理及虚拟存储技术 6
电子科技大学 刘民岷 6 2、页式存储管理(续) 页式管理及虚拟存储技术 页式存储管理的实现基于如下数据结构(表)。 3)作业表JT(Job Table) 整个系统设置一张作业表,每个作业为一个表项,用于记录该作 业的页表在内存中的起始地址、大小及状态等。 作业号 作业大小 页面始址 状态 J1 J2 … 16 18 … 1025 … … 已占用 … … 作业的页表在哪儿?
3、贡式存储管理的地址转换 作业J1的页表PT 系统作业表JT 1024 页号 标志 外存地址 块号 作业 作业 页面 号 大小 始址 状态 0 1 2 (2) 1 1 1 Ji 46 1024 己店 2 0 用 3 1 8 。。。 4 0 。。。 页表控制 (1) 4) 16 寄存器PTCR 1024 (3) 物理地址 100 块号块内地址 逻辑地址 3 100 页号 页内地址 (5) 电子科技大学刘民岷 页式管理及虚拟存储技术 7
电子科技大学 刘民岷 7 3、页式存储管理的地址转换 页式管理及虚拟存储技术 作业 号 作业 大小 页面 始址 状态 J1 16 1024 已占用 ... ... ... ... 系统作业表JT 页表控制 寄存器PTCR 16 1024 逻辑地址 3 100 页号 页内地址 物理地址 8 100 块号 块内地址 页号 标志 外存地址 块号 0 1 2 1 1 1 2 0 3 1 8 4 0 ... 作业J1的页表PT 1024 (1) (2) (3) (4) (5)
4、缺页中断 缺页中断 访问的页面不 保护中断现场 在内存中啊!? 内存中有 N 调用页面淘汰 空闲块吗? 程序淘汰一页面 Y 该页面读入空闲块 被淘汰页 面修改过? Y 修改对应页表 及存储分块表 将该面写回辅存 恢复中断现场 修改存储分块表 置该块为空闲 执行被中断的指令 页表表项扩展为: 页号块号 标志 页面访问页面修改 存取控制外存地址 电子科技大学刘民岷 页式管理及虚拟存储技术 8
电子科技大学 刘民岷 8 4、缺页中断 页式管理及虚拟存储技术 保护中断现场 该页面读入空闲块 内存中有 空闲块吗? 缺页中断 修改对应页表 及存储分块表 恢复中断现场 执行被中断的指令 调用页面淘汰 程序淘汰一页面 被淘汰页 面修改过? 将该面写回辅存 修改存储分块表 置该块为空闲 Y Y N N • 页表表项扩展为: 页号 块号 标志 页面访问 页面修改 存取控制 外存地址 访问的页面不 在内存中啊!?
页面淘汰算法 内存满了!贡面 无法装入怎么办? 发生缺页中断而内存中又没有空闲块时,需将内存中的一些页 面置换出去一页面淘汰,这是虚拟存储管理的核心问题。 常见的淘汰算法: FFO:淘汰在内存中驻留时间最长的页面。简单,但容易产生 异常。 LRU(Least Recently Used):最近最久不用页面淘汰。依据:页面 如果在本次缺页中断前的最近一段时间内未使用的时间最长,那 么最近的将来也可能不被使用,故淘汰。性能好,但实现困难。 - LFU(Least Frequently Used):最近最少使用页面淘汰。LFU是 LRU的一种近似算法。 0 抖动(Thrashing)一刚被淘汰的页面立即又被调入内存引起 的频繁的内存交换。 电子科技大学刘民岷 页式管理及虚拟存储技术 9
电子科技大学 刘民岷 9 5、页面淘汰算法 页式管理及虚拟存储技术 内存满了!页面 无法装入怎么办? • 发生缺页中断而内存中又没有空闲块时,需将内存中的一些页 面置换出去-页面淘汰,这是虚拟存储管理的核心问题。 • 常见的淘汰算法: – FIFO:淘汰在内存中驻留时间最长的页面。简单,但容易产生 异常。 – LRU(Least Recently Used):最近最久不用页面淘汰。依据:页面 如果在本次缺页中断前的最近一段时间内未使用的时间最长,那 么最近的将来也可能不被使用,故淘汰。性能好,但实现困难。 – LFU(Least Frequently Used):最近最少使用页面淘汰。LFU是 LRU的一种近似算法。 • 抖动(Thrashing)——刚被淘汰的页面立即又被调入内存引起 的频繁的内存交换