【操作系统】Semaphore处理吸烟者问题
生活随笔
收集整理的這篇文章主要介紹了
【操作系统】Semaphore处理吸烟者问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
“吸煙者”問題
- 問題描述
- 問題分析
- 關系分析
- 求解思路
- 信號量設置
- 問題解決
問題描述
存在三個抽煙者和一個供應者。
每個抽煙者不停地卷煙并抽煙,煙有三種原材料:煙草、煙紙、膠水。
三個抽煙者中,第一個擁有煙草,第二個擁有煙紙,第三個擁有膠水。
供應者不斷地隨機供應這三種原材料,每次提供兩種原材料到桌子上,能卷好煙的抽煙者會卷煙并抽煙,結束后供應者繼續提供新的原材料……
問題分析
關系分析
形成的是一個三人輪流抽煙的情況,由于限制了必須能卷好煙的人才能拿走材料,所以避免了死鎖。
供應者與三個抽煙者之間分別是同步的關系。
三個抽煙者對抽煙這個動作是互斥的。
求解思路
設置四個進程,一個供應者,三個不同的抽煙者。
信號量設置
需要4個信號量:
- offer1:對應煙草和紙組合的資源
- offer2:對應煙草和膠水組合的資源
- offer3:對應紙和膠水組合的
總結
以上是生活随笔為你收集整理的【操作系统】Semaphore处理吸烟者问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【离散数学】论域和客体函数的区别
- 下一篇: 【操作系统】进程的状态与转换