linux信号编程实践
简单的说,信号就是在软件层次上对中断机制的一种模拟,是一种异步通信方式。它可以实现内核进程和用户进程之间的交互。实现方式是,在任何时候发给
某一进程,如果该进程没有处于执行态,则该信号由内核保存,直到该进程恢复执行再传递给它为止。如果一个信号进程设置为阻塞,则该信号的传递被延迟,直到
其阻塞被取消时才被传递给进程。
使用kill -l选项列出系统所支持的所有信号列表。我的Redhat 9.0上如下:
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1
35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5
39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9
43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13
47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-14 50) SIGRTMAX-13
51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10 54) SIGRTMAX-9
55) SIGRTMAX-8 56) SIGRTMAX-7 57) SIGRTMAX-6 58) SIGRTMAX-5
59) SIGRTMAX-4 60) SIGRTMAX-3 61) SIGRTMAX-2 62) SIGRTMAX-1
63) SIGRTMAX
可见信号值在31号前的有不同的名称,这些是不可靠信号(非实时信号);后面的都是以SIGRTMIN或者SIGRTMAX开头的信号,这些是为了解决前面“不可靠信号”的问题而进行了更改和扩充的信号,也称为实时信号。其中RT就是Real Time的简写形式。
1、信号的生命周期
一个完整的信号生命周期可以分为3个重要阶段,这三个重要阶段由4个重要事件来刻画:信号产生、信号在进程中注册、信号在进程中注销、执行信号处理函数。相邻两个事件的时间间隔构成信号生命周期的一个阶段。
2、信号处理过程
一个不可靠信号的处理过程如下:若发现该信号已经在进程中注册,就忽略该信号,所以,若前一个信号还未注销又产生了相同的信号就会造成信号丢失。
一个可靠信号的处理过程如下:可靠信号发送给进程,不管该信号是否已经在进程中注册,都会被再注册一次,因此信号不会丢失。
&nbs
相关文档:
原文:http://linux.chinaunix.net/bbs/thread-793613-1-1.html
本文来自于原文内容,但是对文章的内容与结构做了简单调整。
1 介绍
考虑到从硬件层开始构建一个操作系统的难度,Adeos并没有并没有从零开始构建一个硬件抽象层;目前,Adeos是基于Linux内核实现的,这样的话,就可以将系统的启动和初始化工作都由Li ......
访问文件
/etc/host.conf
告诉网络域名服务器如何查找主机名。(通常是 /etc/hosts,然后就是名称服务器;可通过 netconf 对其进行更改)
/etc/hosts
包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS 或 NIS 网络名称服务器之前, ......
这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口
文档选项
打印本页
将此页作为电子邮件发送
样例代码
级别: 初级
M. Tim Jones (mtj@mtjones.com), 资深首席软件工程师, Emulex
2006 年 4 月 24 日
/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux® 内核空间和用 ......
查找 包含alias字符串的*.conf的文件
find / -name "*.conf" | xargs grep "alias"
1. grep -R -l 一些也可以实现,但是通过管道 | 比单纯用grep 复杂的参数更有效率。
2. xargs是用来展开find获得的结果,使其作为grep的参数。 ......
信号基本原理
Linux是一种多用户多任务的操作系统,系统内会有多个进程存在。无论是操作系统与用户进程之间,还是用户进程之间,经常需要共享数据和交换信息。进程
间相互通信的方法有多种,信号便是其中最为简单的一种,它用以指出某事件的发生。在Linux系统中,根据具体的的软硬件情况,内核程序会发出不同的信号
......