计组 - 存储器之虚拟存储器

1. 虚拟存储器的基本概念

虚拟存储器的基本概念

目的:使得系统中尽量多地存储用户程序,间接扩大主存的容量;

虚拟存储器考虑的问题:

  • 映射:磁盘的页面存入主存哪一个页框中
  • 搜索:如何确定页面已经被装入到主存,以及装入到哪一个页框中
  • 替换:当主存满的时候,或者进程A的可装入的页框满啦,该替换哪一个页面
  • 写回:如何修改主存的实页时,同时确保磁盘的虚页数据能够一致
    ---- 实际上,Cache技术也有上面4个技术问题,点都是相通的。

1.1 早期分页方式的概念与实现

早期分页方式的概念与实现
note:这里描述的是早期分页,早期分页的页框只有一个,因此实现逻辑简单。

1.2 分页与按需调页

基本概念:页框、页、页表、逻辑地址、物理地址
分页
按需调页:指的是只有在进程A需要使用到某个页面内的指令或数据时时,才会将对应的页面加载到主存的某一个页框中,并在页表中记录逻辑和物理地址的映射关系;不会将进程附近的页面也加载进来。

1.3 Linux在x86上的虚拟地址空间

Linux在x86上的虚拟地址空间
每个进程的虚拟地址空间

2. 虚拟存储器的实现方式

2.1 分页虚拟存储器

分页系统在这里插入图片描述
页表结构
在这里插入图片描述
在这里插入图片描述

页表过多过大的问题
在这里插入图片描述
解决页表过大的问题
解决页表过大的问题*

2.1.1 逻辑地址转为物理地址的过程

虚拟地址组成、物理地址组成、页表基址寄存器、页表项结构、转换机构MMU、
 逻辑地址转为物理地址的过程述
信息访问中可能出现的异常情况
异常

2.1.2 快表

什么是快表?
快表是用来减少到主存中访问页表的访存次数
在这里插入图片描述TLB的页表项 = tag + 主存页表项 【需要注意】为什么TLB的页表项需要在主存页表项上额外增加一个Tag?

答案:每个进程拥有一个快表,里面存放的是进程经常需要查询的页表项,而不是整个进程的页表,对于主存中的页表而言,虚页号就是页表中对应页表项的索引,而在快表由于快表中的页表项失去意义,因此需要将主存页表项对应的虚页号页存储起来,即存储在Tag中,用来做标记;
同样得,类似Cache,主存页表的页表项映射到Cache中的快表中,有全相连映射、直接映射、组映射等等方式哦
TLB-加快地址转换的措施

2.1.3 TLB、页表、Cache的三种缺失组合

首先需要认识三种缺失
TLB加入到CPU的访存中TLB的实现
缺失组合

2.1.4 CPU访存过程

CPU访存的流程图

2.1.5 分页存储系统的特点

分页存储的特点

2.2 分段虚拟存储器

2.2.1 分段虚拟存储器的实现要点

分段虚拟存储器

2.2.2 分段虚拟存储器的地址变换

地址印象
地址变换

2.2.3 分段存储系统的特点

分段存储系统的特点
相比于分页虚拟存储器,更加灵活,但是容易导致主存中出现许多空余的零碎空间,段内由于是灵活的段长,所以段内没有零碎地址,主存空间容易有零碎地址
分页虚拟存储器,保证主存空间切割为相同大小的叶匡,因此不存在主存空间的零碎地址,而程序的最后一页会存在页内零碎地址。

2.3 段页式存储器

2.3.1 段页式存储器的基本思想

  • 段页式存储器是先分段再分页,主存空间只分页;
  • 逻辑地址包含 段地址、页地址、页内偏移量
  • 二级查询:一级段表、二级页表 = 每个段都有各自的页表在这里插入图片描述

2.3.2 段页式存储器的地址变换

段页式存储器的地址变换

3. 存储保护

3.1 存储保护的基本概念

什么是存储保护? -> 只有在多道程序中相互干扰下
知道最基本的保护措施 ->
基本概念

3.2 存储保护的硬件支持

硬件支持

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机的虚拟存储器是将较大的程序分割成多个较小的部分,只将其中一部分存放在内存中,其余部分则存储在硬盘等外部存储设备中,需要时再调入内存中进行执行,以达到内存空间利用率最大化和程序执行效率最优化的目的。虚拟存储器的工作原理可以分为以下几个步骤: 1. 程序被分成多个虚拟页:将程序按照固定大小进行划分,每个部分称为一个虚拟页,每个虚拟页的大小与计算机的页大小相同。 2. 虚拟页被映射到物理页:虚拟页与物理内存之间进行映射,每个虚拟页对应一块物理页,物理页的大小与虚拟页的大小相同。 3. 虚拟页被调入内存:当程序需要访问某个虚拟页时,若该虚拟页尚未调入内存,则操作系统将其从外部存储设备中读入内存。 4. 硬件提供地址转换:当程序访问某个虚拟地址时,硬件通过虚拟地址与物理地址之间的映射关系,将虚拟地址转换为物理地址。 5. 调页机制:当内存中没有足够的空间存放新的虚拟页时,操作系统会选择一部分已经在内存中但长时间未被使用的虚拟页将其换出,为新的虚拟页腾出空间。 总之,虚拟存储器通过将程序分割成多个虚拟页,将部分虚拟页存储在内存中,其余部分存储在外部存储设备中,通过地址映射和调页机制,实现了程序的透明访问,并且最大限度地利用了内存空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值