信号概述

【摘自《Linux/Unix系统编程手册》】

概述

信号是事件发生时对进程的通知机制。有时也称之为软件中断。信号和硬件中断的类似之处在于打断了程序执行的正常流程,大多数情况下,无法预测信号到达的精确时间。

一个(具有合适权限的)进程能够向另一个进程发送信号。信号的这一用法可作为一种同步技术,甚至是进程间通信(IPC)的原始形式。进程也可以向自身发送信号。然而,发往进程的诸多信号,通常都源于内核。

针对每个信号,都定义了一个唯一的(小)整数,从1开始顺序展开。<signal.h>以SIGxxxx形式的符号名对这些整数做了定义。

信号分为两大类:第一类,一组用于内核向进程通知事件;第二类,一组实时信号。

信号因某些事件而产生,信号产生后,会于稍后被传递给某一进程,而进程也会采取某些措施来响应信号。在产生和到达期间,信号处于等待(pending)状态。

通常,一旦内核接下来要调度该进程运行,等待信号会马上送达,或者如果进程正在运行,则会立即传递信号(例如,进程向自身发送信号)。然而,有时需要确保一段代码不为传递来的信号中断。为了做到这一点,可以将信号添加到进程的信号掩码中——目前会阻塞该组信号的到达。如果产生的信号属于阻塞之列,那么信号将保持等待状态,直至稍后对其解除阻塞(从信号掩码中移除)。进程可使用各种系统调用对其信号掩码添加和移除信号。

表:term:信号终止进程;core:进程产生核心存储文件并退出;ignore:忽略该信号;stop:信号停止了进程;cont:信号恢复了一个已停止的进程

      名     称                   信   号   值                                           描                                               述                                                   SUSv3 默认
SIGABRT 6 中止进程 core
SIGALRM 14 实时定时器过期 term
SIGBUS 7(SAMP = 10) 内存访问错误 core
SIGCHLD 17(SA=20,MP=18) 终止或停止子进程 ignore
SIGCONT 18(SA=19,M=25,P=26) 若停止则继续 cont
SIGEMT undef(SAMP=7) 硬件错误   term
SIGFPE 8 算术异常 core
SIGHUP 1 挂起 term
SIGILL 4 非法指令 core
SIGINT 2 终端中断 term
SIGIO 29(SA=23,MP=22) I/O时可能产生 term
SIGPOLL        
SIGKILL 9 必杀(确保杀死) term
SIGPIPE 13 管道断开 term
SIGPROF 27(M=29,P=21) 性能分析定时器过期 term
SIGPWR 30(SA=29,MP=19) 电量行将耗尽   term
SIGQUIT 3 终端退出 core
SIGSEGV 11 无效的内存引用 core
SIGSTKFLT 16(SAM=undef,P=36) 协处理器栈错误   term
SIGSTOP 19(SA=17,M=23,P=24) 确保停止 stop
SIGSYS 31(SAMP=12) 无效的系统调用 core
SIGTERM 15 终止进程 term
SIGTRAP 5 跟踪/断点陷阱 core
SIGTSTP 20(SA=18,M=24,P=25) 终端停止 stop
SIGTTIN 21(M=26,P=27) 后台进程组从终端读取 stop
SIGTTOU 22(M=27,P=28) 后台进程组向终端写 stop
SIGURG 23(SA=16,M=21,P=29) 套接字上的紧急数据 ignore
SIGUSR1 10(SA=30,MP=16) 用户自定义信号1 term
SIGUSR2 12(SA=31,MP=17) 用户自定义信号2 term
SIGVTALRM 26(M=28,P=20) 虚拟定时器过期 term
SIGWINCH 28(M=20,P=23) 终端窗口尺寸发生变化   ignore
SIGXCPU 24(M=30,P=33) 突破对CPU时间的限制 core
SIGXFSZ 25(M=31,P=34) 突破对文件大小的限制 core
时间: 2024-10-07 14:57:30

