文章目录

  • 一、调度器
    • 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-1−1 99−rt_priority99 - \rm rt\_priority99−rt_priority 120+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 内核进程状态 )相关推荐

  1. 抢占式调度与非抢占式调度

    资料来源 这是本人在操作系统期中考试前复习是碰到的问题,花了一些时间解决,现在记录下来. 引 在学习 CPU 调度的时候,关于抢占式.非抢占式调度方式有不理解的地方,想不到google一下就出来了很好 ...

  2. Java——程序的调度_分时调度模型和抢占式调度模型

    在计算机中,线程调度有两种模型,分别是分时调度模型和抢占式调度模型. 分时调度模型是指让所有的线程轮流获得CPU的使用权,并且平均分配每个线程占用的CPU时间片. 抢占式调度模型是指让可运行池中优先级 ...

  3. Linux抢占式调度简介(转)

    原文链接:https://www.cnblogs.com/sjks/p/10888620.html 参考链接:https://blog.csdn.net/wudongxu/article/detail ...

  4. Linux学习笔记39——任务调度:什么是例行性工作调度、仅执行一次的工作调度、循环执行的例行性工作调度、可唤醒停机期间的工作任务

    一.什么是例行性工作调度 1,Linux 工作调度的种类: at, cron 2,CentOS Linux 系统上常见的例行性工作 二,仅执行一次的工作调度 1,atd 的启动与 at 运行的方式 a ...

  5. linux内核基本模型,Linux设备模型(1)_基本概念

    Linux设备模型(1)_基本概念 作者:wowo 发布于:2014-2-27 17:01 分类:统一设备模型 1. 前言 在"Linux内核的整体架构"中,蜗蜗有提到,由于Lin ...

  6. 黑莓手机时代落幕;阿里巴巴为 Linux 内核调度器提出新概念;清理 Linux 内核“依赖地狱” | 开源日报

    整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...

  7. 【Linux 内核】CFS 调度器 ④ ( 调度子系统组件模块 | 主调度器、周期性调度器 | 调度器类 )

    文章目录 一.调度子系统组件模块 二.主调度器.周期性调度器 三.调度器类 一.调度子系统组件模块 调度器 需要对 被调度的进程 进行 排序 和 调度管理 , 进程管理过程需要 调度器 的 组件模块 ...

  8. kernel调度(2)----主调度器和周期性调度器

    进程切换 上一章介绍了调度相关的基础知识,那么这章准备介绍一下进程切换相关的原理.包括主调度器和周期性调度器都做了哪些工作.以及进程切换都做了哪些工作. 周期性调度器都做了什么 我们知道周期性调度器就 ...

  9. 深入理解Linux内核之主调度器(下)

    4.进程上下文切换 接前文:深入理解Linux内核之主调度器(上) 前面选择了一个合适进程作为下一个进程,接下来做重要的上下文切换动作,来保存上一个进程的"上下文"恢复下一个进程的 ...

最新文章

  1. 完美脱壳组装PE的一般步骤(Obsidium1.3.6.4 DEMO 主程序)
  2. 详解HashMap数据结构实现
  3. html 转word c#,c#操作word类,进行html和word文档的互相转换
  4. 得罪全球首富的下场?曝光贝佐斯婚外情丑闻的小报将被卖身...
  5. php 唤醒http进程,真正的PHP多线程(绝非fork或者用http再开进程)_PHP教程
  6. Java API 中文版 谷歌翻译 拿走不谢 jdk api 1.8_google
  7. 数据可视化 基于TMDB数据集的电影数据分析(项目源码 + 数据集 + 课程设计说明书 + 可视化图表+ 运行说明等)
  8. MySQL安装及应用合集(4):MySQL库表基本操作-增删改查
  9. 00007__js自执行函数(function(){})()前加个分号是什么意思
  10. mysql数据库常用名词_【千寻】MySQL数据库名词注释(持续更新)
  11. matlab中stract用法_matlab初学之strcat、num2str
  12. Windows10系统批量获取所有用户名称、修改所有用户名称
  13. HBase的java代码开发(完整源码)
  14. W7 关闭 ss 无法上网 解决方法
  15. Stata 新命令 readWind:快速读入并转换万德数据
  16. 【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结
  17. 思科模拟器PacketTracer7--利用一台交换机和2台pc互连构成小型局域网
  18. Navicat Premium 使用技巧
  19. 【调剂】黑龙江大学电子工程学院王国涛副教授课题组招收2022级硕士研究生
  20. HTML5另类塔防游戏 -『三国战线』发布

热门文章

  1. Windows 环境 Tomcat 的 HTTPS 单向认证和双向认证的配置
  2. 基于busybox的Linux小系统制作 (initrd)
  3. CPU性能监控之一------CPU架构
  4. lsnrctl 与 tnsnames.ora 的联系
  5. T^TOJ - 1251 - 。◕‿◕。TMD - 欧拉函数 - 质因数分解
  6. Yii 判断是不是post方式提交的数据
  7. chrome插件下载
  8. iOS10系统下调用系统功能权限以及相关设置
  9. Android中配置JDK和SDK的环境变量
  10. Android 布局中 如何使控件居中