如何实现信号屏蔽

       紧接上一篇博客,接着分享一下信号屏蔽的具体内容以及如何实现信号屏蔽。

       Linux中常见信号量只有31个,所以进程PCB中表示常见的信号量只用一个字节表示就够了,进程得到了一个信号就是对应的一个bit位由0改变为1。信号被系统发送给一个进程,就是改变PCB中表示信号量的字节中对应的一个bit位。进程收到某一信号,相当于向表示信号量的字节中写入了一个信号量。

       关于信号抵达,当信号产生后会向指定进程发送,但被发送的信号不会第一时间被抵达,进程也就不会产生相应的处理动作,所以信号存在信号未决和信号抵达这两种状态;而信号未决处于信号产生和信号抵达之间,所以,在信号抵达之前会存在一种情况叫做信号阻塞,被阻塞的信号是永远都不会在解除阻塞前被抵达的。

    Linux为了方便管理用三张表来存储这些信息。

      block表                                    表示被阻塞的信号(1为阻塞)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值