signal
文章平均质量分 86
Morphad
这个作者很懒,什么都没留下…
展开
-
linux 当前处理信号自动屏蔽
当某个信号被处理时(即正在执行信号处理handler),内核会自动阻塞该信号的再次传递(再次传递会导致信号处理handler的嵌套);当信号处理返回后,内核会自动恢复该信号到调用信号处理handler之前的阻塞状态;如信号SIGUSR1在调用handler之前未被阻塞,在调用handler时被阻塞,handler执行完后恢复未被阻塞状态;信号SIGUSR2在调用handler之前被阻塞原创 2013-07-08 20:13:31 · 1352 阅读 · 0 评论 -
linux 信号signal实现
信号是发送给进程或进程组的非常小的消息,通常只包含信号编号;现在的系统可以附带siginfo信息,见sigaction的SA_SIGINFO标识。信号主要有以下两个目的:1.让进程知道出现某异步事件2.出现异步事件,让进程能做出相应的处理(通过提供信号处理函数,由内核自动调用) I.信号生命周期i.信号生命周期1.信号产生:内核更新目标进程数据结构,表示出现某异步事件原创 2013-07-03 19:16:25 · 2844 阅读 · 0 评论 -
linux signal产生(发送)
不论是内核发送信号(硬件异常-SIGSEGV等、软件通知-SIGPIPE等、终端键-SIGINT等),还是用户进程发送信号(kill系统调用),都要由内核将信号记录到相应(轻量级)进程描述符中的信号相关结构中、唤醒被阻塞的目标进程等。在信号发送阶段,内核将信号添加到信号pending队列中;在信号传递阶段,内核将信号从pending队列中取出,并处理(包括调用用户自定义处理、SIG_DFL默认原创 2013-07-04 23:07:19 · 5110 阅读 · 0 评论 -
linux signal传递(处理)
内核版本:2.6.32.60linux信号传递阶段发生在异常/中断返回到用户态时;当内核由内核态返回到用户态时,如果有信号pending到当前进程,内核就将信号传递给进程并做信号处理I.异常/中断返回i.信号传递由以下注释可以看出异常/中断或系统调用(特殊的中断)退出时,都会去检测pending的信号并做处理/* arch/x86/kernel/entry_32.S */原创 2013-07-05 23:03:58 · 2508 阅读 · 0 评论