欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )

发布时间:2025/6/17 linux 53 豆豆

文章目录

  • 一、调度器
    • 0、调度器概念
    • 1、调度器目的
    • 2、调度器主要工作
    • 3、调度器位置
    • 4、进程优先级
    • 5、抢占式调度器
  • 二、Linux 内核进程状态 API 简介
  • 三、Linux 进程状态





一、调度器




0、调度器概念


Linux 内核的 " 进程调度 " 是按照 设计好的调度算法 安排的 , 该算法对应的功能模块 称为 " 调度器 " , 英文名称是 Scheduler ;


1、调度器目的


进程调度 目的是 最大限度利用 CPU 资源 , 也就是 CPU 时间片 ;


2、调度器主要工作


" 调度器 " 主要的工作 :

  • ① 就绪 -> 执行 : 选择 " 就绪状态 " 的进程执行 ; ( 占用 CPU )
  • ② 执行 -> 就绪 : 打断 " 执行状态 " 的进程执行 , 先进入 " 阻塞状态 " , 然后变为 " 就绪状态 " ; ( 让出 CPU )

" 调度器 " 可以 切换 " 进程状态 " , 主要是 " 就绪状态 "" 执行状态 " 这两个状态之间相互切换 ;


3、调度器位置


调度器 在 如下的 进程状态图 中的位置是 " 就绪状态 " 与 " 运行状态 " 之间 ;

  • 就绪状态 : 进程 已经 获取了 相关资源 , 以及 运行条件准备就绪 ;
  • 执行状态 : CPU 时间片被分配给了该进程 , 正在 CPU 中执行该进程 ;


4、进程优先级


" 调度器 " 根据 " 进程优先级 " 进行 进程调度 ;


进程优先级 参考 【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 ) 博客 ;

进程优先级限期进程实时进程普通进程
prio 调度优先级等于 normal_prio 字段等于 normal_prio 字段等于 normal_prio 字段
static_prio 调度优先级字段 值总为 000 , 没有意义字段 值总为 000 , 没有意义120+nice\rm 120 + nice120+nice , 其数值越小 , 优先级越高
normal_prio 正常优先级 −1-1199−rt_priority99 - \rm rt\_priority99rt_priority120+nice\rm 120 + nice120+nice , 其数值越小 , 优先级越高
rt_priority 实时优先级字段 值总为 000 , 没有意义字段 值为 111 ~ 999999 , 其数值越大 , 优先级越高字段 值总为 000 , 没有意义

5、抢占式调度器


" 抢占式调度器 " 概念 : 如果 " 调度器 " 支持 " 就绪状态 " " 运行状态 " 之间可以相互转换 , 则该调度器称为 " 抢占式调度器 " ;





二、Linux 内核进程状态 API 简介



Linux 内核进程状态有以下五种 :

  • TASK_RUNNING 执行 / 就绪状态
  • TASK_INTERRUPTIBLE 可中断睡眠状态
  • TASK_UNINTERRUPTIBLE 不可中断睡眠状态
  • __TASK_STOPPED 进程停止状态
  • EXIT_ZOMBIE 僵尸状态

上面的 555 种状态是 Linux 内核中定义的状态 , 详细细节参考 【Linux 内核】进程管理 ( Linux 内核中的进程状态 | TASK_RUNNING | TASK_INTERRUPTIBLE | __TASK_STOPPED | EXIT_ZOMBIE ) 博客 ;





三、Linux 进程状态



Linux 进程有如下状态 :

  • 创建状态 : 进程 刚被创建时 , 处于创建状态 ;
  • 就绪状态 : 进程 已经 获取了 相关资源 , 以及 运行条件准备就绪 ; 一旦和获取 CPU 时间片使用权 , 就立刻进入 执行状态 ;
  • 执行状态 : CPU 时间片被分配给了该进程 , 正在 CPU 中执行该进程 ;
  • 阻塞状态 : 等待被分配 CPU 时间片的过程 中 , 处于该状态 ;
  • 终止状态 : 进程 终止后的状态 ;

状态之间的转换 , 参考 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 ) 博客 ;

总结

以上是生活随笔为你收集整理的【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。