多任务、多线程和多处理之间的区别?

多任务、多编程和多处理之间的区别是什么

这是我大学操作系统考试的常规答案,我找不到一个好答案。 我对多任务处理和多道程序设计有相当多的了解,但是需要确认一下。

213083 次浏览

转述维基百科:

多道程序设计——一台计算机同时运行多个程序(如同时运行 Excel 和 Firefox) Http://en.wikipedia.org/wiki/multiprogramming

多处理——一台计算机同时使用多个 CPU Http://en.wikipedia.org/wiki/multiprocessing

多任务——共享一个公共资源的任务(比如1个 CPU) Http://en.wikipedia.org/wiki/computer_multitasking#multithreading

  • 因此,像多线程这样的东西是多任务的扩展。

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

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

多道程序设计: 它意味着在计算机上运行多个程序。这里用户不能与系统交互,一切都由操作系统决定。

多任务: 这是 multiprogramming.It 的逻辑延伸,意味着在电脑上运行多个任务。在作业之间切换非常快,以至于用户可以与系统进行交互。

多线程: 当更多的客户端访问服务器时,基本上可以看到多线程。

多任务(分时) :

时间共享系统允许许多用户同时共享计算机。

多道程序设计——将要执行的作业加载到一个池中。其中一些作业被加载到主存中,并且从池中选择一个作业由 CPU 执行。如果在某一点上,正在进行的程序终止或需要外围设备的服务,CPU 的控制权将交给池中的下一个作业。随着程序的终止,更多的作业被加载到内存中执行,CPU 控制被切换到内存中的另一个作业。这样,CPU 总是在执行某些程序或其中的某些部分,而不是等待打印机、磁带驱动器或控制台输入

Multiprocessing - the simultaneous execution of two or more programs or instruction sequences by separate CPUs under integrated control

多任务系统-一个 CPU 同时执行或交叉执行两个或多个任务。

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

MultiProgramming -这个术语在批处理系统的 < em > 上下文中使用。 你在主存中同时有几个程序。 CPU 为每个程序调度一个时间。

也就是说,提交多个作业,所有作业都被加载到内存中,并根据调度算法执行。常见的批处理系统调度算法包括: 先到先得、最短作业优先、最短剩余时间优先。

多任务 -这基本上是 单用户交互环境的上下文,中的多重编程,操作系统在主存中的几个程序之间切换,以便给人一种同时运行几个程序的错觉。常用的多任务调度算法有: 循环调度算法、优先级调度算法(多队列)、最短进程调度算法(Shortest-Process-Next)。

多任务:- 它可以同时处理多个任务或作业,在这种情况下,用户可以与系统进行交互。

多道程序设计:- 它同时处理多个程序,不能与系统交互,一切由操作系统决定。

多道程序设计是一个计算机系统在同一个计算机系统中同时执行不同任务的过程。

多道程序设计:- 同一台计算机不同时执行多个作业。

多任务:- o/s,其中同时执行多个任务。

多处理就像操作系统处理主存中的不同作业一样,当其他作业(如 I/O 操作)处于忙碌状态时,它会为每个作业分配时间。因此,只要需要执行至少一个作业,CPU 就不会闲置。 在这里它是自动处理的操作系统,没有用户与计算机交互。

但是当我们说到多任务处理时,用户实际上同时从事不同的工作——扫雷或检查邮件或其他任何工作。CPU 通过在多个作业之间切换来执行多个作业,但切换速度如此之快,以至于用户会产生这两个应用程序同时运行的错觉。

因此,mp 和 mt 之间的主要区别是,在 mp 中,操作系统处理主内存中的不同作业的方式是,如果某个作业正在等待某些内容,那么它将跳转到下一个作业执行。在 mt 中,用户与系统进行交互,并得到两个或任何一个应用程序同时运行的错觉。

多重编程

在一个应用程序中运行多个程序来执行某个任务。

示例 : 在 MSWORD 中,写入文档并发送电子邮件

一心多用

运行多个应用程序来执行某个任务。

示例 : 同时听歌、玩游戏、工作于 MS word、 Excel 等应用程序

多处理

在处理器中运行多条指令。

例子 当创建一个文件,然后计算机采取时间和日期默认。

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

多道程序设计-在主存中多于作业。

Muntitask- 多个程序同时运行。即 CPU 中有多个程序。

