信号量与pv操作

进程的同步与互斥

PV操作

1.1 P 操作定义
S:=S-1,若 S>=0,则执行P操作的进程继续执行;若 S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入 阻塞队列Q
执行P操作的进程将进入等待队列
1.2.V 操作定义
S:=S+1,若 S>0,则执行V操作的进程继续执行;若 S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
执行V操作的进程将从阻塞队列中唤醒一个进程

  • 临界资源:多个进程需要共享使用的资源,如打印机。

  • 临界区:各个进程访问临界资源的那一段代码。

  • 信号量:在 PV 操作中的一种变量。

PV 操作存在的意义,就是实现不同进程之间的同步和互斥

举例说明使用 PV 操作的进程

生产者的进程 A:生产一个产品 ⇒ 执行 P(1:信号量大于0继续操作) 操作 ⇒ 将产品放到缓冲区 ⇒ 执行 V(0:阻塞状态唤醒一个进程,并将其插入就绪队列) 操作。
消费者的进程 B:消费一个产品 ⇒ 执行 P(0:该进程为阻塞状态因为无可用资源,并将其插入阻塞队列) 操作 ⇒从缓冲区中取出产品 ⇒ 执行 V(1:进程继续执行) 操作。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容