Linux信号的基本概念

来源:互联网 发布:宁波淘宝商城外包 编辑:程序博客网 时间:2024/05/20 05:28

Linux的基本概念

天天在用信号,它的概念你可知道地准确?信号机制是一种使用信号来进行进程之间传递信息
的方法,其中信号的全称为软中断信号,简称软中断。
信号只是用来通知进程发生了什么事情,并不给进程传递数据。
信号都有一个默认值,且有3种处理方式:退出,忽视,注册函数。
信号的几个缺点:
1. 系统开销太大
2. 发送信号的进程需要进行系统调用
3. 数量非常有限
4. 不能传送数据及参数
如果信号发送给一个正在睡眠的进程,那么要看该进程进入睡眠的优先级,如果进程睡眠在可被中断
的优先级上,则唤醒,否则仅仅设置进程表中信号域相应的位,而不唤醒进程。因为进程检查是否受
到信号的时机是:一个进程在即将从内核态返回用户态时或者在一个进程要进入或离开一个适当的低
调度优先级睡眠状态时。
内核处理一个进程收到的信号的时机是:在一个进程从内核态返回用户态时,所以,当一个进程在内核运
行时,是不响应信号的,要等到返回用户态时才处理,处理完再返回用户态。因为进程处理完信号后才会
返回用户态,所以在用户态下不会存在未处理完的信号。
Linux内核支持64个默认信号,1-31为不可靠信号(非实时),34-63为可靠信号(实时),不可靠信号与可靠信号的区别是前者不支持排队的,当时每捕获就会丢失,然而后者不会,会等待。
信号SIGSTOP(19)和SIGKILL(9)还有两个用户自定义信号是不可以被忽略的
原创粉丝点击