Linux进程调度

1、进程的两种分类:

IO_BOUND + CPU_BOUND

交互式 + 批处理 + 实时

 

2、调度策略和调度算法:

调度策略:SCHED_NORMAL + SCHED_FIFO + SCHED_RR + SCHED_BATCH + SCHED_IDLE

调度算法:

2.4:Active + Expire

2.6:非实时CFS + 实时优先级队列

CFS:SCHED_NORMAL + SCHED_BATCH + SCHED_IDLE

RT:SCHED_FIFO + SCHED_RR

 

3、优先级:[0, 139]

实时:[0, 99]

nice:[-20, 19]

USER_PRIO:[0, 39]

DEFAULT_PRIO:[120]

 

4、schedule()调用时机

1、进程状态转换:例如调用sleep()、exit()

2、进程时间片用完:(归根结底是时钟中断)

3、驱动程序执行长而重复的任务时,主动调用

4、进程从中断、异常、系统调用返回到用户态前

 

 

你可能感兴趣的:(linux)