Operating system 多任务只是微处理器或操作系统的一项功能吗?

Operating system 多任务只是微处理器或操作系统的一项功能吗?,operating-system,cpu,multitasking,x86-16,Operating System,Cpu,Multitasking,X86 16,我不确定CPU上是否有用于多任务处理的特定硬件要求?可以在8086芯片上进行多任务处理吗?是和否。有几种多任务处理方法,每种方法都需要不同程度的硬件支持 8086芯片能够进行多任务处理,但只有一种称为“协作多任务”的多任务处理(早期版本的windows,即3.0使用了这一功能)。它的工作原理是,系统上的每个程序必须每隔一段时间将控制权交还给操作系统。操作系统依次将控制权传递给下一个程序,该程序必须在一段时间后将控制权交还给操作系统 有一些明显的缺点,如果一个程序永远不会把控制权交还给操作系统怎么

我不确定CPU上是否有用于多任务处理的特定硬件要求?可以在8086芯片上进行多任务处理吗?

是和否。有几种多任务处理方法,每种方法都需要不同程度的硬件支持

8086芯片能够进行多任务处理,但只有一种称为“协作多任务”的多任务处理(早期版本的windows,即3.0使用了这一功能)。它的工作原理是,系统上的每个程序必须每隔一段时间将控制权交还给操作系统。操作系统依次将控制权传递给下一个程序,该程序必须在一段时间后将控制权交还给操作系统

有一些明显的缺点,如果一个程序永远不会把控制权交还给操作系统怎么办?然后整个系统挂起,无法终止那个坏程序

今天使用的多任务处理类型称为先发制人的多任务处理。它通过中断每个程序并将控制权传递给另一个程序来工作。程序根本不需要知道多任务处理,它们可以被编写成假设它们是计算机上运行的唯一程序,因此实际的多任务处理元素对它们来说是透明的。这种多任务处理需要所谓虚拟内存形式的硬件支持。操作系统需要能够分离每个程序的地址空间,以便每个程序不直接知道彼此。然后使用硬件中断定时器中断每个程序,以便操作系统可以从一个任务移动到下一个任务

不同的体系结构有不同的方法来实际执行任务切换。完全在软件中完成这一切是可能的,只需要支持虚拟内存和硬件计时器,但是一些体系结构支持简化此过程的结构,例如具有加载任务寄存器的x86。然而,这对于实现多任务处理并不是绝对必要的,我所知道的大多数操作系统都会自行切换任务

有关先发制人的多任务处理及其在x86体系结构中的工作方式的更多信息,我推荐本文:

编辑:


MP/M-86操作系统在8086上使用了一种可被视为抢占式多任务模型,通过使用硬件定时器中断进程并进入下一个进程,因此8086可以采用一种形式或抢占;然而,上述提出的许多相同问题仍然令人担忧。例如,每个进程都可以访问其他进程的内存空间。通过禁用硬件定时器中断,也无法阻止进程劫持系统。为了拥有一个健壮的多任务环境,需要大量的硬件支持。

MP/M-86和并发CP/M不是在普通8086 CPU上支持抢占式多任务吗?@AndrewJ.Brehm你说得对,在配备MP/M-86的8086上有抢占式多任务。我添加了一个附录来解决这个问题。