gpt4 book ai didi

linux - Linux调度器如何在多核处理器上调度进程?

转载 作者:IT王子 更新时间:2023-10-29 00:35:43 26 4
gpt4 key购买 nike

多核处理器利用线程级并行性,这意味着多个线程并行运行。假设,一个进程只有一个线程,那么在这个进程执行过程中,其他核是否一直处于空闲状态?在linux系统中,调度器将进程和线程都视为一个任务。它在调度时不区分进程和线程。那么,这是否意味着不同的核并行执行不同进程的不同线程呢?

当上下文切换发生时,这种情况是只发生在一个核心还是所有的 cpu 核心上?

最佳答案

您是对的:从 Linux 调度程序的角度来看,进程和线程是相同的。这些任务根据调度程序的规则排队等待轮到它们。

有优先级或 CPU 亲和性等调度规则(以防止线程迁移到另一个内核并保留缓存数据)。

上下文切换可能每隔固定时间(时间片)在内核上发生一次,因为 CPU 会定期自动运行一些内核代码以允许抢占。根据调度程序的规则,一个任务可以运行多个时间片。当线程调用使其无法运行的函数(例如等待 IO)时,也可能发生上下文切换。

在某些情况下,即使不是全部,每个内核都有一个调度进程来完成所有这些工作。

关于superuser也有类似的问题

关于linux - Linux调度器如何在多核处理器上调度进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20143143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com