多任务,multithreading和多处理之间的区别?
多任务,多程序和多处理有什么区别?
这是定期为我的大学操作系统考试,我找不到一个好的答案。 我对多任务和多程序有相当的了解,但需要确认。
释义维基百科:
多程序 – 一次运行多个程序的计算机(如同时运行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
- 因此,像multithreading这样的东西是多任务的延伸。
多程序:多个任务/程序/作业/进程可以在一个时间点驻留在主存储器中。 这种操作系统的能力被称为多程序devise。
多任务:在一个时间点,多个任务/程序/作业/进程可以驻留在同一个CPU中。 操作系统的这种能力被称为多任务处理。
除了Vaibhav Kumar先生之外,上述答案都不明确或不明确。 [对不起,没有犯法]
多任务编程和处理任务在处理器中是相同的切换任务的概念,区别在于切换的概念和原因。
MProgramming:当活动任务需要更长的IO或其他非CPU响应时,不保持处理器空闲,然后处理器加载并工作在不等待IO并准备处理的另一个任务上。
MTasking:即使在MPrograming之后,对于用户来说也许只有一个任务在执行,而另一个只是在等待来到CPU。 因此,活动任务也从活动CPU交换并保留在一边,另一个任务在CPU中只占用很less的时间[秒],然后再次交换到较早的任务。 这样用户就会同时感觉到两个任务在CPU中是活着的。 但是实际上每个任务在给定的CPU时间只有一次激活(微秒或纳秒)
和MProcessing一样,就像我的电脑有四核,所以我一次使用4个处理器,意味着在我的机器上发生了4个不同的程序devise实例。 而这四款处理器又做了不less的MTasking。
所以MP处理> MProgramming> Mtasking
而MThreading是每个任务的另一个分手。 这也给用户一个幸福的生活。 这里有多个任务[比如word文档和媒体播放器]没有出现在图片中,而像word中的文本着色和word中的自动拼写检查这样的小子任务是同一个word可执行文件的一部分。
不知道我是否能够清楚所有的混乱…
多程序化:指在计算机上运行多个程序,用户不能与系统交互,一切都由操作系统决定。
多任务:多程序的逻辑扩展,它意味着在计算机上运行多个任务。作业之间的切换非常快,用户可以与系统交互。
multithreading:当更多数量的客户端访问服务器时基本可见。
多程序 – 要执行的作业被加载到一个池中。 这些作业中的一些被加载到主存储器中,并且从池中select一个以供CPU执行。 如果某程序正在进行的程序终止或需要外围设备的服务,则CPU的控制权将交给池中的下一个作业。 当程序终止时,更多的作业被加载到内存中执行,并且CPU控制切换到内存中的另一个作业。 通过这种方式,CPU总是执行一些程序或其一部分,而不是等待打印机,磁带驱动器或控制台input
多处理 – 在集成控制下由不同的CPU同时执行两个或多个程序或指令序列
多任务系统 – 一个CPU同时或交错执行两个或多个任务。
多用户系统 – 多个terminal连接到处理处理任务的主机的计算机系统。
多任务 – 也称为时间共享,因为可以在特定时间定期切换多个任务(或进程),以便用户可以看到他们正在同时运行。
multithreading – 为了使用户体验更丰富,任务(在单个进程中)进一步分为子任务。 这些子任务可以在多任务环境中运行。
多处理 – 在给定的时间内,有多个处理器运行一个进程(或程序)的过程。 它减less了计算时间。
多线程多线程将多任务的思想扩展到了应用程序中,因此您可以将单个应用程序中的特定操作细分为单独的线程。
多任务处理 – 这基本上是在单用户交互式环境中的多程序处理,其中操作系统在主存储器中的多个程序之间切换,以便给出几个同时运行的错觉。 用于多任务的通用调度algorithm是:循环,优先级调度(多队列),最短进程 – 下一步。
MULTIPROCESSING就像操作系统一样处理主内存中的不同作业,这样当其他人忙于某些任务(如I / O操作)时,就可以为每个作业提供时间。 所以只要至less有一个工作需要执行,CPU就不会闲置。 这里它是由操作系统自动处理的,
多程序 – 一次运行多个程序的计算机(如同时运行Excel和Firefox)
多处理 – 一次使用多个CPU的计算机
多程序 – 多个任务/程序/作业/进程可以在一个时间点驻留在主内存中。 这种操作系统的能力被称为多程序devise。
多任务 :在一个时间点,多个任务/程序/作业/进程可以驻留在同一个CPU中。 操作系统的这种能力被称为多任务处理。
多用户系统 – 多个terminal连接到处理处理任务的主机的计算机系统。
多程序和多任务处理 两者都解决了不同的问题,尽pipe他们使用了相似的过程切换方法。
多程序devise :在早期就看到某些进程有时需要使用外设(例如:I / O),在这种情况下CPU保持闲置状态。 为了更高效地使用CPU,有人认为在内存中有多个进程,所以如果某个正在执行的进程需要外设,某个其他进程可能会使用CPU。 这是多编程背后的想法。
多任务 :要求多个进程应该同时运行到最终用户。 所以这是通过切换这些进程和使它们同时在CPU上运行来模拟的。 这是多任务处理。
多程序 – 这个术语用于批处理系统。 你同时在主内存中有几个程序。 CPU为每个计划一个时间。
即提交多个作业,并将它们全部加载到内存中并按照调度algorithm执行。 常见的批量系统调度algorithm包括先到先服务,最短优先优先,最短优先优先优先。
多任务处理 – 这基本上是在单用户交互式环境中的多程序处理,其中操作系统在主存储器中的多个程序之间切换,以便给出几个同时运行的错觉。 用于多任务的通用调度algorithm是:循环,优先级调度(多队列),最短进程 – 下一步。
MULTIPROCESSING就像操作系统一样处理主内存中的不同作业,这样当其他人忙于某些任务(如I / O操作)时,就可以为每个作业提供时间。 所以只要至less有一个工作需要执行,CPU就不会闲置。 这里是由操作系统自动处理的,无需用户与电脑交互。
但是当我们谈到MULTITASKING时,用户实际上是同时参与不同的工作 – 扫雷或查看邮件或任何东西。 CPU通过切换来执行多个任务,但是切换速度如此之快,以至于用户有两种应用程序同时运行的错觉。
所以mp和mt之间的主要区别在于,在操作系统中,操作系统在主内存中处理不同的作业,这样,如果某个作业正在等待某个东西,那么它将跳转到下一个作业执行。 在mt中,用户正在与系统进行交互,并在两个或任何应用程序同时运行时获得幻觉。
Multiprograming
在应用程序中运行多个程序来执行某个任务。
例如 :在MS WORD中,写入文件和发送电子邮件
多任务处理
运行多个应用程序来执行特定的任务。
例如 :听歌,玩游戏,在ms word,excel等应用程序中同时工作
多
通过处理器运行多条指令。
示例创build文件时,计算机将采用时间和date默认值。
多程序 – 不止在主存中的工作。
多任务处理 – 同时运行多个程序。 这是CPU中不止一个程序。
多重编程: –
多个任务(作业)进程可以一次驻留在主内存中。 基本上是为了减lessI / O操作中的CPU浪费,例如:当前正在执行一个任务,需要I / O操作。 I / O操作使用DMA完成,处理器从作业队列分配给某个其他作业,直到job1的I / O操作完成。 然后job1继续。 这样可以减lessCPU的浪费。
多任务: –
在这种types的操作系统中,多任务(进程)是同时执行的(同时并不意味着同时执行任务的任务是多任务并不意味着并行)。 在这个系统中,一个新任务在其他任务结束之前启动,取决于CPU调度技术,它使用&&所有进程共享公共资源。
多处理: –
在单CPU中使用2个或更多的处理器。 所以任务可以并行执行,但是需要一些同步。
多重编程: –
多个任务(作业)进程可以一次驻留在主内存中。 基本上是为了减lessI / O操作中的CPU浪费,例如:当前正在执行一个任务,需要I / O操作。 I / O操作使用DMA完成,处理器从作业队列分配给某个其他作业,直到job1的I / O操作完成。 然后job1继续。 这样可以减lessCPU的浪费。
多程序devise – 在一个多程序devise系统中,主存储器中有多个程序可以执行。 一次只有一个程序能够让CPU执行它的指令,而其他所有的程序都在轮到它。 多程序的主要思想是最大限度地利用CPU时间。 假设当前正在运行的进程正在执行一个I / O任务,则操作系统可能会中断该进程,并将控制权交给准备执行的另一个主内存程序(即进程上下文切换)。 这样,系统就不会浪费CPU时间来等待I / O任务的完成。
多处理 – 多处理是操作系统在多处理器机器上同时执行多个进程的能力。 在多处理系统中,计算机在tme时使用多个CPU。
多任务 – 多任务是操作系统在单处理器机器上同时执行多个任务的能力,这些多任务共享CPU和内存等公共资源。 在多任务系统中,CPU从一个任务切换到下一个任务的速度如此之快,以至于所有任务都在同时执行。
多任务和多程序之间存在差异。 多任务系统中的任务不是整个应用程序,但是当一个进程被分成子任务时,它可以反映到“执行线程”。 每个较小的任务不会劫持CPU直到完成,它们共享一小部分称为Quantum的CPU时间。 多程序和多任务操作系统是时间共享系统。
multithreading – multithreading是多任务的延伸。 multithreading是操作系统将单个应用程序中的特定操作细分为单独的线程的能力。 每个线程都可以并行运行。 操作系统不仅在不同的应用程序之间划分处理时间,而且在应用程序内的每个线程之间划分处理时间
不正确在多程序系统中,在主存储器中加载了多个程序,这些程序准备执行。 一次只有一个程序能够让CPU执行它的指令,而其他所有的程序都在轮到它。 多程序的主要思想是最大限度地利用CPU时间。 假设当前正在运行的进程正在执行一个I / O任务,则操作系统可能会中断该进程,并将控制权交给准备执行的另一个主内存程序(即进程上下文切换)。 这样,系统就不会浪费CPU时间来等待I / O任务的完成。
多处理 – 多处理是操作系统在多处理器机器上同时执行多个进程的能力。 在多处理系统中,计算机在tme时使用多个CPU。
多任务 – 多任务是操作系统在单处理器机器上同时执行多个任务的能力,这些多任务共享CPU和内存等公共资源。 在多任务系统中,CPU从一个任务切换到下一个任务的速度如此之快,以至于所有任务都在同时执行。
多任务和多程序之间存在差异。 多任务系统中的任务不是整个应用程序,但是当一个进程被分成子任务时,它可以反映到“执行线程”。 每个较小的任务不会劫持CPU直到完成,它们共享一小部分称为Quantum的CPU时间。 多程序和多任务操作系统是时间共享系统。
multithreading – multithreading是多任务的延伸。 multithreading是操作系统将单个应用程序中的特定操作细分为单独的线程的能力。 每个线程都可以并行运行。 操作系统不仅在不同的应用程序之间划分处理时间,而且在应用程序内的每个线程之间划分处理时间
多个线程可以存在于一个进程中。 属于同一进程的线程共享相同的内存区域(可以读取和写入相同的variables,并且可以相互干扰)。 相反,不同的进程存在于不同的存储区域,每个进程都有自己的variables。 为了沟通,stream程必须使用其他渠道(文件,pipe道或套接字)。
如果你想并行化一个计算,你可能会需要multithreading,因为你可能希望线程在同一个内存上合作。
说到性能,与线程相比,线程创build和pipe理的速度更快(因为OS不需要分配全新的虚拟内存区域),线程间通信通常比进程间通信更快。 但是线程更难编程。 线程可以相互干扰,并可以写入对方的内存,但这种情况发生的方式并不总是很明显(由于几个因素,主要是指令重新sorting和内存caching),所以你将需要同步原语来控制访问到你的variables。
资源
基本上多编程是一个概念,你同时运行多个程序,假设你运行两个程序,如chrome(浏览器)和计算器(系统应用程序)。
多处理是用户使用多个处理器完成任务的地方。
要知道multithreading,我们需要知道什么是线程。 线程基本上是程序中运行的程序的一部分。 线程的最佳示例是浏览器的选项卡。 如果你有5个标签被打开和使用,那么程序实际上创build了5个程序的线程,这个概念被称为multithreading。
多任务* (分时) *:
Time shared systems allows many users to share the computer simultaneously.
多任务处理:它同时处理一些任务或工作。 在这种情况下,用户可以与系统进行交互。
多种编程方式:同时处理多个程序,不能与系统交互,每一件事都由操作系统决定。
多程序化是计算机系统在单个计算机系统中同时执行不同任务的过程。
多程序: –在同一台计算机上同时执行多个作业。
。
多任务: –同时执行多个任务的o / s。
。