輕量級程序 (LWP)


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

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

更新於: 2019 年 10 月 17 日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.