【问题标题】:How os dispatch threads and process on cpuos如何在cpu上调度线程和进程
【发布时间】:2017-08-04 16:16:06
【问题描述】:

我想知道 linux os 如何填充 /proc/cpuinfo 特殊文件。是否有 cpu 指令给出 cpu 和 cores 的数量?

是否有 x86 汇编指令可以在特定 cpu 上切换线程或进程?

【问题讨论】:

标签: x86


【解决方案1】:

BIOS 使用有关系统中处理器的信息填充 ACPI 表(特别是 APIC 和 MADT)。 Linux 读取这些表以了解有多少处理器。

处理器确实有办法切换线程或进程*,但没有现代操作系统使用它们。如果您愿意,可以阅读软件开发人员手册(第 3 卷,第 7 节)中的任务。

* 具体来说,通过任务门的远跳转或调用、来自嵌套任务的 iret 或通过任务门的中断。

【讨论】:

  • 你说没有现代操作系统使用它,但操作系统应该自己调度进程?
  • @Bob,操作系统可以使用 iret、sysexit 或 sysret 启动/恢复进程。
  • 有没有办法用 virtualbox 或 kvm 记录和查看所有 cpu 指令?我想了解
最近更新 更多