信号量应用场景总结

本文介绍了信号量在保护共享内存中的作用,通过信号量实现并发操作的协调,防止数据错误。详细阐述了信号量的概念、操作,包括P操作和V操作,并提到了信号量的创建、控制及删除。同时,讲解了System V IPC机制中的信号量使用,以及相关函数如semget、semctl和semop的用法。
摘要由CSDN通过智能技术生成
如果在共享内存中有并发的操作,即多个进程同时往同一块共享内存写东西,就会出错,例如两个并发进程,同时操作共享内存(往其写),会在中途出错。详见
现在就用信号量来保护共享内存,这里为p,确保其结果为20000000

信号量(相当于一个红绿灯)   通过这个灯来保护共享资源(让其它人操作不了)
级别:
cpu ,寄存器,一级缓存,二级缓存(缓存相当于高级ram,只是放在cpu里边,其存取速度比ram更快),内存,磁盘 

原语:即原子操作(例如二进制开关),操作系统不能被其它指令打断的一次操作

删除对应id的信号量集合:ipcrm -s semid
为了获得共享资源进程需要执行下列操作:
1 )测试控制该资源的信号 。(首先要有个信号量,即信号灯,信号量实际上也有系统维护的资源,有0和1,相当于红绿灯)
2 )若信号 的值为正,则进程可以使用该资源。进程信号 值减1 ,表示它使用了一个资源单位。此进程使用完共享资源后对应的信号 会加1 。以便其他进程使用。
 
信号量只能设置一次
1 使用就减1
0 使用完就加1
3 )若信号 的值为0 ,则进程进入休息状态,直至信号
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值