由于Reactos的调度单位是线程,所以它的状态机就是基于线程的。比如进程A有5个线程,进程B有2个线程,总共就是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;
线程状态机如下图: