併發運行

標籤: 暫無標籤

6

更新時間: 2013-09-04

廣告

併發運行,我們通常使用的計算機中只有一個CPU,也就是說只有一顆心,要讓它一心多用,同時運行多個進程,就必須使用併發技術。

  俗話說,一心不能二用,這對計算機也一樣,原則上一個CPU只能分配給一個進程,以便運行這個進程。我們通常使用的計算機中只有一個CPU,也就是說只有一顆心,要讓它一心多用,同時運行多個進程,就必須使用併發技術。

  實現併發技術相當複雜,最容易理解的是「時間片輪轉進程調度演算法」,它的思想簡單介紹如下: 在操作系統的管理下,所有正在運行的進程輪流使用CPU,每個進程允許佔用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來CPU是在輪流為多個進程服務,就好象所有的進程都在不間斷地運行一樣。但實際上在任何一個時間內有且僅有一個進程佔有CPU。如果一台計算機有多個CPU,情況就不同了,如果進程數小於CPU數,則不同的進程可以分配給不同的CPU來運行,這樣,各個進程就是真正同時運行的,這便是并行。但如果進程數大於CPU數,則仍然需要使用併發技術。在Windows中,進行CPU分配是以線程為單位的,一個進程可能由多個線程組成,這時情況更加複雜,但簡單地說,有如下關係:線程數 <= CPU數量:并行運行匯流排程數 > CPU數量:併發運行并行運行的效率顯然高於併發運行,所以在多CPU的計算機中,多任務的效率比較高。但是,如果在多CPU計算機中只運行一個進程(線程),就不能發揮多 CPU的優勢。值得注意的是,Windows 9x並不支持多CPU系統,如果在多CPU系統 上安裝Windows 9x,有再多的CPU也是白搭。

廣告

廣告