什么是虚拟内存?
虚拟内存是一种存储机制,可为用户提供一个拥有很大主内存的错觉。通过将辅助存储器的一部分作为主存储器来完成。在虚拟内存中,用户可以存储比可用主内存更大的进程。
因此,操作系统不是在主存储器中加载一个长进程,而是在主存储器中加载了一个以上进程的各个部分。虚拟内存主要通过需求分页和需求分段来实现。
为什么需要虚拟内存?
以下是使用虚拟内存的原因:
- 只要您的计算机的物理内存中没有空间,它就会将需要记住的内容作为虚拟内存写入交换文件中的硬盘。
- 如果运行Windows的计算机需要更多的内存/ RAM,然后又安装在系统中,则它将使用硬盘驱动器的一小部分。
虚拟内存如何工作?
在现代世界中,虚拟内存如今已变得相当普遍。每当需要将某些页面加载到主内存中以执行该内存,而该内存对于许多页面均不可用时,将使用它。
因此,在那种情况下,OS会搜索最近使用的最少内存或未引用到辅助内存中的RAM空间,而不是阻止页面进入主内存,以在其中存储新页面。主内存。
让我们借助一个示例来了解虚拟内存管理。
例如:
假设操作系统需要300 MB的内存来存储所有正在运行的程序。但是,RAM上目前仅存储50 MB的可用物理内存。
- 然后,操作系统将设置250 MB的虚拟内存,并使用称为虚拟内存管理器(VMM)的程序来管理该250 MB。
- 因此,在这种情况下,VMM将在硬盘上创建一个大小为250 MB的文件,以存储所需的额外内存。
- 现在,即使只有50 MB的可用空间,操作系统也会考虑将300 MB的实际内存存储在RAM中,从而继续对内存进行寻址。
- 即使只有50 MB的实际内存空间可用,VMM的任务还是管理300 MB的内存。
什么是按需分页?
需求分页机制与具有交换功能的分页系统非常相似,在交换系统中,存储在辅助存储器和页面中的进程仅按需加载,而不是事先加载。
因此,发生上下文切换时,操作系统永远不会将磁盘上的任何旧程序页面或新程序的任何页面复制到主存储器中。相反,它将在加载第一页后开始执行新程序,并获取被引用的程序页。
在程序执行期间,如果程序引用了由于交换而可能在主内存中不可用的页面,则处理器会将其视为无效的内存引用。这是因为页面错误和传输会将控制权从程序发送回操作系统,这需要将页面存储回内存。
页面替换方法的类型
这是一些重要的页面替换方法
- 先进先出
- 最佳算法
- LRU页面更换
FIFO页面替换
FIFO(先进先出)是一种简单的实现方法。在这种方法中,内存选择页面的替换时间已经在内存的虚拟地址中时间最长。
特征:
- 每当加载新页面时,内存中最近进入的页面都会被删除。因此,很容易决定需要删除哪个页面,因为其标识号始终位于FIFO堆栈中。
- 主存储器中最早的页面是应首先选择要替换的页面。
最佳算法
最佳页面替换方法选择该页面进行替换,到下一次参考的时间最长。
特征:
- 最佳算法可导致最少的页面错误。该算法难以实现。
- 最佳页面替换算法方法具有所有算法中最低的页面错误率。该算法存在,应称为MIN或OPT。
- 替换较长时间不使用的页面。它仅使用需要使用页面的时间。
LRU页面更换
LRU的完整格式是“最近最少使用”页面。此方法可帮助OS在短时间内查找页面使用情况。该算法应通过将计数器与偶数页相关联来实现。
它是如何工作的?
- 主内存中未使用最长时间的页面是将被选择替换的页面。
- 易于实现,保留列表,通过回顾时间来替换页面。
特征:
- LRU更换方法的计数最高。该计数器也称为老化寄存器,它指定其寿命以及还应引用多少关联页面。
- 主存储器中未使用最长时间的页面是应选择进行替换的页面。
- 它还保留一个列表,并通过回顾时间来替换页面。
故障率
故障率是设计的系统或组件发生故障的频率。它以每单位时间的故障数表示。它用希腊字母λ(lambda)表示。
虚拟内存的优势
这里是使用虚拟内存的优点/好处:
- 当仅需要执行程序的特定部分时,虚拟内存有助于提高速度。
- 这对实现多程序环境非常有帮助。
- 它允许您一次运行更多的应用程序。
- 它可以帮助您将许多大型程序装入较小的程序。
- 通用数据或代码可以在存储器之间共享。
- 进程可能变得比所有物理内存还要大。
- 必要时应从磁盘读取数据/代码。
- 可以将代码放置在物理内存中的任何位置,而无需重定位。
- 主内存中应保留更多进程,这将增加CPU的有效使用率。
- 每个页面都存储在磁盘上,直到需要它为止,它将被删除。
- 它允许同时运行更多应用程序。
- 对多重编程的程度没有具体限制。
- 应该编写大型程序,因为与物理内存相比,可用的虚拟地址空间更多。
虚拟内存的缺点
这里是使用虚拟内存的缺点/缺点:
- 如果系统使用虚拟内存,则应用程序运行可能会变慢。
- 在应用程序之间进行切换可能需要花费更多时间。
- 提供较少的硬盘空间供您使用。
- 它降低了系统稳定性。
- 它允许大型应用程序在没有单独提供足够物理内存来运行它们的系统中运行。
- 它提供的性能与RAM不同。
- 它会对系统的整体性能产生负面影响。
- 占用存储空间,否则可用于长期数据存储。
概要:
- 虚拟内存是一种存储机制,可为用户提供一个拥有很大主内存的错觉。
- 只要计算机的物理内存中没有空间,就需要虚拟内存
- 需求分页机制与具有交换功能的分页系统非常相似,在交换系统中,存储在辅助存储器和页面中的进程仅按需加载,而不是事先加载。
- 重要的页面替换方法是1)FIFO 2)最佳算法3)LRU页面替换。
- 在FIFO(先进先出)方法中,内存选择替换页面,该页面已存在于内存的虚拟地址中时间最长。
- 最佳页面替换方法选择该页面进行替换,到下一次参考的时间最长。
- LRU方法可帮助OS在短时间内查找页面使用情况。
- 当仅需要执行程序的特定部分时,虚拟内存有助于提高速度。
- 如果系统使用虚拟内存,则应用程序运行可能会变慢。