輕量級程序 (LWP)
許多系統實現多對多或兩級模型,在使用者和核心執行緒之間放置一箇中間資料結構。此資料結構通常稱為**輕量級程序**或 LWP,如下面的圖所示。對於使用者執行緒庫,LWP 似乎是一個虛擬處理器,應用程式可以在其上排程使用者執行緒執行。每個輕量級程序都附加到一個核心執行緒,並且作業系統將核心執行緒排程到物理處理器上執行。如果核心執行緒阻塞(例如,在等待 I/O 操作完成時),則 LWP 也會阻塞。附加到 LWP 的使用者級執行緒也會向上阻塞。

要有效地執行任意數量的 LWP,可能需要一個應用程式。讓我們考慮一個在單個處理器上執行的 CPU 密集型應用程式。在這種情況下,一次只能執行一個執行緒,因此一個 LWP 就足夠了。但是,I/O 密集型應用程式可能需要多個 LWP 來執行。通常,每個併發阻塞系統呼叫都需要一個 LWP。例如,同時發生四個不同的檔案讀取請求。需要四個 LWP,因為所有這些都可能在核心中等待 I/O 完成。如果一個程序只有三個 LWP,則第四個請求必須等待其中一個 LWP 從核心返回。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP