内核抢占是Linux 2.6以后引入的一个重要的概念
我们说:如果进程正执行内核函数时,即它在内核态运行时,允许发生内核切换(被替换的进程是正执行内核函数的进程),这个内核就是抢占的。...函数, 去查找最优的那个进程, 当然因为大多数情况下, 系统中全是CFS调度的非实时进程, 因而linux内核也有一些优化的策略
其执行流程如下
如果当前cpu上所有的进程都是cfs调度的普通非实时进程...函数, 每个调度器类都提供了pick_next_task函数用以查找对应调度器下的最优进程, 其定义如下所示
调度器类 pick_next策略 pick_next_task_fair函数
stop_sched_class...加快经常性事件, 是程序开发中一个优化的准则, 那么linux系统中最普遍的进程是什么呢?..., 也就是说多数情形下, 我们的linux中进程全是cfs调度的
而likely这个宏业表明了这点, 这也是gcc内建的一个编译选项, 它其实就是告诉编译器表达式很大的情况下为真, 编译器可以对此做出优化