操作系统原理经典题型——信号量描述前趋图(小白也能听懂)

一、信号量描述前趋图

首先要搞清楚啥是PV,PV是用来实现进程互斥的操作,而wait和signal是其具体的原语

P(wait):申请资源操作

V(signal):释放资源操作

S:信号量,用来记录资源数量

例如S=3代表3个可用的空闲资源

执行P:wait(s)操作后,将申请一个可用资源,此时S-1

执行V:signal(s)操作后,将释放一个可用资源,此时S+1

那么此类题型,一般给你一个前趋图,让你写出信号量的执行函数

image-20240618143443561

此图大致可以理解为,执行完S1后,释放a、b资源,S2需要a资源,s3需要b资源,依次顺序执行

解题过程:

  1. 首先,声明一堆变量,这些变量代表的是信号量

  2. 定义进程函数,执行相关操作如s1(),执行完释放资源v(a)、v(b),每个节点如果有前驱箭头,则需先申请资源

  3. 所有进程函数定义好后,编写main函数

  4. 对所有信号量进行初始化赋值为0,在cobegin与coend中并发执行所有进程函数

详情请见下图,看懂这代码,这类题型就差不多了

image-20240106205451411

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我嘞个乖乖鹅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值