<!--[if !supportLists]-->5. <!--[endif]-->当一个进程时间片耗尽时,就不会再运行,除非其他所有进程都耗尽了时间片,那是,所有进程的时间片被重新计算。
<!--[if !supportLists]-->6. <!--[endif]-->一个进程进入TASK_RUNNING状态时,内核会检查其优先级是否高于当前进程优先级,如果高于,调度进程被唤醒,抢占发生;或者当进程时间片为0时,同样会唤醒调度进程,将其抢占。
<!--[if !supportLists]-->7. <!--[endif]-->调度程序最基本的是运行队列,每个处理器一个,表示该处理器上可执行进程的链表。
<!--[if !supportLists]-->8. <!--[endif]-->Cpu_rq(processor)宏用于返回指定CPU上的运行队列,this_rq()返回当前CPU的。
<!--[if !supportLists]-->9. <!--[endif]-->在对可执行队列操作前需要用task_rq_lock等函数对其加锁。
<!--[if !supportLists]-->10. <!--[endif]-->每个运行队列都有2个优先级数组,一个活跃的,一个过期的。每个数组都有一个优先级位图,可以提高查找当前系统内最高优先级的可执行进程的效率。每个数组还都有一个list_head队列,包含有多个链表,每个链表与一个给定的优先级对应,即一个链表表示一个优先级上的所有可执行进程,这样能快速找到某个优先级上的进程。