多任务、多线程和多进程的区别是什么?

74

多任务、多程序和多进程有什么区别?

这个问题经常出现在我的大学操作系统考试中,但我找不到一个好的答案。 我对多任务和多程序有一定了解,但需要确认一下。

24个回答

88

32

多道程序设计: 操作系统可以同时将多个任务/程序/作业/进程驻留在主内存中。这种操作系统的能力被称为多道程序设计。

多任务处理: 操作系统可以同时将多个任务/程序/作业/进程驻留在同一个CPU中。这种操作系统的能力被称为多任务处理。


1
这些术语可以说是“相似的”吗? - ABcDexter
1
@ABcDexter 不是相似的...在单个时间实例中执行多个任务被称为多任务处理 - Gupta

20

除了Vaibhav Kumar先生的答案之外,以上所有答案都不清晰或存在歧义。【抱歉,没有冒犯之意】

多道程序设计和任务处理都是处理器中切换任务的相同概念,不同之处在于切换的概念和原因。

多道程序设计:当活动任务需要较长时间的IO或其他非CPU响应时,为了避免处理器空闲,处理器会加载并处理另一个等待处理且未等待IO的任务。

任务处理:即使进行了多道程序设计,用户可能仍然感觉只有一个任务在执行,而另一个任务只是等待进入处理器。因此,将活动任务从活动的CPU中交换出来并放在一旁,并在一个非常小的时间[秒]内将另一个任务带入处理器,然后再次将其交换回到先前的任务。通过这种方式,用户会感觉两个任务同时在处理器中运行。但实际上,在给定的CPU时间内,每个任务只能活动一次[以微秒或纳秒为单位]。

而多处理是指像我的计算机具有四个核心,因此我可以同时使用四个处理器,这意味着在我的机器上发生了4个不同的多道程序设计实例。这些4个处理器也执行了众多的任务处理。

因此,多处理>任务处理>多道程序设计

而线程处理是任务的另一种细分方式,也是为了让用户感到更舒适。这里,不是多个任务[如Word文档和媒体播放器]同时涉及,而是像文字着色和自动拼写检查等小的子任务是同一个Word执行文件的一部分。

不确定我是否清楚地解答了所有的疑惑......


5

多道程序设计和多任务处理解决不同的问题,尽管它们使用类似的进程切换方法。

多道程序设计:早期发现某些进程在使用外设(例如:I/O)时,CPU会空闲。为了更有效地利用CPU,将多个进程加载到内存中是明智的选择。这样,如果某个进程要使用外设,则某些其他进程将使用CPU。这就是多道程序设计的实现方式。

多任务处理:对于最终用户,多个进程必须同时运行。通过在不同进程之间切换并使它们同时在CPU上运行来实现。这就是多任务处理的思想。


4

多道程序设计 - 要执行的任务被加载到一个池中。其中一些任务被加载到主存储器中,从池中选择一个任务交给CPU执行。如果在某个时刻正在运行的程序终止或需要外设设备的服务,则将CPU控制权交给池中的下一个任务。随着程序的终止,更多的作业被加载到内存中以供执行,并将CPU控制权切换到内存中的另一个作业。通过这种方式,CPU总是在执行某个程序或其某个部分,而不是等待打印机、磁带驱动器或控制台输入。

多处理 - 在统一管理下,两个或更多程序或指令序列被单独的CPU同时执行。

多任务系统 - 单个CPU同时或者交替执行两个或更多的作业。

多用户系统 - 多个终端连接到一台主机计算机上,由主机计算机处理处理任务。


4

多任务处理 - 也称为时间共享,因为多个任务(或进程)可以在特定的时间内不断切换,以便用户可以获得并行操作的视图。

多线程 - 为了使用户体验更丰富,任务(在单个进程中)被进一步划分为子任务。这些子任务可以在多任务环境下运行。

多处理 - 该过程是在给定时间内使用多个处理器来运行一个进程(或程序)。它减少了计算时间。

多程序设计 - 通常用于批处理操作系统。在此情况下,作业(或进程)在执行时会占用整个CPU和内存。多程序设计是将许多不同的程序加载到计算机的主存储器中,并开始运行第一个程序。当第一个进程完成其执行(即运行状态)并等待外围设备响应(即等待状态)时,下一个进程开始运行。这与多任务处理相反,后者为每个任务分配一个时间段(也称为 量子),以进行其执行。


3

多道程序设计 - 一台计算机同时运行多个程序(例如同时运行Excel和Firefox)。

多处理器 - 一台计算机同时使用多个CPU。

多道程序 - 多个任务/程序/作业/进程可以同时驻留在主内存中。操作系统的这种能力称为多道程序设计。

多任务处理 - 多个任务/程序/作业/进程可以同时驻留在同一个CPU中。操作系统的这种能力称为多任务处理。

多用户系统 - 一种计算机系统,多个终端连接到处理处理任务的主机计算机。


3

多道程序设计:指在计算机上运行多个程序。用户无法与系统交互,一切由操作系统决定。

多任务处理:它是多道程序设计的逻辑扩展,表示在计算机上运行多个任务。任务之间的切换非常快,用户可以与系统交互。

多线程:基本上在更多客户端访问服务器时看到。


2

多线程 多线程将多任务的思想扩展到应用程序中,因此您可以将单个应用程序中的特定操作细分为单个线程。


2
多任务处理 - 在单用户交互环境中,这基本上是多程序处理,操作系统在主存储器中切换多个程序,以产生同时运行的假象。常用于多任务处理的调度算法有:轮流调度、优先级调度(多个队列)、最短进程优先。
多处理 - 就像操作系统以这样一种方式处理主存储器中的不同作业,即当其他作业因I/O操作等任务而繁忙时,它会为每个作业分配时间。只要至少有一个作业需要执行,CPU就不会空闲。这里由操作系统自动处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接