1. 程式人生 > >程序和執行緒相關知識總結

程序和執行緒相關知識總結

程序

1. 組成結構:由程式段程式碼段程序控制塊(PCB)組成。

2. 基本屬性:1)是一個可以獨立擁有資源的獨立單位   2)同時又是一個可獨立排程和分派的基本單位。

3. 三種基本狀態:就緒狀態、執行狀態、阻塞狀態。一些系統中還有掛起狀態

程序控制塊(PCB)

1. 作用:使一個在多道程式環境下不能獨立執行的程式(含資料),稱為一個能獨立執行的基本單位,一個能與其它程序併發執行的程序。

OS是根據PCB來對並行執行的程序進行控制和管理的。PCB是程序存在的唯一標誌。

2. 特點:PCB常駐記憶體。系統將所有的PCB組織成若干個連結串列(或佇列),存放在作業系統中專門開闢的PCB區內。

3. 存放的資訊:1)程序識別符號 (唯一的標識一個程序)

                          2)處理機狀態(記錄當處理機被中斷是,所有的處理機狀態資訊都儲存在PCB中,為了程序重新執行時,可以從斷電繼續執行)

                          3)程序排程資訊(存放程序狀態、程序優先順序、集暱稱排程所需其他資訊、阻塞原因)

                          4)程序控制資訊(存放程式和資料的地址、程序同步和通訊機制、資源清單、連結指標)

執行緒

1. 起源:程序是一個可擁有資源的獨立單位,同時又是一個可獨立排程和分派的基本屬性,因此程序在建立、撤銷和切換中的系統時空開銷過大。執行緒提出就是將作為排程和分派的基本單位,不同時作為擁有資源的單位;而對於擁有資源的基本單位,又不對之進行頻繁的切換。

2. 執行緒和程序的比較

執行緒又稱輕型程序,傳統程序稱為重型執行緒。在引入執行緒的作業系統中,一個程序至少擁有一個執行緒。

執行緒和程序在以下4個方面進行比較:

1)排程

在傳統的作業系統中,程序作為擁有資源的基本單位和獨立排程、分派的基本單位

線上程的作業系統中,把執行緒作為排程和分派的基本單位,執行緒不擁有資源

在同一個程序中,執行緒的切換不會引起程序的切換,但從一個程序中的執行緒切換到另一個程序中的執行緒時,將會引起程序的切換。

2)併發性

程序之間可以併發,而且在一個程序中的多個執行緒之間也可以併發執行。

3)擁有資源

程序擁有資源,是系統中擁有資源的基本單位

執行緒不擁有系統資源,但可以訪問其隸屬程序的資源,即一個程序的程式碼段、資料段及所有擁有的系統資源,如已開啟的檔案、I/O裝置等,可以供該程序中的所有執行緒所共享。

4)系統開銷

執行緒切換的代價低於程序;由於一個程序中的多個執行緒具有相同的地址空間,在同步和通訊的時間線方面執行緒也比程序容易。

3. 執行緒的屬性

執行緒是利用CPU的基本單位。

1)輕型實體,不擁有系統資源,每一個執行緒都有一個TCB(執行緒控制塊)

2)獨立排程和分派的基本單位(指的是多執行緒OS中的程序,此時程序不再是一個可執行的實體,而是把執行緒作為獨立執行的基本單位)

3)可併發執行

4)共享程序資源