Linux 中的进程调度程序是什么?

Linux 中的进程调度程序是什么?

我读过维基百科关于进程调度程序:

进程调度器是一部分操作系统决定在某个时间点运行哪个进程。

我真的不明白这意味着什么。 Linux 中的进程调度程序是什么?它是内核的一部分吗?它到底有什么作用?

答案1

在Linux中,进程调度器是一个核心部分内核。它不作为单独的线程或模块存在,而是作为函数实现,__schedule()

进程调度程序的工作是决定接下来应该运行哪个进程。系统中的每个处理器都有一个运行队列,它是等待在CPU上运行的进程列表。当它被调用时,调度程序会查看此进程列表,并决定接下来运行哪一个;这可以是之前运行的进程(或者更确切地说,线程),也可以是另一个进程。内核中的各种其他系统在运行队列中添加和删除任务,或者将它们从一个 CPU 的运行队列移动到另一个 CPU 的运行队列。

内核将在多种情况下重新调度进程:每当进程被阻塞(通过信号量、互斥体等)时,以及每当请求重新调度并且系统从用户空间转换到内核或返回时。计时器滴答不直接调用调度程序,它请求重新安排。

相关内容