本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
Linux 进程调度器是一种基于优先级的抢占式调度器。调度程序根据其优先级和其他因素选择下一个要运行的进程。调度程序实现为先进先出 (FIFO) 队列。
Linux 进程调度器支持多种调度算法:
*先进先出(FIFO)
调度程序使用以下算法来选择要运行的下一个进程:
每个进程都分配了一个优先级。优先级是一个介于-20和19之间的整数值。优先级值越低,进程的优先级越高。进程的默认优先级为 0。
可以使用“nice”命令为进程分配更高的优先级。例如,要为 firefox
进程分配 10 的优先级,您可以使用以下命令:
$ nice -n 10 firefox
可以使用 renice 命令为进程分配较低的优先级。例如,要将 -10 的优先级分配给 firefox
进程,您可以使用以下命令:
$ renice -n -10 firefox
进程分为以下调度类之一:
实时进程具有最高优先级。他们保证被安排。
尽力而为进程的优先级介于 0 和 99 之间。它们不能保证被调度。
空闲进程的优先级最低。只有在没有其他进程要运行时才会安排它们。
可以使用以下策略之一安排进程:
FIFO 是最简单的调度策略。它按照进程的创建顺序安排进程。
RR 是一种更高级的调度策略。它以循环方式安排进程。
SPP是一种静态优先级调度策略。它根据进程的静态优先级来安排进程。
DPP 是一种动态优先级调度策略。它根据进程的动态优先级来安排进程。
MQS 是一种多队列调度策略。它根据队列调度进程。
CFS 是一种完全公平的调度策略。它根据进程的等待时间来安排进程。
Linux 进程调度器使用以下参数来调度进程:
nice
: 进程的优先级。rt_priority
:进程的实时优先级。policy
: 进程的调度策略。sched_latency
:进程在被调度之前可以延迟的最长时间。sched_min_granularity
:进程调度之间的最短时间。sched_wakeup_granularity
:进程被唤醒时的调度间隔时间。Linux 进程调度器是一种基于优先级的抢占式调度器。调度程序根据其优先级和其他因素选择下一个要运行的进程。调度程序实现为先进先出 (FIFO) 队列。
调度程序使用以下算法来选择要运行的下一个进程:
每个进程都分配了一个优先级。优先级是一个介于-20和19之间的整数值。优先级值越低,进程的优先级越高。
进程分为以下调度类之一:
实时进程具有最高优先级。他们保证被安排。
尽力而为进程的优先级介于 0 和 99 之间。它们不能保证被调度。
空闲进程的优先级最低。只有在没有其他进程要运行时才会安排它们。
可以使用以下策略之一安排进程:
FIFO 是最简单的调度策略。它按照进程的创建顺序安排进程。
RR 是一种更高级的调度策略。它以循环方式安排进程。
SPP是一种静态优先级调度策略。它根据进程的静态优先级来安排进程。
DPP 是一种动态优先级调度策略。它根据进程的动态优先级来安排进程。
MQS 是一种多队列调度策略。它根据队列调度进程。
CFS 是一种完全公平的调度策略。它根据进程的等待时间来安排进程。
Linux 进程调度器使用以下参数来调度进程:
nice
: 进程的优先级。rt_priority
:进程的实时优先级。policy
: 进程的调度策略。sched_latency
:进程在被调度之前可以延迟的最长时间。sched_min_granularity
:进程调度之间的最短时间。sched_wakeup_granularity
:进程被唤醒时的调度间隔时间。