虚拟内存(Virtual Memory)

news/2024/12/23 0:28:33/

文章目录

    • 1、什么是虚拟内存(Virtual Memory)
    • 2、局部性原理
    • 3、虚拟存储器
    • 4、虚拟内存的技术实现
      • 4.1 虚拟内存的实现有三种方式
        • 4.1.1 请求分页存储管理
        • 4.1.2 请求分段存储管理
        • 4.1.3 请求段页式存储管理
      • 4.2 请求分页与分页存储管理,两者有何异同
    • 5、页面置换算法

1、什么是虚拟内存(Virtual Memory)

  • 虚拟内存是计算机系统内存管理的一种技术,我们可以手动设置自己电脑的虚拟内存
  • 不要单纯认为虚拟内存只是“使用硬盘空间来扩展内存“的技术。虚拟内存的重要意义是它定义了一个连续的虚拟地址空间,并且 把内存扩展到硬盘空间

2、局部性原理

局部性原理是虚拟内存技术的基础,正是因为程序运行具有局部性原理,才可以只装入部分程序到内存就开始运行。局部性原理表现在以下两个方面:

  • 时间局部性 :如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型是由于程序中存在着大量的循环操作
  • 空间局部性 :一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。

时间局部性是通过将近来使用的指令和数据保存到高速缓存存储器中,并使用高速缓存的层次结构实现。空间局部性通常是使用较大的高速缓存,并将预取机制集成到高速缓存控制逻辑中实现。虚拟内存技术实际上就是建立了 “内存一外存”的两级存储器结构,利用局部性原理实现髙速缓存。

3、虚拟存储器

虚拟存储器又叫做虚拟内存,都是 Virtual Memory 的翻译,属于同一个概念

基于局部性原理,在程序装入时,可以将程序的一部分装入内存,而将其他部分留在外存,就可以启动程序执行。由于外存往往比内存大很多,所以我们运行的软件的内存大小实际上是可以比计算机系统实际的内存大小大的。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的内容换到外存上,从而腾出空间存放将要调入内存的信息。这样,计算机好像为用户提供了一个比实际内存大的多的存储器——虚拟存储器

实际上,我觉得虚拟内存同样是一种时间换空间的策略,你用 CPU 的计算时间,页的调入调出花费的时间,换来了一个虚拟的、更大的空间来支持程序的运行。

4、虚拟内存的技术实现

虚拟内存的实现需要建立在离散分配的内存管理方式的基础上。

4.1 虚拟内存的实现有三种方式

4.1.1 请求分页存储管理

  • 请求分页存储管理 建立在分页管理之上,为了支持虚拟存储器功能而增加了请求调页功能页面置换功能请求分页是目前最常用的一种实现虚拟存储器的方法
  • 请求分页存储管理系统中,在作业开始运行之前,装入当前要执行的部分页面,即可运行;假如在作业运行的过程中发现要访问的页面不在内存,则由处理器通知操作系统按照对应的页面置换算法将相应的页面调入到主存,同时操作系统也可以将暂时不用的页面置换到外存中。

4.1.2 请求分段存储管理

  • 请求分段存储管理建立在分段存储管理之上,为了支持虚拟存储器功能而增加了请求调段功能分段置换功能
  • 请求分段储存管理方式就如同请求分页储存管理方式一样,在作业开始运行之前,装入当前要执行的部分段,即可运行;在执行过程中,可使用请求调段功能,调入要访问但又不在内存的程序段;当内存空间已满,而又需要装入新的段时,根据置换功能适当调出某个段,以便腾出空间而装入新的段。

4.1.3 请求段页式存储管理

4.2 请求分页与分页存储管理,两者有何异同

  • 请求分页存储管理建立在分页管理之上。他们的根本区别是是否将程序全部所需的全部地址空间都装入主存
    • 请求分页存储管理不要求将作业全部地址空间同时装入主存,基于这一点,请求分页存储管理可以提供虚存
    • 分页存储管理要求将作业全部地址空间同时装入主存,却不能提供虚存。

5、页面置换算法

  • 地址映射过程中,若在内存中发现所要访问的页面不在内存中,则发生缺页中断 。

    缺页中断 就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。

  • 如果当前内存中并没有空闲的空间,当发生缺页中断时,操作系统就必须在内存中选择一个页面将其移出内存,以便为即将调入的页面让出空间。用来选择淘汰哪一页的规则叫做页面置换算法

    • OPT 页面置换算法(最佳页面置换算法) :最佳(Optimal, OPT)置换算法所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若千页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现。一般作为衡量其他置换算法的方法。
    • FIFO(First In First Out) 页面置换算法(先进先出页面置换算法) : 总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。
    • LRU (Least Recently Used)页面置换算法(最近最久未使用页面置换算法) :LRU算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 T,当须淘汰一个页面时,选择现有页面中其 T 值最大的,即最近最久未使用的页面予以淘汰。
    • LFU (Least Frequently Used)页面置换算法(最少使用页面置换算法) : 该置换算法选择在之前时期使用最少的页面作为淘汰页。

http://www.ppmy.cn/news/421289.html

相关文章

虚拟内存解决内存不够

内存不够最好的办法是,再买一块内存加到电脑里。 但是,买不了内存的情况下,怎么办 !? 还是再努努力协调一下,买一块吧, 可是但是可但是,实在没有办法的情况下,怎么办 !? 真的是没有办法的…

记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死

目录 环境:Win10 , 不是 linux 首先我遇见的第一个问题是: No route info of this topic 问题原因: PS: 64位系统环境下,如果软件在安装时安装路径默认c:\progarmfiles即为64位,默认c:\pr…

挖掘用户真实需求 避坑5大技巧

1、用户总是“说一套 做一套” 在进行需求市场调研时,我们问1000个用户,是否想要黄金,几乎所有的用户都是肯定的回答。如果我们以此认定,黄金是用户的真实需求会过于草率。 我们需继续追问用户:买黄金做什么&#xff1…

离散数学题目收集整理练习(期末过关进度40%)

✨博主:命运之光 🦄专栏:离散数学考前复习(知识点题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 ✨博主的其他文章:点击…

笔记本计算机作文,我的笔记本电脑作文600字

我有一个漂亮的电脑,它不仅外观精美,而且功能齐全,这可是我九岁生日时爸爸送给我的。 我的笔记本电脑是粉色的,表面上贴着一张张美丽的贴画,看起来真是漂亮极了,打开它之后,你就会看到粉色的世界…

十大笔记本品牌型号命名规则【华硕】

华硕笔记本的型号命名规则 在所有笔记本品牌中,华硕的型号命名方式可能是最冗长、而且最难于记忆的,但与此同时,它也是最有参考价值的,因为每个型号都会对应一款固定配置的机型。 有些品牌的笔记本是型号不变,但不知什…

设计要用计算机吗,作为设计师 你需要这样的笔记本电脑

在选购笔记本电脑这件事上,估计很多小伙伴都比较头疼,尤其是设计师,因为设计师本与普通文职工作不同,他们经常需要处理尺寸过大的图片以及视频剪辑的工作需求,所以他们对电脑的硬件性能、高分屏、广色域屏和优质的外观…

计算机专业大一有必要买电脑吗,大一有必要买电脑吗 适合女生用的笔记本电脑...

大一有必要买电脑吗,适合女生的 笔记本电脑有哪些,小编整理了相关信息,希望会对大家有所帮助! 大一有必要买电脑吗 首先我想说的是,其实如果不是你的专业需求特别强的话,一般大一用电脑是没有这个必要的。 …