Linux系统下可靠信号与不可靠信号的区别

时间:2018-01-04 12:01来源:未知 作者:Linux先生 举报 点击:
Linux信号机制基本上是从Unix系统中继承过来的。早期Unix系统中的信号机制比较简单和原始,重庆幸运农场开到晚上几点:后来在实践中暴露出一些问题,因此,把那些建立在早期机制上的信号叫

本文地址:http://www.kooct.com/install/setup/2018/0104/17167.html
文章摘要:,单线程军歌义正辞约,内衣模特摩顶至踵特型。

  Linux信号机制基本上是从Unix系统中继承过来的。早期Unix系统中的信号机制比较简单和原始,后来在实践中暴露出一些问题,因此,把那些建立在早期机制上的信号叫做“不可靠信号”,信号值小于SIGRTMIN(Red hat 7.2中,SIGRTMIN=32,SIGRTMAX=63)的信号都是不可靠信号。这就是“不可靠信号”的来源。它的主要问题包括:
 

Linux系统下可靠信号与不可靠信号的区别
 

  
  进程每次处理信号后,就将对信号的响应设置为默认动作。在某些情况下,将导致对信号的错误处理;因此,用户如果不希望这样的操作,那么就要在信号处理函数结尾再一次调用signal(),重新安装该信号。
  
  信号可能丢失,因此,早期Unix下的不可靠信号主要指的是进程可能对信号做出错误的反应以及信号可能丢失。
  
  Linux支持不可靠信号,但是对不可靠信号机制做了改进:在调用完信号处理函数后,不必重新调用该信号的安装函数(信号安装函数是在可靠机制上的实现)。因此,Linux下的不可靠信号问题主要指的是信号可能丢失。
  
  随着时间的发展,实践证明了有必要对信号的原始机制加以改进和扩充。所以,后来出现的各种Unix版本分别在这方面进行了研究,力图实现“可靠信号”。由于原来定义的信号已有许多应用,不好再做改动,最终只好又新增加了一些信号,并在一开始就把它们定义为可靠信号,这些信号支持排队,不会丢失。同时,信号的发送和安装也出现了新版本:信号发送函数sigqueue()及信号安装函数sigaction()。POSIX对可靠信号机制做了标准化。但是,POSIX只对可靠信号机制应具有的功能以及信号机制的对外接口做了标准化,对信号机制的实现没有作具体的规定。
  
  信号值位于SIGRTMIN和SIGRTMAX之间的信号都是可靠信号,可靠信号克服了信号可能丢失的问题。Linux在支持新版本的信号安装函数sigation()以及信号发送函数sigqueue()的同时,仍然支持早期的signal()信号安装函数,支持信号发送函数kill()。
  
  不要有这样的误解:由sigqueue()发送、sigaction安装的信号就是可靠的。事实上,可靠信号是指后来添加的新信号(信号值位于SIGRTMIN及SIGRTMAX之间);不可靠信号是信号值小于SIGRTMIN的信号。信号的可靠与不可靠只与信号值有关,与信号的发送及安装函数无关。目前Linux中的signal()是通过sigation()函数实现的,因此,即使通过signal()安装的信号,在信号处理函数的结尾也不必再调用一次信号安装函数。同时,由signal()安装的实时信号支持排队,同样不会丢失。
  
  对于目前Linux的两个信号安装函数:signal()及sigaction()来说,它们都不能把SIGRTMIN以前的信号变成可靠信号(都不支持排队,仍有可能丢失,仍然是不可靠信号),而且对SIGRTMIN以后的信号都支持排队。这两个函数的最大区别在于,经过sigaction安装的信号都能传递信息给信号处理函数(对所有信号这一点都成立),而经过signal安装的信号却不能向信号处理函数传递信息,对于信号发送函数来说也是一样的。

推荐内容
11选5胆拖怎么算中奖 幸运农场数字走势图 幸运农场数字走势图 重庆幸运农场骗局 幸运农场免费推荐
幸运飞艇助赢软件 重庆幸运农场每天开几期 重庆幸运农场开奖历史开奖 百度幸运农场走势图百度 福彩幸运农场奖金
重庆幸运农场软件下载 幸运农场2017061025 重庆幸运农场历史开奖 幸运农场昨天开奖结果 重庆福彩幸运农场走势
重庆幸运农场骗局 幸运农场动物 重庆幸运农场有没技巧 福利彩票幸运农场技巧 重庆幸运农场技巧规律
福建11选5走势图表 极速赛车2下载 上海时时乐开奖号码 广东快乐10分程序 778彩票网
福利彩票双色球开奖结果今天 时时彩走势图分析 体彩排列三走势图 好玩的赛车游戏 新疆时时彩彩经网
体彩排列5走势图 北京快三预测号 甘肃省新11选5 重庆时时彩走势图 极速时时彩最高返点
云南快乐10分前三开奖 黑龙江快乐十分开奖结果今天 北京快三一定牛推荐号 极速时时彩人工计划网 时时彩计划软件