信号的捕捉与处理

本文探讨了如何向进程发送信号以及进程如何感知这些信号。通过实例展示了信号的捕捉方法,但指出9号信号(SIGKILL)和19号信号(SIGSTOP)无法被捕捉,以保证系统的安全性。如果所有信号都能被捕捉,可能会导致程序无法终止,带来潜在的安全风险。
摘要由CSDN通过智能技术生成

        前边已经详细介绍了信号的产生,经常说到的一句话应该是向进程发送一个信号,但是进程不是像人,可以自己去感知信号。那么,到底是怎么向通过什么方式将进程发送信号的呢?怎么样算是给进程发送了一个信号呢?

      和红绿灯一样,信号其实也就是一种规定。在现实生活中,只有那些在相应领域里有着绝对话语权的人才能给出规定,比如一所学校的校长,能制定校规。那么电脑里边谁能制定规则呢?操作系统,毫无疑问,只有内核能制定规则。操作系统是不信任任何用户的,所以用户的权限永远都比内核的权限要低很多,而有的操作仅仅依靠用户的那点权限是没法完成的,还得依靠内核来处理。所以,信号的规定是在内核里边,进程的信号都是操作系统通过内核发送的。那么,具体是怎样发送的呢?
      我们都知道每个进程都有一个进程控制块(PCB),控制了一个进程PCB就相当于控制了这个进程。操作系统就是通过控制进程的PCB来控制进程的。前边已经说过了普通信号是有 31个 的,如果用一个比特位来代表一个信号,那么,使用一个整型(32位机中整型就是4个字节,总共有32个比特位)就足够表示了。

介绍几个与信号相关的概念
实际执行信号的处理动作叫做信号 递达(Delivery)
信号从产生到递达之间的状态,称为信号 未决(Pending)。 当进程收到一个信号时,并不是立刻就去处理,而是等到合适的时间再去处理。对于这个合适的时间,后边再做详细的介绍。
进程可以
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值