cpu调度是基于linux中的进程还是线程?

时间:2017-02-05 04:21:07

标签: cpu scheduling

在一些教科书中,有一章被命名为“进程调度”。在这一章中,它讨论了cpu调度。虽然在许多文章中,他们使用线程调度来引用cpu调度。 我知道进程和线程的概念是不同的。我很困惑cpu调度程序实际上在什么操作,线程或进程?

1 个答案:

答案 0 :(得分:1)

部分基于量子,量子是线程执行的基本时间量。此外,我相信有一个优先级,所以多个线程在cpu上竞争时间。它们等待具有相同优先级的其他线程,然后运行直到它们超出量子。然后他们被送到后面。这不是确切的答案,而是高级别的总结。

此外,我对Windows更熟悉,但我认为原则相同。该过程不是可执行代码,而是存储单元。所以这将是线程。我读过的Linux有一个比windows更复杂的调度算法(更多的开销可能作为权衡),但我完全有可能推测同一进程的线程争用cpu时间。区别在于没有必要的上下文切换导致线程共享进程使用相同的地址空间。

这可以解释当使用更多线程而不是核心的物理数量(英特尔上的线程)时收益减少。进程的线程很少有机会同时运行。相反,他们竞争。因此,如果您有4000个线程,则表示其中任何一个线程运行的时间减少了1/4000。但是,如果您使用4000个线程来处理单个同步问题,使用共享存储加载当前状态,则可以通过拥有更大百分比的CPU时间来获得性能增益,因为运行4000个线程中的任何一个的概率是更高。