多任务——这基本上是在单用户交互环境中的多重编程,在这种环境中,操作系统在主存中的几个程序之间切换,以便给人一种同时运行几个程序的错觉。常用的多任务调度算法有: 循环调度算法、优先级调度算法(多队列)、最短进程调度算法(Shortest-Process-Next)。

多处理就像操作系统处理主存中的不同作业一样,当其他作业(如 I/O 操作)处于忙碌状态时,它会为每个作业分配时间。因此,只要需要执行至少一个作业,CPU 就不会闲置。这里它是由操作系统自动处理的,

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

多处理 -同时使用多个 CPU 的计算机

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

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

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

多重编程和多重任务都解决不同的问题,尽管它们使用相似的方法在进程之间切换。

多道程序设计 : 在早期,人们发现有时某些进程使用外围设备(例如: I/O)。在这种情况下,CPU 保持空闲状态。为了更有效地使用 CPU,谨慎的做法是在内存中加载多个进程。这样,如果某个进程要使用外围设备,那么某个其他进程将使用 CPU。这就是多道程序设计。

多任务 : 对于最终用户,必须同时显示多个进程在运行。通过在不同进程之间切换以及让它们同时在 CPU 上运行,对此进行了模拟。这就是多任务处理背后的理念。

除了 Vaibhav Kumar 先生的回答之外,以上所有的回答都不明确或不模棱两可

多重编程和任务是处理器中切换任务的同一概念,不同之处在于切换任务的概念和原因。

MProgramming: 当活动任务需要更长的 IO 或其他非 CPU 响应时,为了不使处理器处于空闲状态,处理器加载并处理另一个没有等待 IO 并准备好进程的任务。

多任务处理: 即使在编程之后,对于用户来说,它可能感觉只有一个任务正在执行,而另一个任务只是等待进入 CPU。因此,活动任务也与活动 CPU 交换,并保留在一边,另一个任务在 CPU 中只占用很小一部分人工时间[秒] ,然后再次交换回前一个任务。这样,用户就会感觉到两个任务同时在 CPU 中活动。但实际上,每个任务在给定的 CPU 时间(以微秒或纳秒为单位)只活动一次

MProcessing 就像我的计算机有四核,所以我一次使用4个处理器,这意味着4个不同的多重编程实例发生在我的机器上。并且这4个处理器做了另一个无数的 MTaskno。

所以 MProcessing > MTask > MProgramming

并且每个任务分解一个线程。这也给用户一个幸福的生活。在这里,多个任务(比如 word doc 和 media player)不会出现在图片中,相反,一些小的子任务(比如单词上的文本着色和单词中的自动拼写检查)是同一个单词可执行文件的一部分。

不确定我是否能解释清楚所有的疑惑。

多重编程:-

一次可以有多个任务(作业)进程驻留在主内存中。它基本上是为了减少 I/O 操作期间的 CPU 浪费而设计的,例如: 如果一个作业当前正在执行并且需要 I/O 操作。I/O 操作使用 DMA 完成,处理器从作业队列中分配给其他作业,直到 job1的 I/O 操作完成。然后继续工作。这样就减少了 CPU 的浪费。


多任务:-

在这种类型的操作系统中,多个任务(进程)是并发执行的(并发并不意味着任务在同一时间准确地立即执行。.因为多任务并不意味着并行)。 在这个系统中,一个新的任务在其他任务结束之前开始,取决于它使用的 CPU 调度技术 & & 所有进程共享公共资源。


多重处理:-

在单 CPU 内使用2个或更多处理器。因此,任务可以并行执行。但是需要进行一些同步操作。

多重编程:-

一次可以有多个任务(作业)进程驻留在主内存中。它基本上是为了减少 I/O 操作期间的 CPU 浪费而设计的,例如: 如果一个作业当前正在执行并且需要 I/O 操作。I/O 操作使用 DMA 完成,处理器从作业队列中分配给其他作业,直到 job1的 I/O 操作完成。然后继续工作。这样就减少了 CPU 的浪费。

MultiProgramming -在一个多道程序设计系统中,有多个程序装载在主存中,准备执行。一次只有一个程序能够让 CPU 执行它的指令,而所有其他程序都在等待轮到它们。多道程序设计的主要思想是最大限度地利用 CPU 时间。 假设当前正在运行的进程正在执行一个 I/O 任务,那么操作系统可能会中断该进程,并将控制权交给另一个准备执行的内存程序(即进程上下文切换)。 这样,等待 I/O 任务完成的系统就不会浪费 CPU 时间。

