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