單執行緒 CPU 上的多執行緒應用程式?

單執行緒 CPU 上的多執行緒應用程式?

這個問題背後的動機源自於探索英特爾伽利略第二代主機板它有一個單線程處理器。

  • 我正在尋找概念性解釋,了解這對於依賴線程存在的所有用戶空間應用程式意味著什麼?
  • 這是否意味著需要對核心進行修補,以便在軟體中模擬線程調用的系統調用,而不是依賴 CPU 線程支援?

答案1

多工系統處理多個進程和線程,無論系統中安裝的處理器或核心的數量以及它們處理的“線程”的數量如何。多工處理使用時間切片來運作:核心和每個正在運行的進程或執行緒都花費一些時間運行,然後系統切換到下一個可運行的執行緒。切換發生得非常頻繁,這給人一種一切都在並行運行的印象,即使事實並非如此。

所有這一切的發生都無需對 API 等進行任何更改。

將CPU描述為單線程是指同時多執行緒(SMT,即英特爾世界中的超線程),而不是 CPU 運行多個執行緒(或進程或任務)的能力。在 CPU 中添加 SMT 功能並不會添加任何指令來幫助運行線程,它只是允許在某些情況下更好地使用硬體。

相關內容