多任务处理

2025年5月5日 | 阅读9分钟

多任务是现代计算机系统中使用的术语。它是多道程序系统的逻辑扩展,它能够同时执行多个程序。在操作系统中,多任务允许用户同时执行多个计算机任务。多个任务也称为进程,它们共享相似的处理资源,如CPU。操作系统会跟踪你在这些工作中的进度,并允许你在不丢失数据的情况下在它们之间切换。

Multitasking

早期的操作系统可以同时执行各种程序,尽管多任务并未得到完全支持。因此,单个软件可能会在完成特定活动时占用计算机的全部 CPU。基本操作系统功能,如文件复制,会阻止用户执行其他任务,如打开和关闭窗口。幸运的是,由于现代操作系统具备完整的多任务能力,多个程序可以并发运行而不相互干扰。此外,许多操作系统进程可以同时运行。

多任务操作系统的背景

能够进行多任务处理的操作系统可以追溯到 20 世纪 60 年代和 70 年代,当时计算机市场才刚刚开始扩张。兼容分时系统 (CTSS) 是第一个被使用的多任务操作系统。CTSS 是一种协作式多任务操作系统,它允许多个用户在分时环境中同时使用一台机器。IBM 在 20 世纪 70 年代发布了其大型机操作系统 OS/360,该系统可以同时管理多个任务。该系统将多个作业分解成更小的部分,然后调度它们使用 CPU。

随着 20 世纪 80 年代个人计算机的广泛使用,多任务操作系统应运而生。最早支持同时运行多个应用程序的操作系统之一是 AmigaOS。Microsoft Windows 于 1985 年推出,并迅速获得了巨大的成功。为了实现抢占式多任务,真正的多任务操作系统在 20 世纪 90 年代开始普及。由于这一点,操作系统现在可以在不依赖应用程序协作的情况下在任务之间进行切换。

多任务操作系统的组成部分

  • 分时:分时是将计算机资源在特定时间段内分配给多个进程的实践,在多个任务之间共享处理器时间。
  • 上下文切换:保存一个进程的上下文并加载另一个进程的上下文的过程称为上下文切换。更简单地说,它涉及在新进程运行完毕后加载一个新进程。
  • 多线程:操作系统或应用程序能够同时支持多个用户,而无需在计算机上运行多个程序副本的能力称为多线程。
  • 硬件中断:当某个过程或事件需要立即关注时,硬件或软件会发出中断信号。它会提醒处理器有优先级高的作业出现,需要停止当前正在执行的进程。
  • 进程调度:此操作系统功能使用调度算法将 CPU 时间分配给程序。
  • 进程同步:进程同步通过确保对公共资源的同步访问来帮助避免进程之间的冲突。

支持多任务的操作系统是如何工作的?

这些操作系统能够使计算机系统同时运行多个应用程序和任务。支持多任务的操作系统有助于控制 CPU 时间、输入/输出设备和计算机内存等系统资源如何在活动应用程序之间分配。这些操作系统采用以下策略来实现这一点。

  • CPU 调度:支持多任务的操作系统控制每个进程分配到的 CPU 时间量。这确保每个进程都有足够的 CPU 时间。抢占式调度使操作系统能够因此停止任何长时间运行的进程。
  • 进程管理:多任务操作系统管理独立运行的并发应用程序实例。在这种情况下,操作系统会为每个进程分配资源,并提供一种它们之间通信和同步的方式。
  • 内存管理:内存的分配和释放由操作系统控制。因此,任何进程都不能干扰另一个进程访问其所需内存的能力。
  • 输入/输出管理:操作系统控制 I/O 设备的方法和访问。这确保多个进程可以同时使用同一设备而不相互干扰,并允许进程请求这些设备。

多任务的类型

多任务主要有两种类型。它们如下:

  1. 抢占式多任务处理
  2. 协作式多任务

抢占式多任务处理

抢占式多任务是分配给计算机操作系统的一项特殊任务。它决定一个任务花费多少时间,然后再分配另一个任务来使用操作系统。由于操作系统控制整个过程,因此称为“抢占式”

桌面操作系统使用抢占式多任务。Unix 是第一个使用这种多任务方法的操作系统。Windows NTWindows 95 是第一批使用抢占式多任务的 Windows 版本。通过OS X,Macintosh 获得了主动式多任务。此操作系统会在另一个程序需要接管 CPU 时通知程序。

好处

  • 通过同时处理多项任务来有效利用 CPU。
  • 改进了用户体验和系统响应能力。
  • 允许高优先级进程优先于低优先级进程。

缺点

  • 上下文切换的开销可能导致性能问题。
  • 管理和同步进程的复杂性。
  • 如果从不为低优先级程序分配 CPU 时间,可能会导致程序饿死。

协作式多任务

“非抢占式多任务”一词指的是协作式多任务。协作式多任务的主要目的是运行当前任务,同时释放 CPU 以允许另一个进程运行。这项任务是通过使用taskYIELD () 来完成的。当调用taskYIELD() 函数时,会执行上下文切换。

Windows 和 MacOS 使用了协作式多任务。Windows 程序会响应消息,执行一小部分工作,然后将 CPU 交还给操作系统,直到程序收到另一条消息。只要所有程序都以考虑其他程序的方式编写并且没有错误,它就能完美运行。

好处

  • 比主动式多任务更容易实现。
  • 减少了上下文切换的开销。
  • 进程对其执行方式有更大的控制权。

缺点

  • 由于没有自动任务切换,CPU 效率降低。
  • 如果一个进程不放弃控制,系统可能无法响应。
  • 实时管理任务优先级具有挑战性。

