Threads Implementation

User-Level Thread

D-SP-Ch11aca-User-Level_Thread

Kernel-Level Thread

D-SP-Ch11acb-Kernel-Level_Thread

Hybrid

Hybrid 的 thread implementation 則混合了上面兩種實作方式:

  1. 程式建立很多 user threads
  2. 系統會維護一個相對較小的 kernel threads pool
  3. User-level 的 scheduler 決定哪些 user threads 準備執行
  4. 這些準備好的 user threads 會被分配到可用的 kernel threads 上
  5. Kernel scheduler 再決定哪些 kernel threads 可以在 CPU 上執行