信号量和PV操作

本文介绍了信号量的概念,包括其结构和两个核心操作P、V原语。信号量用于管理系统资源,P操作表示进程请求资源,使信号量值减1,若值小于0则进程阻塞;V操作表示进程释放资源,值加1,若值仍小于0则唤醒等待队列中的进程。
摘要由CSDN通过智能技术生成

信号量和PV操作

信号量包括一个整数值和一个等待数列.S.queue,信号量只能通过两个原语P,V操作来访问它,信号量的定义:

 Struct semaphore{

      Int value;

      Struct PCB *queue;

}

P原语所执行的操作可用wait(s)来表示:

Void wait(semaphore s)

{

  s.value=s.value-1;

  if(s.value<0)

     block(s.queue); //进程阻塞,并将其投入等待数列s.queue

 }

V原语所执行的操作可用下面的函数siganl(s)来表示:

Void signal(semaphore s)

{   

   S.value=s.value+1;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值