Linux如何在不支持多任务的CPU上实现多任务?

Linux如何在不支持多任务的CPU上实现多任务?

有人告诉我Linux可以在不支持多任务的CPU上运行。

但如果只有一个核心,不支持多任务,那么Linux如何实现多任务呢?

假设我想运行两个程序,每个程序都需要 1 小时才能终止。 Linux 如何在约 100 毫秒后暂停第一个程序以切换到第二个程序?

我能想到以下两种情况:

  • 不可能同时运行多个任务。
  • Linux 使用硬件定时器来中断正在运行的进程。

答案1

我不清楚你所说的支持多任务的CPU是什么意思。我猜您正在考虑多核 CPU,但它们并不是多任务处理的先决条件;多任务操作系统早于多 CPU 系统(更不用说多核 CPU)了。

然而,就暂停一个进程以运行另一个进程而言,Linux 使用了多种技术,包括硬件计时器(间接)。本质上,任何时候调用内核时,它都可以决定更改正在运行的进程。详细信息请参阅以下帖子:

相关内容