安排Linux进程时,确实会在生成和处理定时器中断时发生,是不是?如果错了,那么任何进一步的解释?谢谢!
答案 0 :(得分:2)
没有。每当进程停止运行时也会发生调度 - 最明显的是,当一个进程退出时,以及它进行系统调用导致它阻塞的任何点(即内核无法立即返回结果的任何内容)。
答案 1 :(得分:1)
部分正确。根据当前的Linux调度程序(CFS),在每个调度程序时,调度程序会检查是否是时候进行任何抢占。除此之外,还有其他一些任务被安排的情况 - a)创建任务时,即fork(); b)当一个任务主动放弃一个CPU时,即通过调用schedule(); c)退出任务时。
如果是b& c,有可能在当前CPU上没有进程运行。在那种特殊情况下 - 即将空闲CPU尝试进行负载均衡,即尝试将负载(任务)从最繁忙的CPU传输到自身并尝试运行该特定任务。这是关于Linux上的进程如何安排的粗略总结。