定義:兩個或者多個程序讀寫某些共享資料,而最後的結果取決於程序執行的時序的現象。不能同時位於臨界區
不能對cpu的速度和數量做要求
臨界區外的程序不得阻塞其他程序
程序不能無限期等待進入臨界區
*** 互斥是避免競爭條件的手段 ***
遮蔽中斷法
鎖變數法
嚴格輪換法
peterson解法
指令法(tsl或者xchg)
以上的互斥方案都是基於忙等待的互斥,還有一種是非忙等待的互斥。pv操作
pv操作和喚醒睡眠操作一樣,同樣是原語。訊號量:系統中可以使用的資源個數
互斥量:不需要計數的訊號量,簡化版本。
定義:乙個由過程、變數、資料結構等組成的乙個集合。程序在需要的時候呼叫管程中的過程。是乙個模組、介面。
性質:任意時刻,管程中只能有乙個活躍的程序。
實現:使用條件變數和wait signal操作。
管程互斥的實現由編譯器負責,c語言不支援管程。
APUE學習筆記 23 程序間通訊之管道
by 潘雲登 對於商業目的下對本文的任何行為需經作者同意。寫在前面 1.本文內容對應 unix 環境高階程式設計 第 2版 第 15章。2.總結了程序間通訊的一種機 制 管道的基本概念和使用方法。3.管道 管道是unix 系統ipc 的最古老形式,在 shell 下的表現形式為管道線。每當在管道線中...
OS筆記 23 程序通訊
程序通訊是指 程序之間的資訊交換。協作程序需要一種程序間通訊機制 interprocess communicatio,ipc 來允許程序相互互動資料與資訊。1.共享儲存器系統 shared memory system 在共享儲存器系統中,相互通訊的程序共享某些資料結構或儲存區,然後通過這些空間進行通...
APUE筆記 程序間通訊
管道 include int pipe int fds 2 fd返回兩個檔案描述符,fd 0 讀,fd 1 寫!管道是單雙工的,只能一端寫,另一端讀,不能兩邊同時讀寫 管道實際上是在,核心中開闢了乙個迴圈佇列,當佇列寫滿 隊空 時,繼續寫 讀 管道會阻塞當前程序!當寫端關閉,繼續讀時返回eof 當讀...