Linux-进程调度

Linux-进程调度

  1. 进程调度算法
  2. cpu如何进行进程调度
  3. 主动调度与抢占调度

进程调度算法

  1. stop_sched_class 优先级最高的任务使用这种调度策略,会中断其他线程,不会被其他任务打断
  2. dl_sched_class 对于deadline调度算法,DL 调度器总是选择其 deadline 距离当前时间点最近的那个任务调度执行
  3. rt_sched_class 对于RR算法(时间片轮转)和FIFO算法(先进先出)
  4. fair_sched_class 就是普通进程调度策略(完全公平调度算法)
  5. idle_sehed_class 空闲进程的调度算法

cpu如何进行进程调度

  1. cpu 会轮询进程调度类stop_sched_class,dl_sched_class,rt_sched_class,fair_sched_class,idle_sehed_class获取其中的rq队列,次rq队列是红黑树实现
  2. 获取当前红黑树最左叶子节点,每一个叶子节点都是一个sched_entiry.每个sched_entry里面都是有一个task_struct,
    每一个task_struct 都有实现了响应调度算法类的函数

进程调度

主动调度与抢占调度

进程调度