排程器啟用
使用者執行緒庫和核心之間通訊的一種技術稱為**排程器啟用**。其工作原理如下:核心為應用程式提供一組虛擬處理器(LWP),應用程式可以將使用者執行緒排程到可用的虛擬處理器上。此外,核心必須通知應用程式某些事件。此過程稱為上行呼叫。上行呼叫由執行緒庫使用上行呼叫處理程式處理,並且上行呼叫處理程式必須在虛擬處理器上執行。觸發上行呼叫的一個事件是當應用程式執行緒即將阻塞時。在這種情況下,核心向上行呼叫應用程式,通知它一個執行緒即將阻塞並識別特定執行緒。然後,核心為應用程式分配一個新的虛擬處理器。應用程式在此新虛擬處理器上執行上行呼叫處理程式,該處理程式儲存阻塞執行緒的狀態並釋放阻塞執行緒正在執行的虛擬處理器。然後,由上行呼叫處理程式排程另一個有資格在新虛擬處理器上執行的執行緒。每當阻塞執行緒等待的事件發生時,核心都會向執行緒庫發出另一個上行呼叫,通知它先前阻塞的執行緒現在有資格執行。此事件的上行呼叫處理程式也需要虛擬處理器,核心可能會分配一個新的虛擬處理器或搶佔其中一個使用者執行緒,然後在其虛擬處理器上執行上行呼叫處理程式。應用程式將合格執行緒排程到可用的虛擬處理器上執行,並在將未阻塞執行緒標記為合格執行後。
廣告