macOS 是否使用空闲线程进行调度?如果是这样,我该如何监控其统计信息?



我最近了解到,一些操作系统调度程序在调度期间将使用空闲线程(多核处理器中的每个内核一个(,以便始终至少有一个可运行的线程。我想知道macOS是否做了类似的事情?如果是这样,如何查看空闲线程的 CPU 时间?我尝试使用活动监视器查看是否可以找到与此空闲线程或调度程序相关的任何内容,但我看不到在那里找到任何内容。任何指示将不胜感激!

2年零6个月后的原始海报(现在在Apple的平台内核团队工作(,跟进macOS中空闲线程的问题。

所以macOS使用XNU操作系统内核,它与iOS/iPadOS/tvOS/等共享,所以这里真正的问题是XNU调度程序是否使用空闲线程;答案是肯定的。实际上,您可以在XNU的开源放置中找到真正的空闲线程代码 这里 (搜索idle_thread()函数(.正如我当时的预感一样,实际上有一个每个处理器的空闲线程(在此处查找struct processoridle_thread字段(。据我所知,没有办法使用活动监视器来判断各种处理器执行空闲线程所花费的时间。

最新更新