我正在学习内核/操作系统,但很难理解上下文切换/调度在较低级别的工作方式。
例如,我有一个简单的循环程序:
while (1) {}
如果我在单核机器上运行上述代码,我目前的理解是它将无限期运行,并且 CPU 基本上永远陷入循环并变得无响应,但这在现实世界中并非如此。
那么,一旦该程序开始执行,内核如何抢占上述进程?它是否需要硬件支持,允许内核线程每隔一段时间启动一次以进行上下文切换和调度?
我正在学习内核/操作系统,但很难理解上下文切换/调度在较低级别的工作方式。
例如,我有一个简单的循环程序:
while (1) {}
如果我在单核机器上运行上述代码,我目前的理解是它将无限期运行,并且 CPU 基本上永远陷入循环并变得无响应,但这在现实世界中并非如此。
那么,一旦该程序开始执行,内核如何抢占上述进程?它是否需要硬件支持,允许内核线程每隔一段时间启动一次以进行上下文切换和调度?