标签:
读书笔记
信号是由用户/系统或进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。
Linux信号可由如下条件产生:
1).对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入Ctrl+C通常会给进程发送一个中断信号。
2).系统异常。比如浮点异常和非法内存段访问。
3).系统状态变化。比如alarm定时器到期将引起SIGALARM信号。
4).运行kill命令或者调用kill函数。
信号是一种异步事件:信号处理函数和程序的主循环是两条不同的执行路线。
信号处理函数需要尽可能快地执行完毕,以确保该信号不被屏蔽(为了避免一些竞态条件,信号在处理期间,系统不会再次触发它)太久。
典型的方案:信号的主要处理逻辑放在主循环中,当信号处理函数被触发时,它一般通过管道将信号传递给主循环,然后自身退出。主循环使用I/O复用系统调用来监听管道的读端文件描述符上的可读事件。
《Linux高性能服务器编程》
标签:
原文地址:http://www.cnblogs.com/bugchecker/p/basic_signal_concept_of_linux.html