MultiProcessing -多处理是操作系统在多处理器机器上同时执行多个进程的能力。在多处理系统中,一台计算机同时使用多个 CPU。

多任务 -多任务是操作系统在单处理器机器上同时执行多个任务的能力,这些多任务共享 CPU 和内存等公共资源。在多任务系统中,CPU 从一个任务切换到下一个任务的速度非常快,以至于所有任务都在同时执行。

多任务和多程序设计是有区别的。多任务系统中的任务不是完整的应用程序,但是当一个进程被划分为子任务时,它可以引用“执行线程”。每个较小的任务不劫持 CPU 直到它完成,他们共享一个小数额的 CPU 时间称为量子。多编程和多任务操作系统是分时系统。

多线程 -多线程是多任务的扩展。多线程是操作系统将单个应用程序中的特定操作细分为单个线程的能力。每个线程都可以并行运行。操作系统不仅在不同的应用程序之间分配处理时间,而且在应用程序内的每个线程之间分配处理时间。

多道程序设计系统中,有多个程序装载在主存中,随时可以执行。一次只有一个程序能够让 CPU 执行它的指令,而所有其他程序都在等待轮到它们。多道程序设计的主要思想是最大限度地利用 CPU 时间。假设当前正在运行的进程正在执行一个 I/O 任务,那么操作系统可能会中断该进程,并将控制权交给另一个准备执行的内存程序(即进程上下文切换)。这样,等待 I/O 任务完成的系统就不会浪费 CPU 时间。

MultiProcessing -多处理是操作系统在多处理器机器上同时执行多个进程的能力。在多处理系统中,一台计算机同时使用多个 CPU。

多任务 -多任务是操作系统在单处理器机器上同时执行多个任务的能力,这些多任务共享 CPU 和内存等公共资源。在多任务系统中,CPU 从一个任务切换到下一个任务的速度非常快,以至于所有任务都在同时执行。

多任务编程和多任务编程是有区别的。多任务系统中的任务不是完整的应用程序,但是当一个进程被划分为子任务时,它可以指“执行线程”。每个较小的任务不劫持 CPU 直到它完成,他们共享一个小数额的 CPU 时间称为量子。多编程和多任务操作系统是分时系统。

多线程 -多线程是多任务的扩展。多线程是操作系统将单个应用程序中的特定操作细分为单个线程的能力。每个线程都可以并行运行。操作系统不仅在不同的应用程序之间分配处理时间,而且在应用程序内的每个线程之间分配处理时间。

一个进程中可以存在多个线程。属于同一进程的线程共享相同的内存区域(可以从相同的变量读取和写入,并且可以相互干扰)。相反,不同的进程位于不同的内存区域,每个进程都有自己的变量。为了进行通信,进程必须使用其他通道(文件、管道或套接字)。

如果您想要并行化一个计算,那么您可能需要多线程,因为您可能希望线程在相同的内存上进行协作。

谈到性能,线程的创建和管理比进程更快(因为操作系统不需要分配一个全新的虚拟内存区域) ,线程间的通信通常比行程间通讯更快。但是线程更难编程。线程可以相互干扰,并且可以写入对方的内存,但是这种情况的发生方式并不总是显而易见的(由于几个因素,主要是指令重排序和内存缓存) ,所以需要同步原语来控制对变量的访问。

来源

多任务 -也称为分时,因为在特定的时间内,可以定期切换多个任务(或进程) ,这样用户就可以看到它们是并发操作的。

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

多处理 -在给定的时间内,有多个处理器来运行一个进程(或程序)的过程。减少计算时间。

Multi Programming -通常用于批处理操作系统。在这里,作业(或进程)在执行时获得完整的 CPU 和内存。多道程序设计是指在计算机的主存中加载多个不同的程序,然后第一个程序开始运行的系统。当它完成执行(即处于运行状态)并等待外围(即等待状态)时,下一个进程开始运行。这与多任务相反,在这种情况下,每个任务都被分配一个时间段(也称为 量子)来执行。

基本上,多重编程是一个同时运行多个程序的概念,假设您运行两个程序,如 chrome (浏览器)和 Calculator (系统应用程序)。

多处理 是指用户使用多个处理器来完成一个任务。

要知道 多线程,我们需要知道什么是线程。线程基本上是在程序中运行的程序的一部分。最好的线程示例是浏览器的制表符。如果你有5个正在打开和使用的选项卡,那么程序实际上创建了程序的5个线程,这个概念被称为多线程。