進程與進程間的通信

進程是一個具有獨立功能的程序關於某個數據集合的一次可以併發執行的運行活動,是處於活動狀態的計算機程序.

進程的狀態:用戶狀態/內核狀態/內存中就緒/內存中睡眠/就緒且換出/睡眠且換出/被搶先/創建狀態/僵死狀態.

fork ,exec,wait,exit

Linux 下的進程通信手段:

1.管道-用於進程間通信,半雙工,雙方通信需要兩條管道,無名管道只能用於父子進程與兄弟進程之間,單獨構成一種獨立的文件系統,並且只存在於內存中.可以讀出與寫入數據.寫入緩衝區末尾,從緩衝區的頭讀出數據.

只能傳無格式的字節流,緩衝區大小也受到限制.

2.信號-在軟件層次上對中斷機制的一種模擬.信號是進程序通信機制中惟一的異步通信機制.可靠與不可靠,實時與非實時信號.期 信號產生---在進程中註冊---在進程中註銷---信號處理函數執行完畢

信號燈---提供進程間共享資源訪問控制機制,相當於內存中標誌,進程可以據它判定是否能訪問某些共享資源,進程也可以改標誌.用於進程同步與訪問控制.

3.消息隊列---消息可當作一個記錄,有特定的格式及優先級.消息隊列就是一個消息的鏈表,是隨內核持續的.

4.共享內存---最有用的進程間通信方式,最快的IPC形式,進程共享內存,通過同步機制,如互斥鎖與信號量來實現.

5.信號量---作爲進程間以及同一進程不同線程之間的同步手段.

6.socket -用於不同計算機之間的通信.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章