2009-12-10 91 views
1

我試圖理解基本概念OS多線程和多

想知道如果我的理解是正確的 多處理 例子:我援引A.exe時我的機器上。我再次調用它的另一個實例。所以在RAM上會有兩個A.exe被稱爲進程,操作系統會通過上下文切換和等值線進行多處理。

多線程 例如:A.exe構成2個事情程序C和D.假設調用A.exe意味着同時運行C和D.在這種情況下, 1.程序A會調用C和D作爲線程,並跨越或一旦加載A.exe就啓動它們。 2. C和D是線程,並且當進程A.exe有機會執行時,只有在C和D之間發生多線程時纔會發生。 3. C和D共享同一個進程空間A.

它是否正確?

+0

我已經將您的問題稍作改動 - 您應該確保您的問題實際上是一個問題,以清楚說明您正在尋找哪種答案。 – Justin 2009-12-10 09:29:31

+0

感謝Kragen編輯此問題。我期待的答案是檢查我的理解是否正確,同時也爲流程和線程之間的區別提供一些指示。 – Lakshmi 2009-12-10 09:32:12

回答

2

很大程度上是正確的

  • 它並不要求一個進程創建之初它的線程;它們可以根據需要創建,並且可以根據需要創建多個線程之間的操作系統多任務。許多進程由單個線程組成,其他進程可能由多個進程組成。根據操作系統是否需要運行以及它們的優先級是什麼等,操作系統可以找出如何平衡系統中所有線程的CPU時間的複雜方法;它不像你在系統中描述的那樣簡單,並且它不是基於它們所屬的進程(除非它是調度器中加權系統的一部分)

多線程允許線程共享狀態很容易 - 在同一進程中線程之間沒有「內存保護」

多進程不允許線程共享狀態,除非明確指定通過傳遞消息,共享文件句柄或顯式共享內存。

+0

謝謝。你的答案是無可奈何的 – Lakshmi 2009-12-11 06:07:33

2

是的。你是正確的

+0

特別是關於這個等等。 – 2009-12-10 09:30:36