程序間通訊基本概念

2021-07-25 14:15:29 字數 2953 閱讀 2556

順序程式與併發程式特徵

程序互斥

互斥示例

程序同步

同步示例

程序間通訊目的

· unix程序間通訊(ipc)方式包括管道、fifo以及訊號。

· system v程序間通訊(ipc)包括system v訊息佇列、system v訊號量以及system v共享記憶體區。

· posix 程序間通訊(ipc)包括posix訊息佇列、posix訊號量以及posix共享記憶體區。

有關posix

posix 表示可移植作業系統介面(portable operating system inte***ce ,縮寫為 posix ),posix標準定義了作業系統應該為應用程式提供的介面標準,是ieee為要在各種unix作業系統上執行的軟體而定義的一系列api標準的總稱,其正式稱呼為ieee 1003,而國際標準名稱為iso/iec 9945。

posix標準意在期望獲得源**級別的軟體可移植性。換句話說,為乙個posix相容的作業系統編寫的程式,應該可以在任何其它的posix作業系統(即使是來自另乙個廠商)上編譯執行。

posix 並不侷限於 unix。許多其它的作業系統,例如 dec openvms 支援 posix 標準,尤其是 ieee std. 1003.1-1990(1995 年修訂)或 posix.1,posix.1 提供了源**級別的 c 語言應用程式設計介面(api)給作業系統的服務程式,例如讀寫檔案。posix.1 已經被國際標準化組織(international standards organization,iso)所接受,被命名為 iso/iec 9945-1:1990 標準。

有關posix2

posix的誕生和unix的發展是密不可分的,電氣和電子工程師協會(institute of electrical and electronics engineers,ieee)最初開發 posix 標準,是為了提高 unix 環境下應用程式的可移植性。unix於70年代誕生於貝爾實驗室,並於80年代向美各大高校分發v7版的原始碼以做研究。加利福尼亞大學伯克利分校在v7的基礎上開發了bsd unix。後來很多商業廠家意識到unix的價值也紛紛以貝爾實驗室的system v或bsd為基礎來開發自己的unix,較著名的有sun os,aix,vms。

然而,posix 並不侷限於 unix。許多其它的作業系統,例如 dec openvms 支援 posix 標準,尤其是 ieee std. 1003.1-1990(1995 年修訂)或 posix.1,posix.1 提供了源**級別的 c 語言應用程式設計介面(api)給作業系統的服務程式,例如讀寫檔案。posix.1 已經被國際標準化組織(international standards organization,iso)所接受,被命名為 iso/iec 9945-1:1990 標準。

posix 已發展成為乙個非常龐大的標準族,某些部分正處在開發過程中。posix 與 ieee 1003 和 2003 家族的標準是可互換的。

windows nt-based 系統不能直接支援新版posix介面,僅支援第一版posix v1:iso/iec9945-1:1990[1] 版標準。由於僅支援第一版posix的windows nt-based系統不能建立符合posix介面標準的執行緒和窗體、套接字,所以微軟公司提供posix相容層microsoft posix subsystem軟體包(windows services for unix)以支援新版posix介面,windows 系統還可以執行其他posix相容層例如cygwin.

程序間通訊分類

system v ipc & posix ipc

posix ipc

程序間共享資訊的三種方式

ipc物件的持續性

ipc物件是被linux核心管理

死鎖

死鎖產生的必要條件

請求和保持條件

不可剝奪條件

環路等待條件

防止死鎖辦法

死鎖避免

銀行家演算法

哲學家就餐問題

訊號量

訊號量值含義

struct semaphore

p原語

p(s) }

v原語

v(s) }

用pv原語解決司機與售票員問題

用pv原語解決民航售票問題

用pv原語解決汽車租賃問題

s(2)

p(s)

租車 還車

v(s)

程序基本概念

程式在計算機上的一次執行過程。即進行中的程式。程序 是活的,動態的。有生命週期。只能對應乙個程式。程式 是死的,靜態的。指令的集合。可以對應多個程序。就緒 程序已獲得除cpu以外的所有必要的資源 獲得cpu立即執行。執行 程式正在cpu上執行。阻塞 等待某個事件發生而無法執行時 放棄cpu。task...

通訊的基本概念

計算機與裝置 裝置與裝置 裝置與積體電路之間都是要通訊的。一 序列與並行通訊 通訊方式按照每次傳輸的位數可以分為序列通訊和並行通訊兩種。所謂的序列通訊就是資料一位一位的傳輸,常見的通訊介面有usart spi 並行通訊則是資料多位傳輸,常見的通訊介面有 舉個栗子 傳輸乙個8位的資料,如果是用序列通訊...

程序通訊的一些基本概念

1.目的 1 資料傳輸 乙個程序需要將他的程序資料傳送給另乙個程序。2 資源共享 多個程序之間共享同樣的資源。3 通知事件 乙個程序需要向另乙個或一組程序傳送訊息,通知他們發生了某種事件。4 程序控制 有些程序希望完全控制另乙個程序的執行 如debug程序 此時控制程序希望能夠攔截另乙個程序的所有操...