最近在想一个问题
恐龙本的 Process State Machine 应该有五个
分别是
New, Ready(加载内存中), Run(抢到CPU),
Block (I/O 或者被 OS 抢走CPU) , Terminated(Normal 结束 或是有异常发生)
今天如果有一个Process抢到CPU之后 Call Sleep 的话,
那在他Sleep 的这段时间,Process的状态会是
1. Ready
2. Run (还是占住CPU,等时间到再继续执行)
3. Block (先Blocked 住,等Timer结束之后再发一个Interrupt把他叫醒)
请问大家觉得比较是哪一种可能?
另外问一个问题, pthread_yield 跟 usleep 的差别是什么?