IPC經典問題

2021-08-29 19:22:35 字數 594 閱讀 3131

而講minix的書籍《作業系統_設計與實現》也是當年linus torvalds創造linux的思想源泉。剛看了此書一章多,覺得此書寫得非常經典。

看完本書講了ipc經典問題:哲學家進餐問題,讀者-寫者問題,理髮師理髮問題。

這些經典問題主要解決了程序間競爭資源問題,提出了程序同步的設計模型。

以下是理髮師理髮問題偽**: 12

#define

n 53

typedef 

intsemaphore;

4semaphore mutex=1

;//用於互斥

5semaphore customers=0

;//等候客人數訊號量

6semaphore barbers=0

;//等待顧客的理髮師訊號量

7int

wating =0

;//沒有理髮客人資料量89

//理髮師理髮

10void

barber()

1121}22

//來理髮客人了

23void

customer()

2433

else

3437}

經典的IPC問題

inter process communication的縮寫,含義是程序間通訊,是指兩個程序間交換資料的過程。哲學家的生活包括兩個不同的階段 吃飯和思考 當乙個哲學家覺得餓時,他就試圖去取他左邊和右邊的叉子,每次拿一把,但是部分次序,如果成功地獲得了兩把叉子,他就吃一會兒,然後放下叉子繼續思考。關鍵...

IPC 讀者 寫者問題

courtois et al於1971年提出。可以多讀取,但是寫入時不允許讀取 寫入。1 typedef int semaphore 2 semaphore mutex 1 3 semaphore db 1 4 int rc 0 5 void reader void 6 19 20void writ...

IPC 哲學家進餐問題

1965年,dijkstra提出並解決了乙個他稱之為哲學家進餐的同步問題。五個哲學家圍坐在一張圓桌周圍,每個哲學家的前面都有乙份通心麵,由於麵條很滑,必須使用2把叉子才能夾住。相鄰2份通心麵之間有1把叉子。哲學家的生活包括 吃飯 思考。當哲學家感覺餓了,他就試圖分2次取他左右的叉子,每次拿1把,但不...