由于Reactos的调度单位是线程,所以它的状态机就是基于线程的。比如进程A5个线程,进程B2个线程,总共就是12个线程来进行调度,也就是把CPU的时间分成12等份。线程总共状态如下:

#001 //

#002 // Thread States

#003 //

#004 typedef enum _KTHREAD_STATE

#005 {

#006 Initialized,

#007 Ready,

#008 Running,

#009 Standby,

#010 Terminated,

#011 Waiting,

#012 Transition,

#013 DeferredReady,

#014 #if (NTDDI_VERSION >= NTDDI_WS03)

#015 GateWait

#016 #endif

#017 } KTHREAD_STATE, *PKTHREAD_STATE;

线程状态机如下图:

reactos操作系统实现(40)

相关文章: