linux实时调度

面对陌生的知识体系,应该从什么角度来

简介

一、进程管理基本概念

在单处理器系统上,在给定时刻只有一个程序可以运行,在多处理器系统上,可以真正并行运行的进程数据,取决于物理CPU的数目;

进程优先级

在比较粗糙的划分中,进程分为实时进程和非实时进程;

1. 硬实时进程具有严格的时间限制,某些任务必须在指定的时间内完成;

2. 软实时进程是硬实时进程的一种弱化形式,尽快需要快速得到结果,但是仍然可以稍微延迟执;

3. 大多数进程是没有特定时间约束的普通进程,它们可以通过重要性来分配优先级;

下面为CPU时间分配图,进程的运行按照时间片调度,分给进程的时间片份额与其相对重要性相当;系统中的时间流动对应圆盘转动,CPU则对应圆周旁的扫描器;最终效果是,尽管所有进程都有机会运行,但是重要的进程会比次要的进程得到更多的CPU时间;

从 Linux 调度全局角度看一下有哪些调度类,平时我们常见的就是 realtime 和 CFS 了

RT 调度器首先具有比 CFS 调度器更高的优先级,并且会严格按照优先级进行调度。

  • CFS 优先级为:100 ~ 139,

  • RT 优先级为:0 ~ 99

调度器,调度策略

RT 调度器支持两种调度策略:

没有时间片,被调度器选择后只要不被抢占,阻塞,或者自愿放弃处理器,可以运行任意长的时间

有时间片(默认为 100ms),其值在进程运行时会减少。时间片用完后,该值重置,进程置于队列末尾

/* * default timeslice is 100 msecs (used only for SCHED_RR tasks). * Timeslices get refilled after they expire. *

/ #define RR_TIMESLICE (100 * HZ / 1000)

调度数据结构

调度队列 rt_rq

调度实体 sched_rt_entity

待续

参考链接

这篇写的极好

Linux内核源码分析《进程管理及调度详解》 - 知乎

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值