上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.3.2 核心线程调度时机
在V1.0的实现中,只有在两个时机会发生核心线程的重调度:
(1)系统时钟中断处理程序结束后;
(2)调用WaitForThisObject或WaitForThisObjectEx函数,等待系统核心对象的时候。
而在V1.5的实现中,运行调度程序的时机比V1.0的实现增加了很多,这样可大大提高系统的实时性。在V1.5的实现中,下列情况下会发生核心线程的重调度:
(1)系统时钟中断;
(2)等待共享资源(调用WaitForThisObject或WaitForThisObjectEx函数);
(3)释放共享资源;
(4)线程睡眠;
(5)线程睡眠结束;
(6)线程创建;
(7)线程结束;
(8)任何设备的中断服务程序结束时。
一旦重新调度,系统中处于KERNEL_THREAD_STATUS_READY状态的具有最高优先级的核心线程便可得到CPU,从而尽快投入运行。