56星座屋
当前位置: 首页 星座百科

虚拟内存是什么怎么实现(什么是虚拟内存呢)

时间:2023-05-30 作者: 小编 阅读量: 3 栏目名: 星座百科

在习惯说法中,DRAM缓存不命中,我们称为缺页。下面是完成却也异常处理的示意图:在虚拟内存的说法中,块被称为页,在磁盘和内存之间传送页的活动叫做页面调度。页从磁盘换入DRAM和从DRAM换出磁盘,一直到最后时刻,也就是当不命中发生时,才换入页面的这种策略,称为按需页面调度。使得程序性能下降。将一组连续的虚拟页映射到任意一个文件中的任意位置表示法称为内存映射。

前言:存为了更加高效并且少出错,现代操作系统提供了一种对主存的抽象概念,叫做虚拟内存。虚拟内存是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互,他为每个进程提供了一个大的,一致和私有的地址空间,虚拟内存提供三个能力:它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存和磁盘之间来回传送数据,通过这种方式高效使用了主存他为每个进程提供了一致的地址空间,从而简化了内存管理它保护了每个进程的地址空间不被其他进程破坏。

物理和虚拟寻址

计算机主存被组织成一个由M个连续的字节大小的单元组成的数组。每字节都有一个唯一的物理地址,每一个字节的地址为0,接下来的字节地址为1,在下一个为2,以此类推,给定这种简单的结构,CPU访问内存的最自然的方式就是使用物理地址,我们把这种方式称为物理寻址。

现在操作系统都是用虚拟寻址的寻址形式。CPU通过生成一个虚拟地址来访问内存,这个虚拟地址在送到内存之前会被转换成适当的物理地址,将虚拟地址转换成物理地址这一过程成为地址翻译。需要硬件系统个操作系统之间的紧密配合,CPU芯片上的叫做内存管理单元的专用硬件,利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容由操作系统管理。

地址空间:地址空间是一个由非负整数组成的有序集合。一个地址空间大小是由表示最大地址所需要的位数描述的,例如一个包含N=2^n个地址的虚拟地址空间就叫做一个n位地址空间。现在操作系统通常支持32位或者64位寻地址空间。

地址空间区分了数据对象和他们的属性,一旦认识到这种区别,我们就可以将其推广,允许每个数据对象有多个独立的地址空间,其中每个地址都选自不同的地址空间,这是虚拟内存的基本思想。主存中的每个字节都以一个选自虚拟地址空间和一个选自物理地址空间的物理地址。

虚拟内存作为缓存的工具:

虚拟内存被组织成一个有存放在磁盘上的N个连续的字节大小的单元组成的数组,每字节都有唯一的虚拟地址,作为数组的索引,磁盘上的内容被缓存在主存中,和存储器层次结构中的其他缓存一样,磁盘上的数据被分割成块,这些块被分割成磁盘和主存之间的传输单元,VM系统通过将虚拟内存分割成称为虚拟页的大小固定的块来处理这个问题,每个虚拟页的大小为P=2^p字节,类似的,物理内存被分割成物理页,大小为p字节。被称为页帧。

在任意时刻,虚拟页面都分为三个不相交的子集:

  1. 未分配的:VM系统还未分配的页,未分配的块没有任何数据和他们相关联,因此,也就不占用任何磁盘空间。
  2. 缓存的:当前已经缓存在物理内存中的已经分配的页
  3. 为缓存的:未缓存到物理内存中已分配的页

DRAM缓存的组织结构:

SRAM为CPU和主存之间的L1,L2,L3高速缓存DRAM表示虚拟内存系统的缓存,他在主存中缓存虚拟页DRAM要比SRAM慢10倍,而磁盘要比DRAM慢大约100000倍,因此DRAM不命中比起SRAM不命中要昂贵的多。因为DRAM缓存不命中是由磁盘来服务的。

在习惯说法中,DRAM缓存不命中,我们称为缺页。

一次缺页的处理过程:

如上图所示:CPU引用了vp3一个字,vp3并未缓存在内存中(DRAM)中,地址翻译硬件会从内存中读取PTE3,从有效位推断vp3未被缓存,并触发一个缺页异常,缺页异常调用内核中的缺页异常处理程序,该程序会选择一个牺牲页,在此例中就是vp4,如果vp4被修改了,那么内核就会将其复制回磁盘,无论哪种情况,内核都会修改vp4的页表条目PTE4,反应vp4不再缓存在主存中这一事实。

