吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 864|回复: 9
收起左侧

[讨论] pv操作判断信号量

[复制链接]
wuqingvika 发表于 2023-3-2 09:48
pv操作那里,为啥我觉得S<=0和s<0好难理解。。。。
image.png
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wuqingvika 发表于 2023-3-2 09:59
刚去找视频看了,
意思是减完之后,判断如果小于0,就说明本来就是<=0说明临界资源本来就是不可用的。那么将本进程阻塞。
V操作用于进程出临界区的时候去释放资源,加完1相当于我用完了资源,加1之后如果值<=0说明我加一之前value<0(是负的 ,表示有进程想用该资源而不能用被阻塞等待,因此需要唤醒一个进程
侃遍天下无二人 发表于 2023-3-2 11:23
本帖最后由 侃遍天下无二人 于 2023-3-2 11:40 编辑

PPT写得太复杂了,先不要管阻塞队列的事。
首先, 先假定s==0之后所有的P操作都会被阻塞/卡住,而只有等V操作完成后再随机唤醒/恢复一个P操作;
现在,再告诉你,所谓阻塞队列无非就是描述有多少个P操作被卡住了;
再进一步考虑,如果允许P操作先减小s的值再卡住,这个时候s==-1就表示有一个进程的P操作被卡住,阻塞队列长度为1;
现在再假定 s<<0, 这个时候如果有进程发起了V操作,会释放一个单位的资源,使s+=1,这一【瞬间】可用资源数为1,此时会有一个原本被阻塞的P操作得以继续执行,但此P操作执行后,可用的资源数从1变为0(这个过程可以认为是瞬间完成的),等这个P操作结束后又会进行V操作继续释放资源。在s恢复为正数之前,除去执行完几个V操作的瞬间,系统的可用资源数始终为0。

所以并不是像ppt上写的那样只有s>=0的时候才释放资源,而是只要执行了V操作就会释放资源,只是如果s仍然为负,释放的资源会瞬间被申请走。
云在天 发表于 2023-3-2 14:32
image.png

截一张之前上课的图。看代码就明白了。没必要纠结他是不是<0

点评

另外,图上说没有先后顺序纯纯瞎扯 如果有两个semaphore 顺序如果出错,就会出现deadlock。  详情 回复 发表于 2023-3-2 14:34
云在天 发表于 2023-3-2 14:34
云在天 发表于 2023-3-2 14:32
截一张之前上课的图。看代码就明白了。没必要纠结他是不是<0

另外,图上说没有先后顺序纯纯瞎扯

如果有两个semaphore 顺序如果出错,就会出现deadlock。
 楼主| wuqingvika 发表于 2023-3-6 10:41
侃遍天下无二人 发表于 2023-3-2 11:23
PPT写得太复杂了,先不要管阻塞队列的事。
首先, 先假定s==0之后所有的P操作都会被阻塞/卡住,而只有等V ...

谢谢大佬说的太细了  感恩
 楼主| wuqingvika 发表于 2023-3-6 10:43
云在天 发表于 2023-3-2 14:34
另外,图上说没有先后顺序纯纯瞎扯

如果有两个semaphore 顺序如果出错,就会出现deadlock。

好的 明白了 谢谢大佬!!
 楼主| wuqingvika 发表于 2023-3-6 10:46
进程原语 PV 操作是一个用于实现进程间同步的基本工具,常见于操作系统中的进程间通信(IPC)中。PV 操作包括两个原语:P(proberen)和 V(verhogen),它们分别表示对资源的请求和释放。一般情况下,PV 操作需要成对出现,即每个 P 操作都必须对应一个 V 操作。

对于 PV 操作的先后顺序,一般来说,需要满足以下两个条件:

每个进程在执行 PV 操作时,必须按照一定的先后顺序执行 P 和 V 操作。例如,在执行一个关键区域的代码之前,必须先执行 P 操作来获得资源,然后在执行完关键区域的代码之后,再执行 V 操作来释放资源。
在多个进程之间,必须保证 P 和 V 操作的执行顺序不会导致死锁或资源竞争等问题。通常可以使用一些同步算法来解决这些问题,例如信号量、互斥量等。
需要注意的是,PV 操作的具体先后顺序可能会因为系统环境、算法实现等因素而有所不同,因此在使用 PV 操作时,需要参考具体的实现文档或算法说明,以确保正确使用。

免费评分

参与人数 1吾爱币 -8 收起 理由
侃遍天下无二人 -8 禁止照搬chatgpt回复

查看全部评分

 楼主| wuqingvika 发表于 2023-3-6 16:01
侃遍天下无二人 发表于 2023-3-2 11:23
PPT写得太复杂了,先不要管阻塞队列的事。
首先, 先假定s==0之后所有的P操作都会被阻塞/卡住,而只有等V ...

引用chatgpt的答案哪里有错 可以友情提醒吧  本意也是想有一些概念性的说明 因为提到顺序我就去问了下 把答案贴进来作为公共知识方便大家一起学习交流的。

点评

版规写着禁止照搬的,你要想参考下做总结没问题,但要用你自己的理解来写,我也看了chatgpt,但你看我答案里还有它的风格吗  详情 回复 发表于 2023-3-6 18:33
侃遍天下无二人 发表于 2023-3-6 18:33
wuqingvika 发表于 2023-3-6 16:01
引用chatgpt的答案哪里有错 可以友情提醒吧  本意也是想有一些概念性的说明 因为提到顺序我就去问了下 把 ...

版规写着禁止照搬的,你要想参考下做总结没问题,但要用你自己的理解来写,我也看了chatgpt,但你看我答案里还有它的风格吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表