CSAPP筆記 2 3程序間通訊IPC

2021-10-10 16:33:36 字數 613 閱讀 3063

定義:兩個或者多個程序讀寫某些共享資料,而最後的結果取決於程序執行的時序的現象。不能同時位於臨界區

不能對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 當讀...