接下来,内核从磁盘复制vp3到内存中的原来vp4的位置,更新PTE3,随后返回,当异常处理程序返回时,他会重新启动导致缺页的指令,该指令会将导致缺页的虚拟地址发送给地址翻译硬件,现在vp3已经被缓存到主存中了,那么页命中也能由地址翻译硬件处理了。

下面是完成却也异常处理的示意图:

在虚拟内存的说法中,块被称为页,在磁盘和内存之间传送页的活动叫做页面调度。页从磁盘换入DRAM和从DRAM换出磁盘,一直到最后时刻,也就是当不命中发生时,才换入页面的这种策略,称为按需页面调度。调用malloc会使磁盘新的页面在磁盘上产生。

局部性

尽管在整个运行期间程序引用的不同页面的总数可能超出物理内存总大小,但是局部性原则保证了在任意时刻,程序趋向在一个较小活动页面上工作,这个集合叫做工作集,或者常驻集合,在初始开销,将工作集页面调度到主存之后,接下来对这个工作集的引用将导致命中,而不会产生额外开销。只要程序有好的时间局部性,虚拟内存系统就能工作相当好,如果工作集的大小超出了物理内存的大小,程序将产生一种不幸的状态,叫做抖动,这个时候页面会被不停的换进与换出。使得程序性能下降。

按需页面调度和独立的虚拟地址空间的结合,对系统中内存的使用和管理造成了深远的影响,VM简化了连接与加载,代码和数据共享,以及应用程序的内存分配。

简化链接:独立的地址空间允许每个进程的内存映像使用相同的基本格式,而不管代码和数据实际存放在物理内存何处。

简化加载:虚拟内存还使得容易向内存中加载可执行文件和共享对象文件。

将一组连续的虚拟页映射到任意一个文件中的任意位置表示法称为内存映射。

简化共享:独立的地址空间为操作系统提供了一个管理用户进程和操作系统的自身之间共享的一致机制。一般而言,每个进程都有自己私有的代码、数据、堆以及栈区,是不和其他进程共享的,在这种情况下,操作系统创建页表,将相应的虚拟页映射到不连续的物理页面。

在一些情况下,还是需要进程来共享数据和代码,比如每个进程必须调用相同的操作系统内核代码,而每个C程序都会调用C标准库中的程序,操作系统通过将不同进程中适当的页面映射到相同的物理页面,从而安排多个进程共享这部分代码的副本,而不是每个进程单独拥有内核或者C标准库。

简化内存分配:虚拟内存为用户提供了简化内存分配的机制,当一个运行在用户进程中的程序要求分配额外的堆空间的话,操作系统分配相应适当的数字个连续个虚拟内存页面,并且将它们映射到物理内存中任意位置的k个任意的物理页面,由于页表的工作方式,没必要分配连续的物理页面,而是随机分散在物理内存中。

虚拟内存作为内存保护的工具:

现代计算机系统必须为操作系统提供手段来控制对内存系统的访问,不应该允许一个进程修改他的只读代码段,而且也不用改允许他读或者修改任何内核中的代码或者数据结构。不应该允许他读或者写其他进程的私有内存,并且不允许他修改与其他进程共享的虚拟页面,除非共享者都显式地允许他这么做。

每次CPU生成一个地址时,地址翻译硬件都会读一个PTE,所以通过在PTE上添加一些额外的许可位来控制对一个虚拟页面的访问十分简单。

更多LINUX内核免费文档 面试资料教程视频资料关注 私信1自行领取

