信号与信号处理

信号的来源,种类,进程对信号的响应。

信号的捕获,发送,屏蔽。

-------------------------------------------------------------

信号是一种软中断,它提供了一种处理异步事件的方式,也是进程间唯一的异步通信方式。根据POSIX标准扩展以后的信号机制,不仅可以

用来通知进程发生了什么事件,还可以给进程传递数据。

-------------------------------------------------------

信号的来源:

1、硬件方式:

在终端按下某些键时,产生信号。如Ctrl+C将产生SIGINT信号

硬件异常检测信号:除数为0,无效的存储访问等。这些事件通常由硬件(CPU)检测到,并将其通知给操作系统内核,然后由内核生成相应的信号,

并把信号发送给该事件发生时正在运行的程序。

2、软件方式:

在终端下使用kill命令向进程发送任意信号

进程调用kill或sigqueue函数发送信号

当检测到某种软件条件具备时发出信号,如由alarm或settimer设置的定时器超时,将生成SIGALRM信号。

------------------------------------------------------------------

信号的种类:

在终端输入  kill -l 可以显示Linux支持的全部信号。

信号的值定义在:signal.h中

1、可靠信号与不可靠信号:

2、信号的优先级:

-------------------------------------------------------------------

进程对信号的响应:

1、捕捉信号

2、忽略信号

3、按照系统默认方式处理。

时间: 2024-10-07 05:06:34

信号与信号处理的相关文章

Linux信号、信号处理和信号处理函数

信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式.在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某种程序发生了什么事件,还可以给进程传递数据. 一.信号的来源 信号的来源可以有很多种试,按照产生条件的不同可以分为硬件和软件两种. 1.  硬件方式 当用户在终端上按下某键时,将产生信号.如按下组合键后将产生一个SIGINT信号. 硬件异常产生信号:除数据.无效的存储访问等.这些事件通常由硬件(如:CPU)检测到,并将其通知

第二十二篇:信号的接收和处理

前言 要想掌握 Linux 系统编程,自然要好好学学其信号机制. 本文介绍一个简单的信号接收处理程序,为后面继续深入学习信号机制打下基础. 什么是信号 信号是软件中断,它提供一种处理异步事件的方法. 信号产生的条件 1. 当用户按某些终端按键时.比如:Ctrl + D / Ctrl + C 等. 2. 硬件异常.比如:除数为 0,无效内存引用等. 3. 调用 kill 函数可以将信号发送给另一个进程或者进程组. 4. 当检测到某种软件条件已经发生时.比如:alarm 到时,网络传来某些带外数据时

转载--理解数字信号处理的三把钥匙

原址 在数字信号处理大厦中,有许许多多的小房间,有的门上写着"DFT",有的门上写着"滤波",有的门上写着"卷积",有的门上写着"相关",等等.每一个房间都藏着知识的秘密,每一个房间都要用属于自己的钥匙才能打开.但就整体上来说,理解数字信号处理有三把"万能"的钥匙:时域与频域的相互切换.向量和MATLAB软件.充分应用这三把钥匙,能为深入理解数字信号处理提供有力的帮助. 1.时域与频域的相互切换 深入理解数

信号(三)---早期signal函数和现代signal函数的一些对比

使用signal函数的一些缺点: 由于signal函数调用成功时会返回原来信号处理程序的指针,所以如果我想要利用signal函数来获取原先信号处理程序的指针的话,必须要先去改变其信号处理方式.如下图所示 在早期的signal函数的实现中,使用signal函数安装的信号处理函数只能使用一次:在第一次捕捉到该信号的时候,就去执行安装的信号处理函数,同时内核会将该信号的信号处理方式修改为默认方式.下次进程再次收到这个信号的时候,进程将会执行信号的默认动作.但是现在的signal函数的实现并不是这样的,

转 linux 之信号

APUE讲信号真是生涩,着实读者无趣,如是找一篇总结比较好的博客. 原文http://blog.chinaunix.net/uid-24774106-id-4061386.html Linux编程,信号是一个让人爱恨交加又不得不提的一个领域.最近我集中学习了Linux的signal相关的内容,分享出来,也为防止自己忘记.     信号的本质是异步.异步一这个词,听着高端大气上档次,又让人云山雾绕,其则不然.其实我们想想,我们这个世界是异步的,每个人干事儿,并不总是 A->B->C->D这

信号处理程序(signal handler)会被重置的信号

首先说明我的系统,CentOS 6.6,内核为2.6.32-504.12.2.el6.i686. 当用signal对某个信号设定信号处理函数的时候,有些信号的处理函数会被重置,有些则不会,这种情况的具体说明我还没有找到,这里我就先列一下我找到的几个信号. 信号处理程序会被重置的信号: 1. SIGALRM 比如下面这段代码,这段代码的作用就是给自己发送SIGALRM信号,直到发送了NUM次. 1 #include <errno.h> 2 #include <pwd.h> 3 #in

linux系统下信号具体解释2

信号是UNIX 系统所使用的进程通信方法中,最古老的一种.信号不但能从内核发往一个进程,也能从一个进程发往还有一个进程.比如,用户在后台启动了一个要运行较长时间的程序,假设想中断其运行,能够用kill 命令把SIGTERM信号发送给这个进程,SIGTERM 将终止此进程的运行.信号还提供了向UNIX 系统进程传送软中断的简单方法.信号能够中断一个进程,而无论它正在作什么工作.因为信号的特点,所以不用它来作进程间的直接数据传送,而把它用作对非正常情况的处理.因为信号本身不能直接携带信息,这就限制了

UNIX环境编程学习笔记(23)——信号处理初步学习

lienhua342014-10-29 1 信号的概念 维基百科中关于信号的描述是这样的: 在计算机科学中,信号(英语:Signals)是 Unix.类 Unix 以及其他 POSIX 兼容的操作系统中进程间通讯的一种有限制的方式.它是一种异步的通知机制,用来提醒进程一个事件已经发生.当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断.如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数. 关于这段描述,我们可以从中学习到下面几点关于信号

linux下 signal信号机制的透彻分析与各种实例讲解

转自:http://blog.sina.com.cn/s/blog_636a55070101vs2d.html 转自:http://blog.csdn.net/tiany524/article/details/17048069 首先感谢上述两位博主的详细讲解. 虽然内容有点长,但是分析的很全面,各种实例应用基本都考虑到了. 本文将从以下几个方面来阐述信号: (1)信号的基本知识 (2)信号生命周期与处理过程分析 (3) 基本的信号处理函数 (4) 保护临界区不被中断 (5) 信号的继承与执行 (