为什么 Linux 内核调度程序代码对运行队列有锁?调度程序是否生成内核线程,并且锁是为了防止两个这样的线程以避免同时修改运行队列?
答案1
每个处理器都有一个运行队列,并且可能想要访问其他处理器的其他运行队列。当运行队列由两个或多个处理器操作时,需要锁定以避免损坏。
参考:Robert Love 的《Linux 内核开发》(部分可在http://www.informit.com/articles/article.aspx?p=101760&seqNum=2)
为什么 Linux 内核调度程序代码对运行队列有锁?调度程序是否生成内核线程,并且锁是为了防止两个这样的线程以避免同时修改运行队列?
每个处理器都有一个运行队列,并且可能想要访问其他处理器的其他运行队列。当运行队列由两个或多个处理器操作时,需要锁定以避免损坏。
参考:Robert Love 的《Linux 内核开发》(部分可在http://www.informit.com/articles/article.aspx?p=101760&seqNum=2)