我有一個正在運行的進程創建了多個用戶模式線程。如果內核將進程的狀態更改爲TASK_UNINTERRUPTIBLE
(或TASK_INTERRUPTIBLE
),那麼進程創建的線程是否會自動掛起?TASK_UNINTERRUPTIBLE和在Linux內核開發中使用C處理線程
這不是一個家庭作業問題。我正在閱讀描述信號量如何實現的操作系統手冊。在它們的實現中,信號量結構維護一個當前正在等待信號量的進程的鏈表。從我迄今爲止所瞭解到的情況來看,這樣的信號量只能用於同步進程,而不能用於線程。正確?鏈接列表中的線程被置於TASK_INTERRUPTIBLE
狀態,直到信號可用,此時通過將其狀態設置爲TASK_RUNNING
來喚醒一個進程。
現在它是有道理的。我猜在本書的實現中,它們的鏈接進程列表可能是task_struct的鏈接列表,它將對進程和線程進行說明。我希望他們能夠做得更清楚。謝謝。 –