順序程式與併發程式特徵
程序互斥
互斥示例
程序同步
同步示例
程序間通訊目的
· 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程序 此時控制程序希望能夠攔截另乙個程序的所有操...