PV操作

三态模型

进程通常分为就绪、运行和阻塞三种工作状态。

三种状态在某些条件下可以转换,具体转换关系如下:

 

进程三个状态之间的转换是通过PV操作和信号量来控制的,其中信号量起到了很重要的作用。

 

信号量

信号量是最早出现的用来解决进程同步与互斥问题的机制。

信号量(Saphore)由一个值和一个指针组成,指针指向等待该信号量的进程,信号量的值表示相应资源的使用情况。

信号量 S>=0 时,S 表示可用资源的数量,执行一次P操作意味着请求分配一个资源,因此 S 的值减 1 ;

信号量 S<0 时,表示已经没有可用资源,S 的绝对值表示当前等待该资源的进程数,请求者必须等待其他进程释放该类资源才能继续运行,而执行一个V操作意味着释放一个资源,因此 S 的值加 1 ;

若 S<0 ,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

注意,信号量的值只能通过PV操作来改变。

 

两类问题

在说明这两类问题之前首先解释一些相关的概念:

PV操作:一种实现进程互斥与同步的有效方法,包含P操作与V操作。

P操作:使 S=S-1 ,若 S>=0 ,则该进程继续执行,否则排入等待队列。

V操作:使 S=S+1 ,若 S>0 ,唤醒等待队列中的一个进程。

临界资源:同一时刻只允许一个进程访问的资源,与上面所说的 S 有关联。

 

参考:

[1] https://blog.csdn.net/strikedragon/article/details/82791450

[2] https://blog.csdn.net/wuxy720/article/details/78936912

[3] https://baike.baidu.com/item/PV%E6%93%8D%E4%BD%9C/122128?fr=aladdin

 

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值