LaTeX 渲染有问题。将就着看吧。
虚拟存储器
请求分页:每次访问仅将当前需要的页面调入主存,而其他不活跃的页面放在外存磁盘上
虚拟地址
# 分区方式
将主存分为两大区域
系统区:固定的地址范围内,存放操作系统
用户区:存放所有用户程序
分区方式
简单固定分区:用户区划分成长度不等的固定长的分区
可变长分区:用户区按每个任务所需要的内存大小进行分配
# 分页方式
把主存分成固定长且比较小的存储块,称为页框(page frame)
每个任务也被划分成固定长的程序块,称为页(page)
将页装入页框中,且无需采用连续的页框来存放一个任务中所有的页
逻辑地址:指令中的地址
物理地址:实际主存地址
# 虚拟存储器
基本思想
• 请求分页:仅将当前需要的的页调入主存
・通过硬件将逻辑地址转换为物理地址
• 未命中时在主存和硬盘之间交换信息
类型
• 分页式虚拟存储器
• 分段式虚拟存储器
• 段页式虚拟存储器
映射算法
・全相联映射
写策略
・写回
# 分页式虚拟存储器
主存储器和虚拟地址空间都被划分为大小相等的页面
虚拟页(virtual page,VP)/ 逻辑页(logical page):虚拟地址空间中的页面
物理页(physical page,PP)/ 页框(page frame):主存空间中的页面
页表:
页表中包含了所有虚拟页的信息,包括虚拟页的存放位置、装入位(valid)、修改位(dirty)、存取权限位等等。保存在主存中。
** 虚拟地址:** 虚拟页号 + 页内偏移量
快表(TLB):
页表的使用增加了主存的访问次数
为了减少访存次数,把页表中最活跃的几个页表项复制到 ** 高速缓存(Cache)** 中
** 映射:** 关联映射,组关联映射
替换:随机替换
主存中的页表相应地称之为 “慢表”
注:现在的计算机中,TLB 和 Cache 在物理上是两个存储器
根据页表中记录的物理页存放位置,可以将虚拟地址转化为物理地址
TLB:主存中比较活跃的页,TLB 命中,则主存中一定有这个页
页表:主存中的所有页,页表命中,则主存中一定有这个页。
那么实际上 TLB 和页表是包含关系
cache 和主存是包含关系
TLB 和页表是存虚拟页描述信息的,并没有实际 data
TLB 相对于页表,有点像 cache 相对于主存
TLB 未命中但页表命中,需要更新 TLB
TLB 和页表都未命中,两个都需要更新
# 分段式虚拟存储器
将程序和数据分成不同长度的段,将所需的段加载到主存中
虚拟地址:段号 + 段内偏移量
# 段页式虚拟存储器
将程序和数据分段,段内再进行分页
每个分段都有一个页表
虚拟地址
段号 + 页号 + 页内偏移量