【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )
文章目录
- 一、调度器
- 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 内核进程状态 )相关推荐
- 抢占式调度与非抢占式调度
资料来源 这是本人在操作系统期中考试前复习是碰到的问题,花了一些时间解决,现在记录下来. 引 在学习 CPU 调度的时候,关于抢占式.非抢占式调度方式有不理解的地方,想不到google一下就出来了很好 ...
- Java——程序的调度_分时调度模型和抢占式调度模型
在计算机中,线程调度有两种模型,分别是分时调度模型和抢占式调度模型. 分时调度模型是指让所有的线程轮流获得CPU的使用权,并且平均分配每个线程占用的CPU时间片. 抢占式调度模型是指让可运行池中优先级 ...
- Linux抢占式调度简介(转)
原文链接:https://www.cnblogs.com/sjks/p/10888620.html 参考链接:https://blog.csdn.net/wudongxu/article/detail ...
- Linux学习笔记39——任务调度:什么是例行性工作调度、仅执行一次的工作调度、循环执行的例行性工作调度、可唤醒停机期间的工作任务
一.什么是例行性工作调度 1,Linux 工作调度的种类: at, cron 2,CentOS Linux 系统上常见的例行性工作 二,仅执行一次的工作调度 1,atd 的启动与 at 运行的方式 a ...
- linux内核基本模型,Linux设备模型(1)_基本概念
Linux设备模型(1)_基本概念 作者:wowo 发布于:2014-2-27 17:01 分类:统一设备模型 1. 前言 在"Linux内核的整体架构"中,蜗蜗有提到,由于Lin ...
- 黑莓手机时代落幕;阿里巴巴为 Linux 内核调度器提出新概念;清理 Linux 内核“依赖地狱” | 开源日报
整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...
- 【Linux 内核】CFS 调度器 ④ ( 调度子系统组件模块 | 主调度器、周期性调度器 | 调度器类 )
文章目录 一.调度子系统组件模块 二.主调度器.周期性调度器 三.调度器类 一.调度子系统组件模块 调度器 需要对 被调度的进程 进行 排序 和 调度管理 , 进程管理过程需要 调度器 的 组件模块 ...
- kernel调度(2)----主调度器和周期性调度器
进程切换 上一章介绍了调度相关的基础知识,那么这章准备介绍一下进程切换相关的原理.包括主调度器和周期性调度器都做了哪些工作.以及进程切换都做了哪些工作. 周期性调度器都做了什么 我们知道周期性调度器就 ...
- 深入理解Linux内核之主调度器(下)
4.进程上下文切换 接前文:深入理解Linux内核之主调度器(上) 前面选择了一个合适进程作为下一个进程,接下来做重要的上下文切换动作,来保存上一个进程的"上下文"恢复下一个进程的 ...
最新文章
- 完美脱壳组装PE的一般步骤(Obsidium1.3.6.4 DEMO 主程序)
- 详解HashMap数据结构实现
- html 转word c#,c#操作word类,进行html和word文档的互相转换
- 得罪全球首富的下场?曝光贝佐斯婚外情丑闻的小报将被卖身...
- php 唤醒http进程,真正的PHP多线程(绝非fork或者用http再开进程)_PHP教程
- Java API 中文版 谷歌翻译 拿走不谢 jdk api 1.8_google
- 数据可视化 基于TMDB数据集的电影数据分析(项目源码 + 数据集 + 课程设计说明书 + 可视化图表+ 运行说明等)
- MySQL安装及应用合集(4):MySQL库表基本操作-增删改查
- 00007__js自执行函数(function(){})()前加个分号是什么意思
- mysql数据库常用名词_【千寻】MySQL数据库名词注释(持续更新)
- matlab中stract用法_matlab初学之strcat、num2str
- Windows10系统批量获取所有用户名称、修改所有用户名称
- HBase的java代码开发(完整源码)
- W7 关闭 ss 无法上网 解决方法
- Stata 新命令 readWind:快速读入并转换万德数据
- 【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结
- 思科模拟器PacketTracer7--利用一台交换机和2台pc互连构成小型局域网
- Navicat Premium 使用技巧
- 【调剂】黑龙江大学电子工程学院王国涛副教授课题组招收2022级硕士研究生
- HTML5另类塔防游戏 -『三国战线』发布