[操作系统]信号量机制---生产者-消费者问题

目录

1信号量机制

1.1定义:

1.2包含:

1.2.1value 可用资源数目

1.2.2L 等待此类进程资源的PCB表链 

2p-v操作:

2.1p原语:

2.2v原语:

3信号量的应用:

3.1解决生产者-消费者问题

3.1.1互斥:

3.1.2同步

当缓冲池空时,

当缓冲池满时,

3.1.3实现:

4思考一个问题:交换消费者进程的两个p操作会发生什么?

5变形:

5.1题目描述:(同步互斥都有)

5.1.1图解:

5.1.2互斥:

5.1.3同步:

5.1.4实现:

 

变形2:(部分互斥)

5.2题目描述:(同步互斥都有)

5.2.1互斥:

5.2.2同步:

5.2.3实现:


1信号量机制

1.1定义:

对系统中资源及其组织情况的抽象

1.2包含:

1.2.1value 可用资源数目

value>0-----当前可用资源数目为value

value=0-----当前资源刚好用完

value<0-----有value个进程正在等待执行

1.2.2L 等待此类进程资源的PCB表链 

L不为空,L中等待进程的个数为value的绝对值

 

2p-v操作:

2.1p原语:

请求系统分配一个单元的资源,

//s为信号量
--s.value;
if(s.value<0)//没有空闲资源
{
block(s,L);//调用进程进入等待队列,阻塞调用进程
}

2.2v原语:

请求系统释放一个单元的资源

++s;//释放一个资源
if(s.value<=0){// 仍然有进程处于阻塞队列
wakeup(s,L);//从等待队列中取进程进入就绪队列
}

3信号量的应用:

3.1解决生产者-消费者问题

3.1.1互斥:

设生产者进程和消费者进程的公有互斥信号量为mutex初=1,表示当前共享的缓冲池资源空闲

3.1.2同步

当缓冲池空时,

当且仅当生产者给缓冲池中放产品,消费者从缓冲池中取产品

设两进程的私有同步信号量为full初=0,表示当前缓冲池为空

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值