1、LINUX2.5系列内核中,采用了一种O(1)调度程序的新调度程序,该算法对调度响应时间 敏感的程序(比如交互的桌面系统 )不足,但对大服务器的工作 负载很理想 。
2、自内核2.6开发初期,引用了反转楼梯 最后期限调度算法
(1)吸取了队列理论
(2)引入公平调度
(3)在2.6.3内核版本中替代了O(1)调度算法,称为完全公平调度算法(CFS)
3、LINUX对进程的响应做了优化(缩短响应时间),更倾向于调度I/O消耗型进程。
4、优化级高的进程先运行,低的后运行,相同优先级的进程 按轮转方式来调度。
5、2种不同的优先级范围 。
(1)nice值,-20到+19,越大值优先级越低,nice代表时间片的比例,ps-el命令查看进程时,NI列为进程的nice值。这 类进程更具调度优先级
(2)实时优先级,0-99,值可配置,越高优先级越高中,在RTPRIO列。
6、时间片
(1)进程在被抢占前可持续运行的时间
(2)I/O消耗不需要长时间 片,处理器消耗需要
(3)CFS将处理器使用比划分到进程,进程 获得的处理器时间 与系统负载 相关。
(4)nice作为权重将调用 处理器时间使用比。
(5)CFS调度中,新进程消耗的使用比当前进程 小,则新进程立刻抢占当前进程

linux内核杂记(6)-进程调度(1)相关推荐

  1. linux内核杂记(11)-进程调度(6)

    LINUX实时调度策略 调度策略分类 1.SCHED_FIFO (1)简单的先入先出调度方法 (2)不使用时间片,一旦SCHED_FIFO的进程处于可执行状态,就会继续执行,直到它自己执行完毕或显式释 ...

  2. linux内核杂记(10)-进程调度(5)

    一.用户抢占 1.用户抢占时机 从系统调用返回用户空间 从中断处理程序返回用户空间 2.检查标志 内核返回后检查need_resched标志 如果被设置了,内核会选择一个更适合的进程投入进行 3.返回 ...

  3. linux内核杂记(8)-进程调度(3)

    1.红黑树存储了系统中所有的可运行进程,节点的键值 是可运行进程的虚拟运行时间. 2.进程高度的主要 入口点是函数schedule(),定义在kernel/sched.c中.是内核其它部分用于调用进程 ...

  4. linux内核杂记(7)-进程调度(2)

    1.进程调度的效果应如同系统具备一个理想中的完美多任务处理器,每个进程 能获得1/n 个处理器时间,n指可运行进程数量. 2.调度时进程抢占会带来一定的代价,换入与换出进程消耗,缓存效率等.CFS考虑 ...

  5. linux内核杂记(12)-进程调度(7)

    与调度相关的系统调用 1.进程的nice值 nice() 设置进程的nice值 2.进程的调度策略 sched_setscheduler()设置进程的调度策略 sched_getscheduler() ...

  6. linux内核杂记(9)-进程调度(4)

    1.上下文切换从一个可执行进程切换到另一个要执行进程.由定义在kernel/sched.c中的context_switch()函数负责处理. 2.每当一个新的进程被选出来准备投入运行时,schedul ...

  7. 【Linux 内核】Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

    文章目录 一.Linux 内核特性 1.Linux 内核组织形式 2.Linux 进程调度 3.Linux 内核线程 4.Linux 内核多平台虚拟内存管理 5.Linux 虚拟文件系统 6.Linu ...

  8. 【Linux 内核】Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )

    文章目录 一.进程调度 二.内存管理 三.中断管理 四.设备管理 五.文件系统 一.进程调度 进程调度 : 进程 是 系统中 进行 资源分配 的 基本单位 ; 每个进程 在 运行时 , 都 感觉自己占 ...

  9. linux内核-进程与进程调度

    进程四要素 要给进程下一个确切的定义不是件容易的事情.不过,一般来说linux系统中的进程都具备下列诸要素: 有一段程序供其执行,就好像一场戏要有个剧本一样.这段程序不一定是进程所专有,可以与其他进程 ...

最新文章

  1. PyTorch框架:(5)使用PyTorch框架构建卷积神经网络
  2. [CLR via C#]17. 委托
  3. java学习笔记2022.1.15
  4. ArcGIS Server SOE开发之奇怪异常:
  5. [css] css的加载会阻塞js运行吗?为什么?
  6. CF 799B T-shirt buying
  7. idea console窗口不见了_Python 闲谈 14——安利下IDEA开发神器中好用到爆的插件
  8. 新版的Eclipse(Oxygen)安装完Subversive后,现时无法自动安装SVN Connector,无论选择哪个都会自动关闭。
  9. [book]《超越感觉》
  10. VS201x+Qt5开发,中文乱码解决
  11. Secondary Maps (Detail Maps) Detail Mask 二级贴图(细节贴图)细节遮罩 Standard Shader系列14
  12. 电脑常用的快捷键大全分享。
  13. 2019中国大学排名
  14. MyBatis_查询缓存01
  15. 产品公司解决方案、解决方案公司解决方案,可能你做了一辈子IT你也不知道...
  16. 最近学习太焦虑,如何戒骄戒躁,静下心来
  17. 如何将一个逻辑库下所有数据集的名称汇总生成新的数据集BY:crackman
  18. 拟凸函数和凸函数的区别
  19. html字两边的横线_css实现中间文字两边横线效果
  20. 怎么做餐饮行业的引流?

热门文章

  1. ionic1 打包过程 常用命令行
  2. Python面向对象编程(二)
  3. 移动水政执法通系统 安卓Android客户端
  4. Asp.Net中虚拟文件系统的使用
  5. 工单系统的设计与实现(3)
  6. P4513 小白逛公园 (线段树)
  7. AtCoder - 3954 Painting Machines
  8. 三点顺序(计算几何)
  9. Groovy/Spock 测试导论
  10. 卓越程序员和优秀程序员有哪些区别?