gpt4 book ai didi

linux - 为什么我们在 linux 中需要一个 swapper 任务?

转载 作者:IT老高 更新时间:2023-10-28 12:37:23 28 4
gpt4 key购买 nike

当在任务调度点运行队列中没有更多可运行任务时,选择运行空闲任务(又名交换器任务)。但是这个如此特殊的任务有什么用呢?另一个问题是为什么我在用户空间的“ps aux”输出(PID=0)中找不到这个线程/进程?

最佳答案

原因是历史性的和程序性的。空闲任务是正在运行的任务,如果没有其他任务可以运行,就像你说的那样。它具有最低的优先级,这就是为什么它正在运行,没有其他任务可运行。

程序化原因:这大大简化了进程调度,因为您不必关心特殊情况:“如果没有可运行的任务会发生什么?”,因为总是至少有一个任务可以运行,即空闲任务.您还可以计算每个任务使用的 CPU 时间量。如果没有空闲任务,哪个任务会占用没人需要的 CPU 时间?

历史原因:在我们拥有能够降压或进入省电模式的 CPU 之前,它必须随时全速运行。如果没有可运行的任务,它会运行一系列 NOP 指令。今天空闲任务的调度通常使用HLT指令(停止)来降低cpu,因此可以节省电力。所以在我们这个时代的空闲任务中不知何故有一个功能。

在Windows中你可以在进程列表中看到空闲任务,它是空闲进程。

关于linux - 为什么我们在 linux 中需要一个 swapper 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/464483/

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