【Linux 内核】CFS 调度器 ④ ( 调度子系统组件模块 | 主调度器、周期性调度器 | 调度器类 )
文章目录
- 一、调度子系统组件模块
- 二、主调度器、周期性调度器
- 三、调度器类
一、调度子系统组件模块
调度器 需要对 被调度的进程 进行 排序 和 调度管理 ,
进程管理过程需要 调度器 的 组件模块 , 以及相关 算法 数据结构 来完成 , 如 : 执行队列 ;
二、主调度器、周期性调度器
CPU 通过 " 上下文切换 " 选择 " 主调度器 " 或 " 周期性调度器 " ,
" 上下文切换 " 主要完成
- 切换地址空间 ,
- 切换寄存器 ,
- 切换栈空间
工作 ;
" 主调度器 " 通过 调用 schedule()
方法 , 完成 进程的 调度 和 切换 ;
" 周期性调度器 " 根据 相应频率 , 自动调用 scheduler_tick()
函数 , 完成调度 , 这是根据 进程 运行时间 , 自动触发进程调度 ;
三、调度器类
主调度器 或 周期性调度器 根据 不同的 " 选择进程 " 选择不同的 调度器类 , 可选的调度类参考 【Linux 内核】调度器 ⑦ ( 调度器类型 | 停机调度类 stop_sched_class | 限期调度类 dl_sched_class | 实时调度类 | 公平调度类 | 空闲调度类 ) 博客 , 在 Linux 内核中 , sched_class
调度器 分为以下 555 种类型 :
- stop_sched_class : 停机调度类 ;
- dl_sched_class : 限期调度类 ;
- rt_sched_class : 实时调度类 ;
- fair_sched_class : 公平调度类 ;
- idle_sched_class : 空闲调度类 ;
每个 调度器类 都负责 调度管理 若干进程 ,
调度器类 用于 判断 下一步要运行哪个进程 ,
【Linux 内核】CFS 调度器 ④ ( 调度子系统组件模块 | 主调度器、周期性调度器 | 调度器类 )相关推荐
- Linux内核进阶----整体框架及子系统概览
目录 1.概述 2.核心抽象及设计选型 2.1. 对进程和内核的抽象 2.2. 对进程地址空间的抽象 2.3. 支持可重入可抢占的内核 2.4. 放松管控与努力回收 2.5. 单块结构内核+动态加载模 ...
- linux内核cfs浅析
linux调度器的一般原理请参阅<linux进程调度浅析>. 之前的调度器 cfs之前的linux调度器一般使用用户设定的静态优先级,加上对于进程交互性的判断来生成动态优先级,再根据动态优 ...
- Linux内核4.14版本——GPIO子系统(1)——gpiolib分析
目录 1.简述 2.Gpiolib 相关数据结构分析 2.1 gpio_chip 结构 2.2 gpio_desc 结构 2.3 gpio_device 结构 3 Gpiolib 对接芯片底层 3.1 ...
- Linux内核4.14版本——Nand子系统(1)——hisi504_nand.c分析
1. 简介 2. DTS 3. hisi_nfc_probe函数 3.1 获取dts中的资源 3.2 设置nand-chip结构体中必要的字段 3.3 nand_scan_ident扫描识别nand控 ...
- Linux内核源码分析-scsi子系统-让磁盘转起来-sd_spinup_disk
如何调用到sd_spinup_disk接口,请查看前面文章[深入浅出SCSI子系统(六)SCSI 磁盘驱动] 链接:深入浅出SCSI子系统(六)SCSI 磁盘驱动_sinat_37817094的博客- ...
- Linux内核源码树建立加载hello模块
在加载模块之前,书中说要先建立内核源码树,那么,如何建立内核源码树呢? 首先,要先知道你的OS的内核版本,用uname -r可以查得到 在/url/src/目录下可以看到对应的版本目录 如果没有可以用 ...
- Linux内核分析 - 网络[十二]:UDP模块 - 收发
内核版本:2.6.34 UDP报文接收 UDP报文的接收可以分为两个部分:协议栈收到udp报文,插入相应队列中:用户调用recvfrom()或recv()系统调用从队列中取出报文,这里的 ...
- Linux内核分析 - 网络[十二]:UDP模块 - socket
内核版本:2.6.34 这部分内容在于说明socket创建后如何被内核协议栈访问到,只关注两个问题:sock何时插入内核表的,sock如何被内核访问的.对于核心的sock的插入.查找函数都给出了流程图 ...
- 深入浅出SCSI子系统(一)Linux 内核中的 SCSI 架构
目录 深入浅出SCSI子系统(一)Linux 内核中的 SCSI 架构 1.Linux 内核中的 SCSI 架构描述 2.SCSI 较高层 3.SCSI 中间层 4.SCSI 较低层 深入浅出SCSI ...
最新文章
- LeanCloud学习笔记(1)
- StaicArray
- 服务端构架干货:快节奏多人游戏的技术实现
- 通过在操作系统中实际操作,学习和理解 Unicode 编码相关知识
- AFN框架和SDWebImage框架的上手体验
- android是32-bit系统还是64-bit系统
- Http协议Get方式获取图片
- 红外倒车雷达原理图_汽车里的毫米波雷达你知多少?
- Java Web学习总结(37)——Filter和Listener详解
- 入侵Tomcat服务器一次实战
- java赋值两个对象数组 clone_Java:类的两个相同对象数组的克隆问题
- bzoj3713: [PA2014]Iloczyn(乱搞)
- lisp医院化验系统_医院管理系统(his)电子病历 体检系统 l is pacs
- 逆矩阵和伴随矩阵(Inverse matrix and adjoint matrix)
- 关于latex第四级标题问题
- 爬虫--Item Pipeline 介绍(21)
- 【Thingsboard】源码分析:Actor模型架构
- 列表中的元素进行统计数量
- ULONG64转CString
- 光电耦合器如何选型以及型号推荐