最近在想一個問題
恐龍本的 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 的差別是甚麼?