可以多任务处理的操作系统示例

以下是一些可以多任务处理的操作系统示例:

  • Windows XP:Windows XP 是微软 Windows NT 操作系统的升级版本。对于家庭用户来说,它是 Windows Me,对于商业用户来说,它是 Windows 2000 的直接继承者。
  • Windows Vista:这是微软 Windows NT 操作系统的一个版本。它是 Windows XP 的直接替代品,Windows XP 于五年前发布,当时是微软 Windows 桌面操作系统更新之间最长的间隔。
  • Windows 7:微软 Windows NT 操作系统的最新版本是 Windows 7。它于 2009 年 7 月 22 日投入生产,并于 2009 年 10 月 22 日公开发布。它取代了大约三年前发布的 Windows Vista。
  • Windows 8:微软 Windows NT 操作系统的最新版本是 Windows 8。
  • Windows 10:Windows 10 是微软 Windows NT 操作系统的升级版本。它是两年多前发布的 Windows 8.1 的直接替代品。
  • Windows 2000:Windows 2000 是微软专为商业用途设计的 Windows NT 操作系统的一个重要版本。它是 Windows NT 4.0 的直接替代品。
  • IBM OS/390:OS/390 是 IBM 为 System/390 大型机系统使用的操作系统。
  • UNIX:Unix 是一种多任务、多用户计算机操作系统,它源自 Ken Thompson、Dennis Ritchie 等人于 1969 年在贝尔实验室研究机构创建的 AT&T Unix。

操作系统多任务处理和多线程之间的重要区别

多任务处理多线程
使 CPU 能够同时执行多项任务。使 CPU 能够一次创建一个作业的多个线程并处理它们。
涉及 CPU 在不同作业之间交替。涉及 CPU 在线程之间交替以提高处理能力。
进程共享不同的内存区域。相同的 RAM 分配给每个进程。
涉及使用多个处理器。没有多处理。
相比之下,终止进程需要更长的时间。终止进程所需的时间相对较少。
它有助于创建有效的程序。它有助于创建有效的操作系统。
速度慢。速度快。

多任务的优点和缺点

多任务的各种优点和缺点如下:

优点

多任务的各种优点如下:

管理多个用户

此操作系统更适合同时支持多个用户,并且多个应用程序可以平稳运行而不影响系统性能。

虚拟内存

多任务操作系统拥有最好的虚拟内存系统。由于虚拟内存,任何程序都不需要长时间等待才能完成任务;如果出现此问题,这些程序将被移至虚拟内存。

可靠性高

多任务操作系统为多个用户提供了更大的灵活性,他们也因此更满意。每个用户可以同时执行一个或多个程序。

内存安全

多任务操作系统拥有明确的内存管理。因此,操作系统不允许任何类型的权限浪费内存。

时间共享

所有任务都分配了指定的时间,这样它们就无需等待 CPU。

后台处理

多任务操作系统为后台进程的运行提供了更好的环境。这些后台程序对大多数用户不可见,但它们有助于防火墙、杀毒软件等其他程序的良好运行。

优化计算机资源

多任务操作系统可以管理各种计算机资源,如 I/O 设备RAM硬盘、CPU 等。

使用多个程序

用户可以同时运行多个程序,例如互联网浏览器、游戏、MS Excel、PowerPoint 和其他实用程序。

缺点

多任务的各种缺点如下:

处理器瓶颈

由于处理器速度较慢,系统运行程序的可能变慢,并且在处理多个程序时其响应时间可能会增加。为了解决此问题,需要更多的处理能力。

内存瓶颈

由于同时运行多个程序,计算机的性能可能会变慢,因为主内存会因加载多个程序而过载。由于 CPU 无法为每个程序提供不同的时间,响应时间会增加。此问题的主要原因是它使用了低容量 RAM。因此,可以增加 RAM 容量来解决。

CPU 发热

在多任务环境中,多个处理器需要同时忙碌以完成任何任务,因此 CPU 会产生更多热量。

总结

同时执行多项活动的过程称为多任务。在多任务操作系统中,CPU 在多个任务之间交替进行以完成它们。多任务操作系统提供内存保护和隔离。支持多任务的操作系统利用多处理器概念。支持多任务的操作系统可以同时执行多个任务。多任务操作系统利用了分时和上下文切换。多任务操作系统大大减少了 CPU 的空闲时间。多任务操作系统需要一个 CPU。

常见问题

Q1. 在多任务操作系统中,任务会相互冲突吗?

在多任务操作系统中,任务可能会相互冲突,尤其是在共享资源时。这种干预可能导致意外行为、崩溃或性能下降。为了减轻这些问题,隔离技术和有效的资源管理至关重要。

Q2. 单核 CPU 能运行多任务操作系统吗?

是的,单核 CPU 可以运行多任务操作系统。通过快速在作业之间切换,它们提供了并行和并发执行的假象。

Q3. 多任务如何提高系统性能?

通过减少 CPU 空闲时间,多任务提高了效率。一个进程可以在另一个进程等待输入/输出时使用 CPU,这最大限度地提高了资源利用率并提高了系统响应能力。

Q4. 计算机系统如何采用抢占式多任务?

抢占式多任务是一种多任务类型,其中计算机根据操作系统使用的某些标准确定分配给每个活动的多少时间,然后再授予另一个程序使用操作系统的权限。抢占是操作系统将其控制权从一个作业转移到另一个作业的过程。

Q5. 您能举一个可以多任务处理的操作系统示例吗?

多任务操作系统包括 Linux、macOS 和 Windows。它们使用户能够轻松地在多个应用程序之间切换并同时运行它们。