Linux内核调度子系统入门

CPU 调度器简介

1)在任务之间共享CPU

2)(在每个CPU上)选择下一个要执行的任务,当:

  • 正在运行的任务终止了
  • 正在运行的任务睡眠了(等待一个事件)
  • 一个新任务被创建,或者一个睡眠的任务被唤醒了
  • 正在运行的任务时间片用光了

3)目标:

  • 公平
  • 基于优先级的时间片分配
  • 低任务响应时间
  • 高(任务完成)吞吐量
  • CPU之间的负载平衡
  • 功耗控制
  • 低开销(运行调度代码)

4)能够在大型机/服务器/笔记本/嵌入式设备/手机上工作

O(1)调度器

  • 140个优先级。0-99为实时任务,100-139为用户任务
  • 每个CPU运行队列有两个数组:活跃的 和 终止的
  • 每个数组有140个元素,每个对应一个优先级
  • 每个元素是一个链表,使用FIFO(先入先出)方式组织
  • bitmap(140位)用来找到,哪个优先级队列是非空的
  • 时间片被分配给基于这些优先级的任务
  • 终止的任务从Active数组中移动到Expired数组
  • 一旦Active数组空了,则交换两个组
  • 入队、出队任务和选择下一个任务,都会在常数时间内完成
  • 在Linux 2.6.23(2007年)被替换成了CFS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值