At 16.57 05/11/2004, you wrote:
P.S. The thread dispatching that is currently in Ps should be moved to Ke.
Fun fact about the scheduler: the reason there's both KeXxx and PsXxx scheduling functions, and both KTHREAD and ETHREAD, is yet other leftover from the initial microkernel design. Basically, KeXxx is the kerner proper (the rest of the kernel is called "executive"), in the microkernel sense of the term: it only does scheduling and obscure low-level architecture-specific stuff. It doesn't care about how are threads created, how are they maintained alive and when they are destroyed: it just requires its subsystems to please hold the dispatcher lock while they add or remove threads to its queues. It effectively allows for multiple kernels to coexist with the same scheduler (provided they have a way to share hardware resources). Keep this in mind when you read our spaghetti code that happily mixes Ps and Ke together :-P