进程管理---进程同步(信号量)

本文详细介绍了信号量机制,包括整型信号量和记录型信号量的特性和使用,强调了信号量在实现进程互斥和同步中的重要作用。通过案例解析了信号量在进程前趋关系控制中的应用,并探讨了AND型信号量和信号量集的概念,提供了解决信号量问题的一般方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、信号量机制

本节重点:

  • 熟练掌握整型信号量,记录型信号量
  • 熟练掌握实现信号量的基本应用——互斥同步
1、整型信号量(先判断后减值

1)信号量定义为一个整型量;
2)根据初始情况赋相应的值;
3)仅能通过两个原子操作来访问。

  • 整型信号量符合“有限等待”原则
    signal释放资源后,当CPU被分配给等待进程后,等待进程仍可继续执行,可以符合“有限等待”。
  • 但整型信号量不符合“让权等待”原则
    整型信号量的wait操作,当s ≤0时,当前进程会占着CPU不断测试;
    信号量原语不能被打断,这个占有CPU的进程会一直不断的占据CPU循环下去,陷入忙等。
2、记录型信号量

1)信号量结构信息发生变化

  • 不仅要有值的处理,还有队列的处理。

  • 此时形成记录型数据结构,包括两部分:

       *整型变量value(代表资源数目)
       *进程链表L(链接所有等待进程)
    

    代码描述:

         type  Semaphore=record
	         value:integer;
	         L:list  of  PCB;
         end;
    操作: S.Value,S.L

2) P、V操作也有变化(先修改资源数,再判断处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值