1

我不确定 CPU 是否对多任务处理有一定的硬件要求?8086芯片可以做多任务吗?

4

1 回答 1

2

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

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

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

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

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

有关抢先式多任务处理及其在 x86 架构中如何工作的更多信息,我推荐这篇文章:http ://wiki.osdev.org/Multitasking_Systems

编辑:

MP/M-86 操作系统在 8086 上使用了可以被认为是抢占式多任务模型,通过使用硬件定时器来中断进程并移动到下一个进程,因此 8086 能够形成或抢占;但是,上面提出的许多相同问题仍然令人担忧。例如,每个进程都可以访问其他进程的内存空间。通过禁用硬件定时器中断也没有什么可以阻止进程劫持系统。为了拥有强大的多任务环境,需要大量的硬件支持。

于 2013-10-17T17:53:01.963 回答