办公室工作绩效 网站建设,做平面设计用什么网站素材多,网站站点结构图怎么做,美橙互联 网站备案拍照虚拟存储器
写在前面#xff1a;虚拟存储器#xff08;Virtual Memory#xff09;是计算机系统中用于管理内存的一种技术#xff0c;它通过虚拟地址空间为进程提供比物理内存更大的地址空间#xff0c;同时实现内存保护和进程隔离。
在408整个体系中计组和操作系统都有涉…虚拟存储器
写在前面虚拟存储器Virtual Memory是计算机系统中用于管理内存的一种技术它通过虚拟地址空间为进程提供比物理内存更大的地址空间同时实现内存保护和进程隔离。
在408整个体系中计组和操作系统都有涉及但是我希望同学们在学习这部分知识的时候一定要在学习操作系统的时候去学习至少你要先搞清楚基本分页存储管理的思想否则你是没办法深入理解虚拟存储器的不理解原理就更不要谈做对题目了我希望大家不要考记忆、熟练度去做题而需要真正的尝试去理解它掌握本质才能以不变应万变。这也是我做这个“大观”视频的初衷。
基本分页存储管理
虚拟存储器的核心就是通过地址转换机制将程序使用的虚拟地址映射到实际的物理内存地址我们需要先理解基本分页存储管理的思想这一块是操作系统内存管理的内容是虚拟存储器的一种实现方式。这里请和Cache与主存交换数据的方式类比学习因为思想都是一样的没有搞明白的Cache的原理的一定要去看一下我的Cache“大观”那个视频我这里默认大家已经掌握了Cache的思想。那么我们进入正题。
引入当一个程序被装入内存的时候不是把它整块装入一个连续的区域那么是怎么分配的呢先来基本原理涉及的概念不懂原理不要做题这也是为什么我给基础概念三颗星的原因。
重要概念⭐⭐⭐
1重要概念理解 物理页面物理内存划分为很多大小固定的存储块类比Cache块 逻辑页面把逻辑页面划分为大小相同的快和物理页面是一样大的因此我们才能以页面为单位来分配。我们再来回顾一下CacheCache块和主存块的大小也是一样大的 页与块这里大家初学肯定会有这个疑惑我们教材书一会说页一会说块到底怎么分辨 Cache块是Cache与主存之间交换信息的单位大小一般为32B页是主存与外存之间交换信息的单位大小一般为4KB也就是一个页包含了多个块 逻辑地址的划分请务必记住逻辑地址被划分为两部分高位部分为页号低位部分为页内地址这是我们做题的逻辑基点同样的我们又要和Cache联系起来学习还记得Cache映射的主存地址是怎么划分的吗是不是也是把高位划分为主存块号低位为块内地址 页表在主存内每一个进程都有一个页表我们把页表理解成一个大的数组它的本质就是进行逻辑页号和物理页号之间的映射一个逻辑页号对应一个物理页号也就是我们把逻辑地址转成物理地址的必要工具后面会详细讲解映射方法请看王道教材的这个图 可以看出页表就是记录了逻辑页虚页和物理页之前的转换从而可以定位到主存的页没别的了
地址映射⭐⭐
1定义所谓映射就是把虚拟地址映射成物理地址分为以下步骤 给出一个逻辑地址我们先通过上述逻辑地址划分方式找到逻辑页面号与页内的偏移地址 我们拿到了逻辑页面号就去查页表找到它的物理号也有的教材叫页框号 根据物理号与偏移地址拼起来就得到了最终我们需要的物理地址 怎么拼如图所示就是把页号写前面页内地址偏移量写在后面很简单 这就是计算题的方法理解了上面我说的那么这类题目对于你来说就是洒洒水了。
2具有快表TLB的变换
我们想一下我们之前只有页表的时候是不是必须要去访存因为页表在内存里那么我们是否可以扩展一下思路把页表的内容存储在一个更快更牛逼的存储器里因此我们的快表就应运而生了。
CPU就在Cache里去设置了一个高速存储器来存储页表的部分内容TLB采用相联存储器组成按照内容访问速度极快为什么是部分不是全部毕竟他很快那么他就要牺牲一些东西也就变小了一些
有了TLB我们就可以避免一次访存而优先去快表中找到物理页号从而大大减少了我们的访存时间、提高我们取出数据的效率
有了上面的知识我们就能引出虚拟页式存储管理到底是个啥了
虚拟页式存储管理
1核心概念虚拟页式存储管理就是在页式管理的基础上增加了请求调页等一些功能这里大家就能明白了为什么我要先将本应该在操作系统里学的知识了吧没有页式存储管理的知识你根本没法搞明白什么是虚拟存储管理
2核心操作在程序运行过程中如果我们CPU发出的指令想要访问的数据不在内存里面我们就发出一个缺页中断请求系统就把外存中的相应页面给调进入到内存这就是请求调页
3有同学可能会问为什么会发生缺页因为逻辑地址是远大于物理内存地址的不然我们也没必要引出虚拟存储器了那么带来的结果必然就是只能把部分常用的页面装入内存而不能全部装进去那就会出现缺页的场景了。
4MMU我们在做题的时候可能会碰到MMU这个概念它的中文名叫做内存管理单元是一个硬件**它的主要功能就是把虚拟地址映射出物理地址。**如果页面不在内存里MMU就发出一个缺页中断让操作系统去处理这个缺页中断。至于一些太过于细节性的概念比如页表项去判断页面是否在内存那些东西就需要同学们自己去看一下基础课了我的目的就是带大家串联知识达到一个深入理解的效果而这个目标是建立在你有基础的前提上的还有对于Cache有问题的同学一定要去我主页看一下那个视频。
总结一下CPU发出一个虚拟地址首先由MMU进行虚拟地址到物理地址的转换这期间可能会涉及缺页处理然后再由处理Cache的硬件根据这个物理地址去访问物理地址和Cache的映射如果Cache中没有找到就要进行Cache缺失的处理然后去访存拿到数据。请看下图 这张图就是总结了我上面所讲的所有东西了好好理解清楚它那么你对于带有虚拟存储器和Cache的系统就已经很透彻了之后就是通过习题的训练来加深自己的理解。
题目讲解 视频跳转【计组虚拟存储器】带你狠狠拿捏虚拟存储器不再害怕408大题