【Linux 内核】调度器 ③ ( sched_class 调度类结构体分析 | next 字段 | enqueue_task 函数 | dequeue_task 函数 )
文章目录
- 一、next 字段 ( 指向链表中的下一个调度类 )
- 二、enqueue_task 函数 ( 将进程加入执行队列 )
- 三、dequeue_task 函数 ( 从执行队列中删除进程 )
Linux 内核源码 linux-5.6.18\kernel\sched\sched.h
中 , 定义的 struct sched_class
调度类结构体 , 就是 " 调度器 " 对应的类 ;
一、next 字段 ( 指向链表中的下一个调度类 )
整个 Linux 系统中有 多个 " 调度类 " , 按照 优先级进行排序 , 这些 " 调度类 " 放在一个 " 链表 " 中 , 优先级高的 " 调度类 " 先执行 , 优先级低的后执行 ;
sched_class
调度类结构体 中的 next
字段 , 就是指向 " 调度类 " 链表 中的 下一个 " 调度类 " ; ( 优先级低于本调度类 )
const struct sched_class *next;
源码路径 : linux-5.6.18\kernel\sched\sched.h#1709 ;
二、enqueue_task 函数 ( 将进程加入执行队列 )
sched_class
调度类结构体 中的 enqueue_task
函数指针 , 指向一个函数 , 调用该函数 , 可以将 " 进程 " 加入到 " 执行队列 " 中 , 同时 nr_running
自增 111 ;
- 进程 是一个 调度实体 ;
- 执行队列 是一个 红黑树 ;
void (*enqueue_task) (struct rq *rq, struct task_struct *p, int flags);
源码路径 : linux-5.6.18\kernel\sched\sched.h#1715 ;
三、dequeue_task 函数 ( 从执行队列中删除进程 )
dequeue_task
调度类结构体 中的 dequeue_task
函数指针 , 指向一个函数 , 调用该函数 , 可以 从 " 执行队列 " 中删除 " 进程 " , 同时 nr_running
自减 111 ;
- 进程 是一个 调度实体 ;
- 执行队列 是一个 红黑树 ;
void (*dequeue_task) (struct rq *rq, struct task_struct *p, int flags);
源码路径 : linux-5.6.18\kernel\sched\sched.h#1716 ;
【Linux 内核】调度器 ③ ( sched_class 调度类结构体分析 | next 字段 | enqueue_task 函数 | dequeue_task 函数 )相关推荐
- 【Linux 内核】调度器 ② ( sched_class 调度类结构体源码 | 源码路径 linux-5.6.18\kernel\sched\sched.h )
文章目录 一.调度器 二.sched_class 调度类结构体 一.调度器 上一篇博客 [Linux 内核]调度器 ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 ...
- 【Linux 内核】调度器 ④ ( sched_class 调度类结构体分析 | yield_task 函数 | heck_preempt_curr 函数 | task_struct 函数 )
文章目录 一.yield_task 函数 ( 放弃 CPU 执行权限 ) 二.check_preempt_curr 函数 ( 检查进程是否可以被抢占 ) 三.task_struct 函数 ( 选择运行 ...
- 【Linux 内核】CFS 调度器 ⑤ ( CFS 调度器类 fair_sched_class 源码 | next 赋值 | enqueue_task 赋值 | dequeue_task 赋值 )
文章目录 一.调度器类 sched_class 简介 二.CFS 调度器类源码 三.next 赋值 四.enqueue_task 赋值 五.dequeue_task 赋值 一.调度器类 sched_c ...
- [Linux][内核学习笔记]--CFS调度器
文章目录 1. 进程的状态转换 2. 内核调度器的发展 3. 调度策略 4. 与调度相关的系统调用 5. 优先级 6. CFS调度器的实现 6.1 相关结构体 6.1.1 sched_entity 结 ...
- 【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )
文章目录 一.调度器 0.调度器概念 1.调度器目的 2.调度器主要工作 3.调度器位置 4.进程优先级 5.抢占式调度器 二.Linux 内核进程状态 API 简介 三.Linux 进程状态 一.调 ...
- 挑战360无死角讲解Linux内核 进程管理,调度器的5种实现丨C++后端开发丨C/C++Linux服务器开发丨内核开发丨网络编程
挑战360无死角讲解 进程管理,调度器的5种实现 1. 8500行 CFS是什么 2. RT调度器使用场景 3. IDLE/Dealine调度器 视频讲解如下,点击观看: 挑战360无死角讲解Linu ...
- Linux系统核心调度器——周期性调度器详解
日期 内核版本 架构 作者 内容 2019-5-13 Linux-2.6.32 X86 Bystander Linux进程调度 1 绪论 在<Linux系统进程调度--调度架构详细分析>一 ...
- Linux调度器 - deadline调度器
一.概述 实时系统是这样的一种计算系统:当事件发生后,它必须在确定的时间范围内做出响应.在实时系统中,产生正确的结果不仅依赖于系统正确的逻辑动作,而且依赖于逻辑动作的时序.换句话说,当系统收到某个请求 ...
- linux 进程状态显示dl,Linux系统中的实时调度器DL调度器的原理是什么?详细概述...
一.概述 实时系统是这样的一种计算系统:当事件发生后,它必须在确定的时间范围内做出响应.在实时系统中,产生正确的结果不仅依赖于系统正确的逻辑动作,而且依赖于逻辑动作的时序.换句话说,当系统收到某个请求 ...
最新文章
- python计算csv文件内的数据_Python利用pandas计算多个CSV文件数据值的实例
- 大工17春计算机文化基础在线测试3,大工17春《计算机文化基础》在线测试3答案...
- pytorch autograd整理
- 依据地图上的经纬度坐标计算某个点到多边形各边的距离
- Python图片转html字符画
- 代码之美~Lambda带给我们的不只是简洁
- Debian 下配置ssh
- Git工具项目管理的基础使用方式(GitHub同步方式)
- linux下ssh安装教程,linux安装ssh
- oracle如何查询明细账,新纪元通用账证查询打印软件常用问题解答.docx
- gradle下载很慢的解决方式
- 如何使用 React Native 构建信用卡扫描仪
- 人人都能看懂的量子力学——波动力学的建立过程
- inputBox 与 Application.inputBox 的用法与区别。
- 小样儿老师:我的嵌入式学习之路(一)
- 怎样将CAD里面画好的图纸转换到WORD文档里面去
- 局部立体匹配算法介绍及代码实现
- 知识工程重点知识介绍-1
- Win7安装VS2008 Error1935
- QQ邮箱导出的通讯录出现乱码怎么办?