【操作系统】信号量与P、V操作
来源:互联网 发布:windows agent 安装 编辑:程序博客网 时间:2024/06/01 19:46
知识点:
信号量机制主要有整形信号量、记录性信号量、信号量集机制。
信号量是一个整形变量,根据控制对象的不同赋不同的值。信号量可分为公用信号量和私用信号量两类。
公用信号量:实现进程间的互斥,初值=1或资源的数目
私用信号量:实现进程间的同步,初值=0或某个整数
信号量S的物理意义:S>=0时表示某资源的可用数,s<0时其绝对值表示阻塞队列中等待该资源的进程数。P、V操作是实现进程同步与互斥的常用方法。
P操作表示申请一个资源,V操作表示释放一个资源。
P操作的定义:S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
Procedure P(Var S:Semaphore);
V操作定义:S=S+1,若S>0则执行V操作的进程继续执行;若S<0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。
S:=S+1
If S<=0 then R(s) {从阻塞队列中唤醒一个进程}
End;
利用PV操作实现进程的互斥
P(mutex)
临界区
V(mutex)
讨论的习题:
S1初值为2,题目知道有两个发货员我们可以知道用S1表示发货员的数目;同样S2表示审核员的数目。当顾客进程i进入系统,此时为第一个我们有S1=2>0则发货员开始工作P(s1),顾客提完货物以后发货员完成自己的 工作释放资源V(S1);
顾客提完货以后需要检察员进行检测,确认货物是否正确,S2=1>0,则审核员开始工作P(s2) ,
进行检验 ,无论结果如何S2释放资源V(s2)。
所以A,C
第二个问题:
当然还有一些知识点需要研究
- 【操作系统】信号量与P、V操作
- 信号量P/V操作
- 信号量同步-P V 操作
- 进程间同步与互斥---信号量P,V操作
- 信号量的P操作和V操作
- P-V操作(信号量的操作)
- P,V操作的历史背景:信号量机制???
- 关于操作系统里面的P-V操作的信号量跟Linux下的无名信号量的区别!
- 信号量与P,V原语
- [操作系统]简单理解P,V操作
- 进程同步---生产者与消费者问题以及进程同步机制--信号量及P、V操作
- 【找工作资料】 P.V操作原语和信号量
- 我该如何理解信号量机制中的P.V操作?????
- 进程间通信——信号量(P、V操作)
- 临界资源、临界区、信号量、P,V操作
- 操作系统 信号量与PV操作
- 操作系统 吃水果问题的P V 操作原语
- 基于信号量与P/V操作同步机制的读者/写者问题的设计与实现 (写者优先)
- VB键盘输入、常量定义与输出文字和参数
- java实现二叉平衡树
- linux 下redis 安装,python 链接测试
- c++bug小结(一)
- 使用wsimport命令生成webService客户端代码实例
- 【操作系统】信号量与P、V操作
- MySQL 基本操作和用户管理
- 安装tensorflow(ubuntu)
- Android ConnectivityManager详解
- C# -- Async 和 Await 解惑
- ABB robotstudio 创建系统小问题,谢谢
- 渲染引擎杂记(2)——折射光线方向公式推导
- JSP Standard Tag Library
- git revert 和reset的区别