虚拟内存与作业池的区别

2025 年 4 月 28 日 | 阅读 5 分钟

虚拟内存和作业池都会将进程临时存储在磁盘上,稍后将其调入内存。当一个进程刚被创建时,它首先进入作业池,然后被发送到就绪队列。只有当可用内存少于任何进程所需的内存时,才会使用虚拟内存。

在本文中,您将了解虚拟内存作业池之间的区别。但在此之前,您需要了解操作系统中的虚拟内存和作业池。

什么是虚拟内存?

计算机可以寻址的内存量超过了物理安装在系统上的内存量。这额外的内存称为虚拟内存,它是硬盘的一部分,用于模拟计算机的RAM。虚拟内存是计算机操作系统 (OS) 中常用的一种技术。

虚拟内存利用硬件和软件,使计算机能够补偿物理内存短缺,将数据临时从RAM传输到磁盘存储。将内存块映射到磁盘文件使计算机能够将二次存储视为主内存。

Virtual Memory vs Job Pool

虚拟内存对于提高系统性能和多任务处理至关重要。这种方案的主要优点是程序可以比物理内存大。但是,用户不应过度依赖虚拟内存,因为它比RAM慢得多。如果操作系统频繁地在虚拟内存和RAM之间交换数据,计算机的运行速度会变慢。虚拟内存有两个作用。

  1. 它允许我们通过使用磁盘来扩展物理内存的使用。
  2. 它允许我们进行内存保护,因为每个虚拟地址都被转换为物理地址。用于通用用途的现代微处理器内置了内存管理单元 (MMU),MMU的任务是将虚拟地址转换为物理地址。

使用虚拟内存的好处

使用虚拟内存有以下优点或好处,例如:

  • 它可以处理的地址数量是主内存的两倍。
  • 它允许同时使用更多的应用程序。
  • 它使应用程序无需管理共享内存,并且用户在RAM空间不足时无需添加内存模块。
  • 当只需要程序的一部分用于执行时,它提高了速度。
  • 由于内存隔离,它提高了安全性。
  • 它允许多个更大的应用程序同时运行。
  • 内存分配相对便宜。
  • 它不需要外部碎片。
  • CPU使用有效地管理逻辑分区工作负载。
  • 数据可以自动移动。

什么是作业池?

作业池是一种数据结构,在批处理系统中,各种作业在此排队,以便在所有资源可用时执行。它决定下一个将执行哪个作业。作业池包含当前正在执行的作业和已计划但尚未执行的作业。当作业执行时,它完全存在于内存中。

其主要设计是,每当创建一个新作业时,它就会存储在作业池中,并且当它准备好执行时,必须将其存储在物理内存中。但当需要非常大的内存时,只有一部分主内存被执行,而剩余的内存存储在虚拟内存中。

现代系统不再这样工作。足够大的计算机可以运行多个任务,并且拥有内存管理单元,该单元将虚拟内存地址转换为物理地址。操作系统利用它在内存和磁盘之间移动每个页面,这称为交换分页。这是从早期多任务处理系统演变而来的。最初,进程作为一个整体被交换。但现在,如果内存不足以容纳所有当前运行的进程,操作系统可以交换出当前未使用的进程部分。

为大型非交互式计算设计的系统即使在今天也通常使用作业管理。如果活动进程需要比可用内存更多的内存才能舒适地运行,交换会耗费时间,导致抖动。为避免这种情况,作业调度程序使用作业池,根据可用资源安排启动作业,并可能暂停它们。系统基于虚拟内存运行在操作系统之上,因此一旦作业被暂停,它就会自然地被交换出去,因为其RAM中的页面会被活动作业的页面替换。

使用作业池的好处

在操作系统中使用作业池有以下好处,例如:

  • 作业是一个单一单元,包含预设的命令、数据和程序序列。
  • 处理按接收顺序进行,即先到先服务,或根据优先级。
  • 当作业成功运行时,操作系统会释放其内存。
  • 当一个进程完成时,下一个作业将从作业假脱机队列中运行,无需用户交互。

虚拟内存与作业池的区别

虚拟内存和作业池用于将进程临时存储在硬盘上,然后稍后将其加载到主内存中。

Virtual Memory vs Job Pool

但它们之间有很多不同之处,因此以下是虚拟内存和作业池之间的区别:

虚拟内存作业池
虚拟内存是一种内存管理技术,它为用户提供无限内存的假象。作业池是操作系统中位于操作系统内部的一个程序,用于存储新创建的、等待各自资源的进程。
虚拟内存代表 CPU 虚拟生成的地址。作业池代表长时调度程序从中选择哪个作业将首先执行的池。
为了执行,进程的一部分需要驻留在内存中。新创建的进程存储在这里,等待所需的资源。
虚拟内存背后的理念是,它创造了一种当我们只使用其中一部分时,仿佛我们在使用非常大的内存的假象。作业池的概念是,新创建的进程存储在一个称为作业池的池中,这些进程在此等待资源分配以执行。
在将进程从硬盘加载到主内存时,如果需要无限内存,则不需要虚拟内存。在将进程从硬盘加载到主内存时,总是需要作业池来存储新创建的进程。