假设每个线程的关联性是所有处理器。每当线程准备就绪时,内核是否会尝试寻找空闲处理器来运行它?
答案1
内核的进程调度程序不会等待核心变得空闲,它实际上根据affinity
和来决定在每个核心上顺序获取处理片priority
。
当线程处于休眠或等待 I/O 状态时,它将被跳过,直到下次调度程序在其处理队列中循环回到它。
更详细地理解这一点需要阅读源代码。请注意,这是这内核中最复杂的部分。
假设每个线程的关联性是所有处理器。每当线程准备就绪时,内核是否会尝试寻找空闲处理器来运行它?
内核的进程调度程序不会等待核心变得空闲,它实际上根据affinity
和来决定在每个核心上顺序获取处理片priority
。
当线程处于休眠或等待 I/O 状态时,它将被跳过,直到下次调度程序在其处理队列中循环回到它。
更详细地理解这一点需要阅读源代码。请注意,这是这内核中最复杂的部分。