软考(一 PV操作)

进程三态图
就绪 等待CPU资源
运行 得到资源与CPU
等待(阻塞) 等待除CPU外的其他资源,最经常的有打印机

生产者与消费者
p操作 消费者 信息量-1 拿去一个商品
v操作 生产者 信息量+1 生产一个商品
当缓冲区信息量满的时候 不能再添加生产的商品
用到p操作 (阻塞)
生产者生产 -》 判断缓冲区是否满产品 -》 放入缓冲区

一.生产者与消费者(售票员与司机)
制约关系
启动车辆 正常行车 到站停车
关车门 售票 开车门
启动前关车门,到站停车后开车门

s1是否允许司机启动车,s2是否允许售票员开车门,初始都为0

售:
关车门
vs1
售票
ps2
开车门
司:
ps1
启动车辆
正常行车
到站停车
vs2

二.读者与写者
共享一组数据区
多个读者可同时工作
多个写者不可同时工作
读者,写者不可同时工作

**思路**

读者来
无人可读
读者优先,有写者等,可读
有写者写,要等

写者来
无人可写
有写者,写者等
有读者,写者等

第一个读者进入时,不允许写者进入,允许其它读者进入
最后一个读者出来时,允许写者进入

w写者可以进入,初始为1

**读**
while(true){
P(mutex)
readcount++;
if(readcount==1)
p(w);
v(mutex);
读
P(mutex);
readcount--;
if(readcount==0)
v(w);
v(mutex);

};

while(true){
p(w);

v(w);
};

mutex增加pv操作的互斥性
因为存在多个读者,所以操作时需要把readcount操作当成一个整体
避免多个读者之间产生相互干扰

管程
内部提供资源,不被外面程序所使用,只被内部资源使用
put(item)与get(item)

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21227749/article/details/52373511
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

软考(一 PV操作)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