信号量实现进程互斥、同步、前驱关系

信号量实现进程互斥、同步、前驱关系

image


imageimage

P、V 操作必须成对出现。缺少 P(mutex) 就不能保证临界资源的互斥访问。缺少 V(mutex) 会导致资源永不被释放,等待进程永不被唤醒。

一、实现进程互斥

注:下图中的第一行对信号量的初始化只是简化写法,并不严格遵循结构体的相关语法,仅供理解参考

image

补充:对不同的临界资源需要设置不同的互斥信号量。

二、实现进程同步

进程同步:要让各并发进程按要求有序地推进。

基本原理:

在一个顺序中,靠前的代码的后方设置 V(S) 操作 (释放资源),靠后的代码的后方设置 P(S) 操作 (使用资源),以达到只有持有资源才能继续运行的先后逻辑。

image

三、实现进程的前驱关系

本质上是多级进程同步。

image

posted @ 2024-11-08 09:31  Wind_730  阅读(14)  评论(0)    收藏  举报