信号概述的相关文章

Linux高性能server编程——信号及应用

?? 信号 信号是由用户.系统或者进程发送给目标进程的信息.以通知目标进程某个状态的改变或系统异常. Linux信号可由例如以下条件产生: 对于前台进程.用户能够通过输入特殊的终端字符来给它发送信号.比方输入Ctrl+C一般会给进程发送一个终端信号. 2.系统异常 系统状态变化 执行kill命令或调用kill函数 Linux信号概述 发送信号 Linux下,一个进程给其它进程发送信号的API是kill函数.其定义例如以下: #include <sys/types.h> #include <

Linux高性能服务器编程——信号及应用

 信号 信号是由用户.系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常.Linux信号可由如下条件产生: 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号.比如输入Ctrl+C通常会给进程发送一个终端信号. 2.系统异常 系统状态变化 运行kill命令或调用kill函数 Linux信号概述 发送信号 Linux下,一个进程给其他进程发送信号的API是kill函数.其定义如下: #include <sys/types.h> #include <sign

Python模块之信号学习(signal)

信号概述 在学习Python前应该学习下Linux下的信号,软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.进程之间可以互相通过系统调用kill发送软中断信号.内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件.注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据. 信号种类 Linux中的信号种类(从图中可以看到没有32.33这俩个信号) 普通信号:1-----31号信号 实时信号:34---64号信号 通过指令      kill  信号序号

基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)

1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤波效果后,将叠加噪声信号的音频信号输出到txt文件里.然后使用Matlab语言编写滤波器模块和测试模块,通过Modelsim软件读取txt文件的数据,将数据送入滤波模块,最后将滤波的结果输出到txt文件里,最后用Matlab将处理的结果从txt文件读出.显示.FFT分析用Verilog设计的FIR滤

Linux笔记--Linux进程通信

Linux进程间通信 文章来源: http://www.cnblogs.com/linshui91/archive/2010/09/29/1838770.html 一.进程间通信概述进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到.C.通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程).D.

【转】 Linux进程间通信

一.进程间通信概述进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到.C.通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程).D.资源共享:多个进程之间共享同样的资源.为了作到这一点,需要内核提供锁和同步机制.E.进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程

C/C++捕获段错误,打印出错的具体位置(精确到哪一行)

修订:2013-02-16 其实还可以使用 glibc 的 backtrace_symbols 函数,把栈帧各返回地址里面的数字地址翻译成符号描述的 修订:2011-06-11 背景知识: · 在linux/unix中的信号处理机制,知道signal函数与sigaction的区别 · 段错误的概念,CPU中断处理的步骤,中断向量表的分类 · 知道CPU Exception分为Fault.trap和abort,了解他们的基本区别 · 段错误和浮点错误属于Fault,产生Fault时会将出错指令的地

由一道面试题来了解进程间的通信

周末面试碰到一个面试题,题目是: 在MMO游戏中,服务器采用Linux操作系统,网络通信与游戏逻辑处理进程一般是分离的.例如:GameSvr进程处理游戏逻辑,TCPSvr进程处理网络通信.Linux操作系统提供了很多机制可以实现GameSvr和TCPSvr进程之间的数据通信.请您列出两种你认为最好的机制来,并为主(最好)次(次佳)描述他们实现的框架,优缺点对比和应用中的注意事项. 答案:Linux下进程通信 一.进程间通信概述进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一

网络布线

[TOC] 前言 一:OSI七层参考模型 1.1:OSI七层参考模型 1.2:TCP/IP协议簇的组成 1.3:数据封装过程 1.4 设备与层的对应关系 二:信号 2.1:信号概述 2.2:双绞线 三:光纤概述 3.1:光纤概述 3.2:光纤分类 四:接口 4.1:以太网接口 4.2:光纤接口 五:综合布线系统 六:布线过程中使用的材料 七:学习知识点 原文地址:https://blog.51cto.com/14558445/2445217