Linux进程调度
进程类型
实时进程(优先级:0~99)
实时调度策略
先来先服务,高优先级可以抢占低优先级
时间片轮转,高优先级可以抢占低优先级
按照deadline调度
普通进程(优先级:100~139)
SCHED_NORMAL 是普通的进程
SCHED_BATCH (后台进程) 可以降低优先级
SCHED_IDLE 是特别空闲的时候才跑的进程,比如深度学习算法
完全公平调度算法(用于普通进程,点击查看详情)
通过vruntime记录进程运行时间,每次选择vruntime值最小的进程。使用优先级对vruntime加权,使得高优先级的vruntime变小,比如乘上0.6
调度队列,通过红黑树来实现
CPU对进程的调度(点击查看详情)
每个 CPU 都有自己的 struct rq 结构,其用于描述在此 CPU 上所运行的所有进程,其包括一个实时进程队列 rt_rq 和一个 CFS 运行队列 cfs_rq,在调度时,调度器首先会先去实