1. 程式人生 > >作業、程序、執行緒、管程、管道概念梳理

作業、程序、執行緒、管程、管道概念梳理

作業使用者在一次解決或是一個事務處理過程中要求計算機系統所做的工作的集合,它包括使用者程式、所需要的資料集控制命令等。作業是由一系列有序的步驟組成的。在執行一個作業可能會執行多個不同的程序。

          程序:程式在一個數據集上的一次執行過程。是作業系統資源分配的基本單位。

          執行緒:是程序中的一個實體,是被作業系統獨立排程和執行的基本單位。一個程序包含一個或多個執行緒。

           執行緒特徵

1、執行緒的執行狀態包括執行、就緒和等待。

2、程序中的所有執行緒共享所屬程序內的主存和其他資源。

3、擁有自己的執行緒控制塊和執行棧,暫存器。

           程序和執行緒的區別

1、程序間是獨立的,在記憶體空間、上下文環境上。而執行緒是執行在程序空間內的,同一程序所產生的執行緒共享同一記憶體空間。

2、程序間是可以併發執行的,執行緒之間也可以併發執行。但同一程序中的兩端程式碼只有在引入執行緒的情況下才能併發執行。

3、執行緒是屬於程序的,當程序退出時,該程序所產生的執行緒都會被強制退出並清除。

4、執行緒佔用的資源要少於程序佔用的資源,執行緒間的切換速度比程序間的切換快的多。

        管程:是定義了一個數據結構和在該資料結構上能為併發程序所執行的一組操作。這些操作能同步程序和改變管程中的資料。它是一種程序同步機制。在結構上類似於面向物件中的類。在功能上和訊號量和p,v操作類似。可以更方便的管理系統的臨界資源。

         管程特徵:

1、模組化:一個管程就是一個可單獨編譯的實體,結構上和類相仿。

2、抽象資料型別。

3、資訊隱蔽。

        管程要素:

1、安全性:管程中的資料變數在管程之外是不可見的,只能有該管程的操作過程存取。

2、互斥性:任一時刻只能有一個呼叫者進入管程。

3、等待機制:設定等待佇列及相應的操作,對資源進行管理。

       管程和上面三個名詞,區別大,但是容易混淆。

        管道:是一種程序通訊機制。是共享檔案模式,它基於檔案系統,在兩個程序之間,以先進先出的方式實現訊息的單向傳送。管道是一種特殊檔案。