操作系统 虚拟内存和作业池之间的区别
虚拟内存和作业池都是将进程临时存储在磁盘上,然后稍后将它们加载到内存中。当进程刚刚创建时,它首先进入作业池,然后被发送到就绪队列。只有当可用内存小于任何进程所需的内存时,才使用虚拟内存。
在本文中,您将了解虚拟内存和作业池之间的区别。然而,在讨论区别之前,您必须了解操作系统中的虚拟内存和作业池。
什么是虚拟内存
计算机可以访问的内存比系统上实际安装的内存多。这个额外的内存叫做虚拟内存,并且它是设置好以模拟计算机RAM的硬盘的一部分。虚拟内存是计算机操作系统(OS)中常用的技术。
虚拟内存使用硬件和软件来使计算机能够补偿物理内存不足,临时将数据从RAM转移到磁盘存储器。将内存块映射到磁盘文件使计算机可以将辅助存储器视为主存储器。
虚拟内存对于提高系统性能和多任务处理非常重要。这种方案的主要优势在于程序可以比物理内存更大。然而,用户不应过度依赖虚拟内存,因为它比RAM慢得多。如果操作系统频繁在虚拟内存和RAM之间交换数据,计算机将变慢。虚拟内存有两个目的。
- 它允许我们通过使用磁盘来扩展物理内存的使用。
- 它允许我们具有内存保护,因为每个虚拟地址都转换为物理地址。现代为通用用途而设计的微处理器中都内置了一个内存管理单元(MMU),MMU的工作是将虚拟地址转换为物理地址。
使用虚拟内存的好处
以下是使用虚拟内存的优点或好处:
- 它可以处理两倍于主内存的地址。
- 它可以同时使用更多的应用程序。
- 它可以从管理共享内存的应用程序中释放出来,并在RAM空间不足时为用户节省添加内存模块的麻烦。
- 仅当需要执行程序的一部分时,它的执行速度更快。
- 由于内存隔离,它的安全性得到增强。
- 它可以同时运行多个较大的应用程序。
- 分配内存的成本相对较低。
- 它不需要外部碎片。
- CPU利用率高,可以有效管理逻辑分区的工作负载。
- 数据可以自动移动。
什么是作业池
作业池是批处理系统中的一种数据结构,其中各种作业在资源全部可用时排队等待执行。它决定下一个要执行的作业。作业池包含当前正在执行的作业和已计划但尚未执行的作业。当作业在执行时,它完全存在于内存中。
主要设计是,每当创建一个新的作业时,它都存储在作业池中,当它变得可以执行时,它必须存储在物理内存中。但是当需要很大的内存时,只有部分主内存被执行,而剩余的内存被存储在虚拟内存中。
现代系统不是以这种方式工作的。足够大来运行多个任务的计算机具有内存管理单元,可以将虚拟内存地址转换为物理地址。操作系统利用此功能在内存和磁盘之间移动每个页面,这称为 交换 或 分页 。这是从早期的多处理系统演变而来的。起初,进程作为一个整体进行交换。但是现在,如果当前正在运行的进程所需的内存量超过了所有可用内存,操作系统可以将当前未使用的进程的部分换出。
大型非交互式计算的系统一直使用作业管理。如果活动进程所需的内存超过了舒适运行所需的内存,交换需要时间,这会导致抖动。为了避免这种情况,作业调度器使用作业池,安排启动作业,并根据可用资源可能暂停作业。该系统在基于虚拟内存的操作系统之上工作,因此一旦作业被暂停,它将自然地被换出,因为它在RAM中的页面被活动作业的页面所取代。
使用作业池的好处
以下是在操作系统中使用作业池的几个好处,例如:
- 作业是由预设的命令、数据和程序组成的单个单位。
- 处理按照它们接收的顺序进行,即先到先服务或根据优先级。
- 当作业成功运行时,操作系统释放其内存。
- 当进程完成时,下一个作业从作业池中运行,无需任何用户交互。
虚拟内存和作业池之间的区别
虚拟内存和作业池都用于将进程存储在硬盘上一段时间,然后在后续加载到主内存中。
但是它们在许多方面都不同,所以以下是虚拟内存和作业池之间的以下差异,例如:
虚拟内存 | 作业池 |
---|---|
虚拟内存是一种内存管理技术,给用户一种无限内存的错觉。 | 作业池是操作系统中的一个程序,用于存储新创建的进程,同时等待各自所需资源的分配。 |
虚拟内存表示CPU生成的地址在虚拟上的映射。 | 作业池表示长期调度器从中选择要先执行的作业的池子。 |
进程的一部分需要在内存中才能执行。 | 新创建的进程存放在这里,等待所需资源的分配。 |
虚拟内存的概念是创建一个假象,使我们在使用仅部分内存时感觉像是在使用一个非常大的内存。 | 作业池的概念是,新创建的进程存放在一个叫作作业池的池子中,这些进程等待资源的分配以便执行。 |
在将进程从硬盘加载到主内存时,如果不需要无限内存,则不需要虚拟内存。 | 在将进程从硬盘加载到主内存时,总是需要一个作业池来存放新创建的进程。 |