【发布时间】:2015-05-05 15:00:35
【问题描述】:
上下文:
Linux 64。 英特尔酷睿 2 双核。
问题:
Linux 内核在哪里与 cpu “通信”? 我阅读了调度程序的源代码,但无法理解它们如何进行通信以及内核如何告诉 cpu 需要处理某些内容。
我知道有运行队列,但不是有什么东西可以让内核通过总线中断 cpu 吗?
更新
它稍微扩展了我最初的问题:我们如何告诉 cpu 任务队列在哪里?
因为 cpu 必须轮询某些东西,我想我们会在某个时候告诉它。错过了内核代码中的这一点。
【问题讨论】:
-
内核是CPU正在运行的程序。就这样。它是内存中的一堆命令,由 CPU 获取并执行。
-
@Larry 你在说什么队列?
-
如果绝对无事可做.. CPU 内核可能会停止.. 至少 cpu 调控器就是这样做的。
-
这个问题写的太宽泛了。请指定架构,最好指定单一类型的 CPU,例如核心 i5 等。由于编写了这个问题,因此没有一个好的答案,因为它非常依赖于硬件。
-
@Larry Understanding the Linux Kernel 有一个很棒的章节介绍了 Linux 调度程序的工作原理。
标签: c linux linux-kernel scheduler