有人告诉我Linux可以在不支持多任务的CPU上运行。
但如果只有一个核心,不支持多任务,那么Linux如何实现多任务呢?
假设我想运行两个程序,每个程序都需要 1 小时才能终止。 Linux 如何在约 100 毫秒后暂停第一个程序以切换到第二个程序?
我能想到以下两种情况:
- 不可能同时运行多个任务。
- Linux 使用硬件定时器来中断正在运行的进程。
答案1
我不清楚你所说的支持多任务的CPU是什么意思。我猜您正在考虑多核 CPU,但它们并不是多任务处理的先决条件;多任务操作系统早于多 CPU 系统(更不用说多核 CPU)了。
然而,就暂停一个进程以运行另一个进程而言,Linux 使用了多种技术,包括硬件计时器(间接)。本质上,任何时候调用内核时,它都可以决定更改正在运行的进程。详细信息请参阅以下帖子: