信号的注册、信号的注册

信号的注册(修改信号pending位图)信号记录在进程pcb中;信号集合:sigset_t 结构体(保存信号):进程记录一个信号时是通过这个结构体的位图来记录的(1号信号在位图第0位置存储,位图的该位置原本是0,如果有信号,该位置置1),这个位图的位数+1代表的就是指定 的信号存储位置。信号的阻塞与屏蔽 在pcb中有一个pending结构体存储当前收到的信号,还有一个结构体bloc...
摘要由CSDN通过智能技术生成

信号的注册(修改信号pending位图)

  • 信号记录在进程pcb中;
  • 信号集合:sigset_t 结构体(保存信号):进程记录一个信号时是通过这个结构体的位图来记录的(1号信号在位图第0位置存储,位图的该位置原本是0,如果有信号,该位置置1),这个位图的位数+1代表的就是指定 的信号存储位置。

信号的阻塞与屏蔽

在pcb中有一个pending结构体存储当前收到的信号,还有一个结构体blocked用于存储现在都有哪些信号要被阻塞。
这里写图片描述
进程看到pending集合都收到了哪些信号,然后就要开始处理这些信号,但是在处理这些信号之前,进程会先对比一下这些信号有没有存在于blocked集合中,如果存在就意味着这个信号将不被处理,直至阻塞解除。

sigprocmask:(可以读取或者更改进程的阻塞信号集)
#include <signal.h>
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
  •    how:  对集合所做的操作
    
  •   SIG_BLOCK :对set集合中的信号进行阻塞(将set集合中的信号放在blocked集合中,位图置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值