它们或多或少是同义词。当涉及到一个CPU(正在从一个进程切换到另一个同时在内存中重新启动的进程)时,多编程将更有用。随着线程的来临,它不再在程序之间切换...
至少从80286开始,处理器(尤其是英特尔产品线)就具有真正的多任务处理机制(定时器中断,特权指令)。最早的Mac机中使用的M68000是具有成熟的多处理能力的处理器。这不是体系结构的最新发展。请注意,共享系统是第一次将用户的程序切入和切出,因此从内存中同时包含多个程序的意义上来说,并不是真正的多程序。
这个想法是让多个程序同时驻留在内存中,这样,当一个程序释放CPU(通过结束或等待)时,就有其他程序可以使用CPU,从而提高了CPU利用率(并且您可以认为每个CPU突发都是准备使用I / O,增加整体使用率)。这样可以提供更好的吞吐量(在批处理系统中很重要)。
随着时间共享,几个交互式用户连接到了计算机。同样的想法,保留它们的程序,但要在它们之间进行足够快的切换,以使它们具有“拥有一台计算机”的错觉。需要一个中断CPU的计时器以避免独占。
在个人计算机上,一次运行多个程序的动机没有多大的积极性,至少在最初没有(一个用户在严格受限的机器之前并不期望太多)。随着计算机的发展,一种解决此问题的方法可以一次允许多个程序,而无需太多更改操作系统之所以称为“协作式多任务处理”,是因为每个程序都必须定期向操作系统屈服,以选择另一个程序来运行。由于该程序完全受控,因此可以选择在其他人无法解决的情况下执行此操作。不用说,一个“遗忘”的程序可以完全履行其产生收益的职责,其性能会得到有趣的提升……早期的Mac系统以这种方式工作,并且由于上述原因,这种程序并没有持续太长时间。在没有或只有基本操作系统且运行严格控制的程序集的嵌入式系统上,这当然是一个吸引人的选择。