计算机操作系统生产者和消费者模型的简单介绍
生活随笔
收集整理的這篇文章主要介紹了
计算机操作系统生产者和消费者模型的简单介绍
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
同步互斥小口訣
- 畫圖理解題目
- 判斷題目類型
- 分析進程數(shù)目 填寫進程模板
- 補充基本代碼(偽代碼)
- 補充PV代碼
- 檢查調(diào)整代碼
注意事項
- 代碼是一步一步寫出來的,代碼是反復(fù)調(diào)整寫出來的
- 60%是生產(chǎn)者和消費者模型
- 30%是讀者和寫者的模型
生產(chǎn)者和消費者
例子1
- 媽媽每次放放一個蘋果到桌子上,孩子每次從桌子上取一個蘋果。取蘋果和放蘋果不可以同時進行,而且桌子上最多只能放10個蘋果,請使用pv代碼實現(xiàn)同步互斥
- 箭頭 代表生產(chǎn)的含義,數(shù)目代表生產(chǎn)的數(shù)量
- 特征:1,存在一個容器,具有容量的限制;2,具有生產(chǎn)行為和消費行為,生產(chǎn)行為增加容量,消費行為減少容量
- 分析:生產(chǎn)者:需要考慮容器的容量,考慮的是剩余空間;消費者:需要考慮已占用空間
- 進程的數(shù)目:母親 和 孩子兩個進程
- 補充基本代碼? 取一個蘋果 和 放一個蘋果
- 補充PV代碼 full代表占用空間;empty代表已經(jīng)占用的空間;p代表減;v代表加
- 使用P(s)和V(s)包住會改變?nèi)萜魅萘康拇a,也就是臨界資源
- 代碼
例子2
- 桌子上有一個盤子,每次只能放入一個水果,媽媽放入橘子,爸爸放入蘋果,兒子吃橘子,女兒吃蘋果。盤子為空,爸爸媽媽才可以放入水果,當(dāng)盤子的水果和兒子或者女兒匹配的時候,兒子和女兒才可以拿水果
- 消費者(兒子) 關(guān)注橘子;消費者(女兒)關(guān)注蘋果;生產(chǎn)者(媽媽)關(guān)注盤子空間;生產(chǎn)者(爸爸)關(guān)注盤子空間
- 四個進程?
- mutex 和 plate的效果是等價的,因此,這里不加mutex也是可以的
- 代碼
?例子3?
- AB兩個人通過信箱進行辯論,每個人都從自己的信箱取出對方的問題,將答案和新的問題組成一個郵件放入對方的信箱中,假設(shè)A的信箱可以裝入M個郵件,B的信箱可以裝入N個郵件,初始的時候,A信箱有X封郵件,B信箱有y封郵件,辯論者每次只取一封郵件,請使用PV操作實現(xiàn),并解釋信號量初值和含義
- 分析
- 生產(chǎn)者 A? 關(guān)注 B的郵箱剩余空間
- 生產(chǎn)者 B 關(guān)注 A的郵箱剩余空間
- 消費者 A?關(guān)注 A的郵箱有多少封信件
- 消費者 B 關(guān)注 B的郵箱有多少封信件
- 代碼
例子4
- 系統(tǒng)中有多個生產(chǎn)者和消費者,共享一個能存放1000件產(chǎn)品的環(huán)形緩沖區(qū)(初始為空)。當(dāng)緩沖區(qū)沒有滿的時候,生產(chǎn)者可以放入生產(chǎn)的一個產(chǎn)品,否則等待,當(dāng)緩沖區(qū)域不為空的時候,消費者進程可以取走一件商品,否則等待。要求一個消費者從緩沖區(qū)域連續(xù)取走10個產(chǎn)品之后,其他消費者才可以取走產(chǎn)品,請使用PV實現(xiàn)該流程并解釋信號量的含義
- 生產(chǎn)者 j 剩余空間
- 消費者 i 剩余空間
- 消費者 m 物件數(shù)量
- 消費者 n? 物件數(shù)量
- 代碼
?
總結(jié)
以上是生活随笔為你收集整理的计算机操作系统生产者和消费者模型的简单介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装solc模块4.25版本
- 下一篇: clion配置远程服务器,使得windo