Har*_*ald 1 linux scheduling kernel
我读到 Linux 有一个 O(1) 调度程序,但这并没有告诉我上下文切换实际上需要多长时间。有人有一些当前的数字吗?
我知道这取决于很多因素,例如 CPU 类型、频率、DRAM 连接性、缓存等等,但我很高兴知道以毫秒、微秒、纳秒为单位的数量级或所需的处理器周期的粗略数量。抢占一个进程,决定运行下一个进程并实际启动它。
Linux 上的默认调度程序在过去十年中并不是O(1)调度程序,它是完全公平调度程序,它的任务数量为O(log n)运行队列。您\xe2\x80\x99d 必须在您的特定系统和工作负载上对您感兴趣的特定场景进行基准测试;人们可以在 Internet 上找到基准测试,每个上下文切换的数字通常约为 0.5-2 \xc2\xb5s ,即使切换到先前未在 CPU 上调度的任务时也是如此。
\n\n正如您所提到的,开销会根据情况而有很大差异,包括各种缓存中的代码和数据的存在。如今,开销还取决于内核版本和配置,特别是取决于哪些安全对策处于活动状态以及 CPU 对它们\xe2\x80\x99 的支持程度。最近的一篇论文给出了后者的相对数字,与 4.0 基线相比,变化范围从 \xe2\x80\x9314% 到 +98%。
\n 归档时间: |
|
查看次数: |
737 次 |
最近记录: |