多任务,多程序和多处理之间有什么区别
这是我的大学操作系统考试中经常出现的问题,我找不到很好的答案。我对多任务和多编程了解很多,但需要确认。
多任务,多程序和多处理之间有什么区别
这是我的大学操作系统考试中经常出现的问题,我找不到很好的答案。我对多任务和多编程了解很多,但需要确认。
Answers:
释义维基百科:
多重编程-一台同时运行多个程序的计算机(例如同时运行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上可以驻留多个任务/程序/作业/进程。操作系统的这种功能称为多任务处理。
除了Vaibhav Kumar先生的回答,以上答案均不明确或不明确。[对不起,没有冒犯]
多重编程和任务分配都是在处理器中切换任务的相同概念,不同之处在于切换的概念和原因。
MProgramming:当活动任务需要更长的IO或其他非CPU响应时,为了不使处理器保持空闲,处理器将加载并处理另一个不等待IO并准备就绪的任务。
MTasking:即使在进行MPrograming之后,对于用户来说,也可能感觉只有一个任务正在执行,而另一个正在等待进入cpu。因此,活动任务也从活动CPU交换并保留在一边,另一个任务在很短的时间内就进入了CPU [second],然后再次交换回较早的任务。这样,用户将同时感觉到两个任务都在CPU中存在。但是实际上每个任务在给定的CPU时间(以微秒或毫微秒为单位)仅活动一次
而且MProcessing就像我的计算机具有四核一样,因此我一次使用4个处理器,这意味着我的计算机中发生了4种不同的多编程实例。并且这4个处理器执行了MTasking的另一个功能。
因此,MProcessing> MProgramming> Mtasking
和MThreading n每个任务的另一个分解。这也给用户带来幸福的生活。在这里,没有多个任务(例如word doc和媒体播放器)出现,而小的子任务(例如单词上的文本着色和单词中的自动拼写检查)是同一单词可执行文件的一部分。
不知道我是否能够弄清所有困惑...
多程序-将要执行的作业加载到池中。这些作业中有一定数量被加载到主存储器中,并且从池中选择了一个作业供CPU执行。如果正在执行的程序在某个时刻终止或需要外围设备的服务,则将CPU的控制权交给池中的下一个作业。随着程序终止,更多的作业将加载到内存中以供执行,并且CPU控制将切换到内存中的另一个作业。这样,CPU总是在执行某些程序或其某些部分,而不是等待打印机,磁带驱动器或控制台输入
多重处理-在集成控制下,由独立的CPU同时执行两个或多个程序或指令序列
多任务处理系统-单个CPU同时执行或交错执行两个或多个作业。
多用户系统-一种计算机系统,其中多个终端连接到处理处理任务的主机。
多任务处理-也称为时间共享,因为可以在特定时间定期切换多个任务(或过程),以便用户可以看到它们正在同时运行。
多线程-为了使用户体验更加丰富,这些任务(在单个过程中)进一步分为子任务。这些子任务然后可以在多任务环境中运行。
多处理-是在给定时间内让多个处理器运行一个进程(或程序)的过程。它减少了计算时间。
多重编程-通常在批处理操作系统中使用。在这里,作业(或进程)在执行时获得了完整的CPU和内存。多重编程是在计算机的主存储器中加载许多不同程序的系统,并且第一个程序开始运行。当它完成执行(即处于运行状态)并等待外围设备(即等待状态)时,下一个进程开始运行。这与多任务处理相反,在这种情况下,为每个任务分配一个时隙(也称为Quantum)以执行该任务。
多重编程-一台计算机一次运行多个程序(例如同时运行Excel和Firefox)
多处理-一台计算机一次使用多个CPU
多重编程-在一个时间点可以将多个任务/程序/作业/过程驻留在主存储器中。操作系统的这种能力称为多重编程。
多任务处理:同一时间同一一个CPU上可以驻留多个任务/程序/作业/进程。操作系统的这种功能称为多任务处理。
多用户系统-一种计算机系统,其中多个终端连接到处理处理任务的主机。
多任务处理-在单用户交互环境中,这基本上是多程序,其中OS在主内存中的多个程序之间切换,从而给人一种幻想,即一次运行。用于多任务的常见调度算法是:循环调度,优先级调度(多个队列),最短进程下一个。
多进程就像操作系统以这样的方式处理主内存中的不同作业:在其他人忙于某些任务(例如I / O操作)时,它将时间分配给每个作业。因此,只要至少需要执行一项作业,CPU就永远不会闲置。并由操作系统自动处理
多程序
在应用程序中运行一个以上的程序以执行特定任务。
示例:在MS WORD中,编写文档并发送电子邮件
多任务
运行一个以上的应用程序以执行特定任务。
示例:收听歌曲,玩游戏,同时使用ms word,excel和其他应用程序
多处理
通过处理器运行多条指令。
示例 创建文件时,计算机将使用默认的时间和日期。
多重编程
一次可以将多个任务(作业)过程驻留在主内存中。它的基本设计是减少I / O操作期间的CPU浪费,例如:如果作业当前正在执行并且需要I / O操作。I / O操作使用DMA完成,并且处理器将作业队列中的其他作业分配给作业,直到job1的I / O操作完成。然后job1再次继续。这样可以减少CPU浪费。
多任务处理:-
在这种类型的OS中,多个任务(进程)是同时执行的(同时并不意味着任务在同一时间准确地执行..,因为多任务并不意味着并行)。在此系统中,新任务在其他任务结束之前开始取决于它使用的CPU调度技术&&所有进程共享公共资源。
多处理:
在单个CPU中使用2个或更多处理器。因此任务可以并行执行。但是需要一些黑白同步。
多道-在一个多道系统中,也有在主内存中加载多个程序,其已准备好执行。一次只有一个程序能够使CPU执行其指令,而其他所有程序都在等待轮到自己。多重编程的主要思想是最大限度地利用CPU时间。假设当前正在运行的进程正在执行I / O任务,则OS可能会中断该进程,并将控制权交给准备执行(即,进程上下文切换)的其他主内存程序之一。这样,系统在等待I / O任务完成时不会浪费CPU时间。
多处理-多处理是操作系统在多处理器计算机上同时执行多个进程的能力。在多处理系统中,一台计算机在一tme上使用多个CPU。
多任务处理-多任务处理是操作系统在单处理器计算机上同时执行多个任务的能力,这些多个任务共享CPU和内存等公共资源。在多任务系统中,CPU如此快地从一个任务切换到下一个任务,从而在所有任务同时执行时出现。
多任务和多编程之间存在差异。多任务系统中的任务不是整个应用程序,但是当一个进程分为多个子任务时,它可以引用“执行线程”。每个较小的任务直到完成后才劫持CPU,它们共享一小段称为“量子”的CPU时间。多程序和多任务操作系统是时间共享系统。
多线程-多线程是多任务的扩展。多线程是操作系统将单个应用程序中的特定操作细分为各个线程的能力。这些线程中的每一个都可以并行运行。OS不仅在不同的应用程序之间分配处理时间,还在应用程序中的每个线程之间分配处理时间。
在多程序系统中,主存储器中装载了多个准备执行的程序。一次只有一个程序能够使CPU执行其指令,而其他所有程序都在等待轮换。多重编程的主要思想是最大限度地利用CPU时间。假设当前正在运行的进程正在执行I / O任务,则OS可能会中断该进程并将控制权交给准备执行(即,进程上下文切换)的其他主内存程序之一。这样,系统在等待I / O任务完成时不会浪费CPU时间。
多处理-多处理是操作系统在多处理器计算机上同时执行多个进程的能力。在多处理系统中,一台计算机在一tme上使用多个CPU。
多任务处理-多任务处理是操作系统在单处理器计算机上同时执行多个任务的能力,这些多个任务共享CPU和内存等公共资源。在多任务系统中,CPU如此快地从一个任务切换到下一个任务,从而在所有任务同时执行时出现。
多任务处理和多编程之间有区别。多任务系统中的任务不是整个应用程序,但是当一个进程分为多个子任务时,它可以指代“执行线程”。每个较小的任务直到完成后才劫持CPU,它们共享一小段称为“量子”的CPU时间。多编程和多任务操作系统是时间共享系统。
多线程-多线程是多任务的扩展。多线程是操作系统将单个应用程序中的特定操作细分为各个线程的能力。这些线程中的每一个都可以并行运行。OS不仅在不同的应用程序之间分配处理时间,还在应用程序中的每个线程之间分配处理时间。
多进程就像操作系统以这样的方式处理主内存中的不同作业:在其他人忙于某些任务(例如I / O操作)时,它将时间分配给每个作业。因此,只要至少需要执行一项作业,CPU就永远不会闲置。并由操作系统自动处理,而无需用户与计算机交互。
但是当我们说到MULTITASKING时,用户实际上一次参与了不同的工作-扫雷或检查邮件或其他任何事情。cpu通过在多个作业之间进行切换来执行多个作业,但是切换速度如此之快,以至于用户会幻想两个应用程序同时运行。
因此,mp和mt之间的主要区别在于,在mp中,操作系统以某种方式处理主内存中的不同作业,如果某个作业正在等待某些内容,它将跳至下一个作业执行。在mt中,用户正在与系统交互,并且由于两个或任何应用程序同时运行而产生了错觉。
一个进程中可以存在多个线程。属于同一进程的线程共享同一内存区域(可以读取和写入相同的变量,并且可以互相干扰)。相反,不同的进程驻留在不同的存储区中,并且每个进程都有自己的变量。为了进行通信,进程必须使用其他通道(文件,管道或套接字)。
如果要并行化计算,则可能需要多线程处理,因为您可能希望线程在同一内存上进行协作。
说到性能,线程的创建和管理速度比进程要快(因为操作系统不需要分配整个新的虚拟内存区域),并且线程间通信通常比进程间通信快。但是线程很难编程。线程可以互相干扰,并且可以互相写入内存,但是这种情况并不总是很明显(由于多种因素,主要是指令重新排序和内存缓存),因此您将需要同步原语来控制访问您的变量。
基本上是多程序是一个概念,其中您同时运行多个程序,假设您运行了两个程序,例如chrome(浏览器)和计算器(系统应用程序)。
多处理是用户使用多个处理器来完成一项任务的地方。
要了解多线程,我们需要知道什么是线程。线程基本上是在程序内运行的程序的一部分。线程的最佳示例是浏览器的选项卡。如果要打开和使用5个选项卡,则程序实际上会创建程序的5个线程,此概念称为多线程。