文章目录

  • 一、Linux 内核调度策略源码
  • 二、SCHED_NORMAL 策略
  • 三、SCHED_FIFO 策略
  • 四、SCHED_NORMAL 策略
  • 五、SCHED_BATCH 策略
  • 六、SCHED_IDLE 策略
  • 七、SCHED_DEADLINE 策略

一、Linux 内核调度策略源码


" Linux 应用进程 " 可以根据 " Linux 内核 " 提供的 " 调度策略 " 选择 " 调度器 " ;

Linux 内核 " 调度策略 " 源码在 linux-5.6.18\include\uapi\linux\sched.h 头文件中 ,

/** Scheduling policies*/
#define SCHED_NORMAL        0
#define SCHED_FIFO      1
#define SCHED_RR        2
#define SCHED_BATCH     3
/* SCHED_ISO: reserved but not implemented yet */
#define SCHED_IDLE      5
#define SCHED_DEADLINE      6/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */
#define SCHED_RESET_ON_FORK     0x40000000

注意 : 停机调度器 和 限期调度器 只能在内核中使用 , 应用进程无法使用这两个调度器 ;

二、SCHED_NORMAL 策略


SCHED_NORMAL 是 " 普通进程调度策略 " , " 进程 " 选择 " CFS 调度器 " 进行调度运行 ;

三、SCHED_FIFO 策略


SCHED_FIFO 是 " 实时进程调度策略 " , 这是一种 先进先出 ( First In First Out ) 调度策略 ;

该策略 不涉及 CPU 时间片机制 ( 分时复用机制 ) , 在没有高优先级进程的前提下 , 只能 等待其它进程主动释放 CPU 资源 ;

四、SCHED_NORMAL 策略


SCHED_RR 是 " 实时进程调度策略 " , 使用的是 时间片轮转 机制 ;

进程 使用完 CPU 时间片 后 , 会加入到 与 进程优先级 相应的 执行队列 的 末尾 ;

同时 , 释放 CPU 资源 , CPU 时间片会被轮转给 相同进程优先级 的 其它进程 ;

五、SCHED_BATCH 策略


SCHED_BATCH 是 " 普通进程调度策略 " , 该策略 可以进行 批量处理 , 令 " 进程 " 选择 CFS 调度器 进行 进程调度 ;

六、SCHED_IDLE 策略


SCHED_IDLE 是 " 普通进程调度策略 " , 令 " 进程 " 以 最低优先级 选择 CFS 调度器 进行 进程调度 ; 完全公平调度器 ;

七、SCHED_DEADLINE 策略


SCHED_DEADLINE 是 " 限期进程调度策略 " , 令 " 进程 " 选择 Deadline 调度器 进行 进程调度 ;

【Linux 内核】调度器 ⑨ ( Linux 内核调度策略 | SCHED_NORMAL 策略 | SCHED_FIFO 策略 | SCHED_NORMAL 策略 | SCHED_BATCH策略 )相关推荐

  1. linux 2.6内核进程调度,Linux2.4与Linux2.6内核调度器的比较研究

    Linux的内核开发是一个漫长的过程,自2001年11月开发出2.5.0以来,Linux内核的发展十分迅速,作了很多重大的改进,性能也有了很大的提高.内核调度器的改进是最主要的进步之一,本文对比研究了 ...

  2. 阿里为Linux内核调度器提出一个新的”组平衡器”概念

    导读 随着越来越多的组织为了发展云计算等业务配置他们的服务器在应用程序之间共享 CPU 核心/资源,而不是专门分配 CPU 核心给单个应用程序/任务,中国公司阿里巴巴正在为 Linux 内核调度器提出 ...

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

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

  4. 返璞归真的Linux BFS调度器

    自Linux 2.6以来(严格说应该是2.5),O(n)调度器被人们认为是一种千年之前就应该抛弃的东西被重重的甩开了,此后出现了O(1),CFS等,再也没人提起O(n)了.说实话,Linux的调度器远 ...

  5. 用c语言实现对n个进程采用“短进程优先”算法的进程调度_为什么Linux CFS调度器没有带来惊艳的碾压效果?...

    文章转自公众号"人人都是极客" 但凡懂Linux内核的,都知道Linux内核的CFS进程调度算法,无论是从2.6.23将其初引入时的论文,还是各类源码分析,文章,以及Linux内核 ...

  6. 为什么Linux CFS调度器没有带来惊艳的碾压效果? | CSDN博文精选

    任何领域,革命性的碾压式推陈出新并不是没有,但是概率极低,人们普遍的狂妄在于,总是认为自己所置身的环境正在发生着某种碾压式的变革,但其实,最终大概率不过是一场平庸. 作者 | dog250 责编 | ...

  7. 实时Linux内核调度器 | Real-Time Linux Kernel Scheduler

    <Real-Time Linux Kernel Scheduler> HOWTOs by Ankita Garg on August 1, 2009 目录 Design Goal 设计目标 ...

  8. linux kdb内核调试器,linux kdb 内核调试器

    许多读者可能奇怪为什么内核没有建立更多高级的调试特性在里面.答案, 非常简单, 是 Linus 不相信交互式的调试器. 他担心它们会导致不好的修改, 这些修改给问题打了补丁 而不是找到问题的真正原因. ...

  9. Linux CFS调度器:原理和实现

    目录 CFS调度器的重点 基本概念 一些问题 源码和补充 调度类和调度策略 优先级分类 多处理器系统 rq的平衡 概念部分只讲解CFS调度器 CFS调度器的重点 基本概念 Linux 2.6版本在我看 ...

最新文章

  1. CCNet 的 Build 流程
  2. python画笑脸-用Python画滑稽
  3. python语言及其应用-[读书笔记] Python语言及其应用
  4. org.apache.maven.archiver.MavenArchiver.getManifest
  5. NLP复习资料(5)-第九章 句法分析
  6. 基于SVM的python简单实现验证码识别
  7. CountDownLatch/CyclicBarrie用法记录
  8. java调c 申请内存_JAVA简单调用C/C++语言(JNI学习三)
  9. 网络安全实战之靶场渗透技术
  10. 模糊数学笔记-模糊集
  11. 计算机技术和通信技术的关系,计算机技术与通信技术的关系
  12. 目前电子计算机处于什么时代,目前,电子计算机处于哪大规模和超大规模集成电路时代。()...
  13. “/”应用程序中的服务器错误(System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询)
  14. gif图片格式制作免费软件
  15. 汕头好的计算机学校有哪些,2021年汕头所有小学名单及排名,汕头最好的小学有哪些...
  16. 第七课:每年白捡几百块,你要不要
  17. 怎样在电脑桌面上显示此计算机,电脑win10系统的桌面上怎么显示“此电脑”图标...
  18. Linux基础入门 - 查看日志
  19. PPT电子教学创作工具包iSpring Suite,教你制作教学视频(下)
  20. Mysql 远程连接的问题 2003 - Can't connect to MySQL server on '39.106.187.107' (60 Operation timed out)

热门文章

  1. sudo dnf install wget git python3,显示安装失败
  2. 264 怎么在Win10中重新启动WSL(Windows子系统Linux)
  3. thymeleaf 美国时间转换成中国时间
  4. python 爬取百度知道,Python 爬虫爬取百度百科网站
  5. mac安装java的jdk环境
  6. java中setattr功能_Java Controller.setAttr方法代码示例
  7. EChart案例-圆形环比图
  8. 访问网页,证书错误是VMware的证书的解决办法
  9. 保险赔款计算因子-赔付比例
  10. Techila联手Windows Azure在赫尔辛基大学加速癌症的突破性研究