程序與執行緒

2021-09-23 17:16:56 字數 803 閱讀 5264

程序與執行緒:

程序間通訊(ipc):

1、管道:半雙工通訊,資料單向流動,沒有名字且大小受限,只能在親屬程序間通訊,傳輸無格式流,所以通訊雙方必須事先約定好資料格式,儲存在記憶體中;

2、有名管道:有名字,半雙工,允許非親屬程序間通訊,fifo,有自己的傳輸格式,是乙個裝置檔案,儲存在檔案系統中;

3、訊息佇列:放在核心中的訊息鍊錶,只有核心重啟(系統重啟)才能刪除乙個訊息佇列,大小受限。

4、訊號:軟體層次上對中斷的模擬。唯一的非同步通訊機制,用於通知接收程序某個事件已經發生。

5、訊號量:計數器,控制多個程序對於共享資料(臨界區)的訪問。只能通過pv操作改變,p操作訊號量減1,如果結果大於0,則可以繼續訪問;v操作,訊號量加1,如果結果大於0,則可以訪問。當訊號量大於0時,表示可供併發程序訪問的臨界資源數;當小於0時,表示正在等待使用臨界資源的程序數。

6、共享記憶體:最有用、最快的ipc形式。通過系統函式對映一塊可以被其他程序訪問的記憶體(因為程序中是邏輯位址,要與實體地址對應)。同步可以選互斥鎖和訊號量。因為程序可以直接訪問共享記憶體,不需要在核心與使用者空間進行資料拷貝,所以效率高。共享記憶體一直保持存在於記憶體,往往在解除對映才寫回檔案。

7、套接字:可以網路通訊。

shmget,建立共享記憶體;shmat,啟動對共享記憶體的訪問,並把共享記憶體連線到當前程序的位址空間;shmdt,將共享記憶體從當前程序中分離;shmctl,共享記憶體管理。

執行緒間通訊:

全域性變數,互斥鎖,條件變數,事件(future?)

參考:

程序與執行緒

程序 process 管理單元,管理分配應用程式的資料,的記憶體空間.執行緒 thread 執行單元,執行緒負責執行乙個預先編排好的 段,執行 棧是基於執行緒的.乙個應用程式啟動的時候,程序自動建立,並且會預設建立主線程,主線程負責執行main 方法.thread t new thread new ...

程序與執行緒

程序 是擁有資源的實體,包括 1。乙個程序有乙個虛擬位址空間,不同程序位於不同的 虛擬位址空間中。程序之間若要通訊,必須通過作業系統 的功能呼叫 ipc 2。程序擁有其他資源,例如開啟的檔案和i o裝置。程序結束時,作業系統會自動釋放該程序擁有的所有資源。例如,如果 open乙個檔案而不close它...

程序與執行緒

程序包括 1 私有的虛位址空間 2 可執行程式 與資料 3 開啟系統資源列表控制代碼 4 安全訪問標誌 5 程序id 6 至少有乙個執行執行緒 執行緒包括 1 一組cpu暫存器狀態 2 兩個堆疊 系統態與使用者態 3 tls 執行緒區域性儲存區 4 執行緒id 5 安全特性 因此程序是不活潑的,它從...