,
    推荐阅读
  • 形成酸雨的主要气体是什么(形成酸雨的主要气体)

    以下内容大家不妨参考一二希望能帮到您!形成酸雨的主要气体是什么酸雨是指PH小于5.6的雨雪或其他形式的降水,形成的主要气体有二氧化硫、三氧化硫、硫化氢、二氧化氮。酸雨主要是人为的向大气中排放大量酸性物质所造成的。酸雨又分硝酸型酸雨和硫酸型酸雨。

  • 木棉花的花语是什么(木棉花的意义)

    接下来我们就一起去了解一下吧!珍惜眼前的幸福,珍惜身边的人给他们快乐与幸福。它的花期通常在3月或者4月份,在这一段时间盛开,而传说中四月的第十一天,是木棉花盛开的日子,所以4月11被定为木棉花的日子。

  • 炒凉皮不碎技巧(炒凉皮不碎有什么技巧)

    以下内容大家不妨参考一二希望能帮到您!炒凉皮不碎技巧炒凉皮不碎技巧:就是在做凉皮时不能炒太久,变软会失去筋度。胡萝卜切丝,蒜薹切段,葱切花,猪肉切丝,大蒜拍扁。成品凉皮一张张卷起切粗条,抖散备用。生抽,白糖,盐,鸡精,醋,胡椒粉调成汁备用。热锅倒适量食用油烧热加入大蒜,肉丝翻炒至金黄,加入胡萝卜丝和蒜薹炒熟,凉皮翻炒均匀后随即淋入调好的汁儿翻炒均匀。

  • 近几年灭绝的鱼(瞭望在长江源寻鱼)

    长江被誉为我国淡水渔业的摇篮、鱼类基因的宝库。据青海省渔业部门统计,长江流域青海段分布有土著鱼类21种。因此,严格意义上长江源的关键鱼类指的是裂腹鱼中的小头裸裂尻鱼。2019年,李伟带领团队参加长江源科考时,将小头裸裂尻鱼列为长江源鱼类研究的代表对象。2019年4月,科考小组五个人,两台车,开始了沿河寻觅之旅。“全球平均气温上升已是科学界的共识,位于青藏高原的长江源是全球气候变化的敏感区。”科考发现,江源地区

  • 鹧鸪在什么时候季节鸣叫(鹧鸪的孵化期有多长)

    鹧鸪在什么时候季节鸣叫鹧鸪一般会在繁殖季节鸣叫,繁殖期为3-6月,3-4月间开始求偶交配。求偶期间鸣叫更为频繁,常在山岩、树桩、灌木或乔木枝上鸣叫,尤以黎明和黄昏时更甚,往往是一鸟先鸣叫,其他雄鸟一起跟随,此起彼伏。鹧鸪的孵化期在21天左右,雏鸟出壳后不久即可跟随亲鸟活动。鹧鸪的繁殖期为每年的3-6月,3-4月间开始求偶交配,每窝产卵3-6枚,多时可达8枚,卵为椭圆形或梨形,颜色为淡皮黄色至黄褐色。

  • 秋天的诗词(这些都是关于秋天的诗句)

    迢迢新秋夕,亭亭月将圆《戊申岁六月中遇火》,今天小编就来说说关于秋天的诗词?《戊申岁六月中遇火》自古逢秋悲寂寥,我言秋日胜春朝。《秋词》是处红衰翠减,苒苒物华休。惟有长江水,无语东流。宋·柳永《八声甘州》落时西风时候,人共青山都瘦。《昭君怨》雨色秋来寒,风严清江爽。《酬裴侍御对雨感时见赠》秋声万户竹,寒色五陵松。唐·李颀《望秦川》秋色无远近,出门尽寒山。宋·苏轼《九日次韵王巩》

  • 广州有几种车牌(广州车牌你有吗)

    在广州的普通上班族,有房贷还想拥有一辆车,已经不容易了。但有车想让个广州牌,那更是难上加难,再加之限行,参与摇号,竞价的人是越来越多,那中标的机会更是渺茫了!截止日期是8日24时止。9月拟配置的中小客车增量指标共16313个,是这样分配的:1.以摇号方式向单位和个人配置节能车增量指标7285个,其中,单位指标100个,个人指标7185个。

  • qq注销账号有哪几个步骤(QQ将开注销帐号功能)

    1999年2月10日,一个名为OICQ、只有几百K的软件正式上线。当时,腾讯方面表示,这是QQ团队对帐号注销功能的灰度测试。网友截图出于安全考虑,也有网友表示支持有人说,QQ不推出注销服务有自己的考虑,这是为了防止用户QQ密码被他人知道后恶意注销,给用户带来无法挽回的损失。腾讯2018年第三季度财报显示,QQ智能终端月活跃账户同比增长6.9%至6.979亿。

  • 高跟鞋不合脚怎么办(穿高跟鞋不合脚怎么办)

    4、合理利用袜子,如果不喜欢垫各种鞋垫的朋友,可以穿一双船袜,再穿高跟鞋,那样既不影响穿着效果,也不影响美观,也是比较简单和实用的方法。

  • 年四旺名字打分104分 年四旺事迹

    文章目录:一、年四旺相关名字打分113二、年四旺相关名字评分115三、年四旺相关名字推荐四、年四旺相关名字大全五、其他人还看了一、年四旺相关名字打分113年灯石志明年橘纪红兵武尊道后书法孔多塞年贷款孙敬媛年立秋里蓝业珍冯景华年见朱诗词林于思冯桂年粤日林格孟昭毅年家薛邑马布鱼鲁初雪苏沫沫卜庆中年上年掌柜秦源达刘登龙严学锋国韵酒年线高成江裘梦年维泗红沙日年周王克斌王翔千毛淑红龙威信李万和年神范小慧王大