操作系统信号介绍

信号介绍

什么是中断:
  • 当进程接收到消息后中止当前正在执行的任务,转而执行其它任务,等待其它任务执行完毕后再返回继续执行。这种执行模式称为中断,分为硬件中断和软件中断两种

什么是信号:
  • 信号是UNIX、类UNIX以及其他POSIX兼容的系统中,为了完成不同进程之间通讯的一种方式。是一种软中断,是一种异步处理机制,用于提醒进程某个事件发生了,可能要去处理。

  • 当一个信号发送给一个进程,操作系统就会中断该进程的正常控制流程,如果中断前预先设置过如何处理该信号(绑定过该信号的信号处理函数),那么中断后会执行该函数,执行完返回中断点继续执行,否则就按信号的默认处理方式进行

# 执行 kill -l 查看当前系统可以产生的所有信号
常见的信号:
SIGINT(2)  Ctrl+c       终止
SIGQUIT(3)  Ctrl+\      终止+core
SIGFPE(8)   除0          终止+core
SIGSEGV(11) 段错误      终止+core
SIGTSTP(20) Ctrl+z      暂停 
SIGCONT(18) fg          继续
不可靠信号与可靠信号
不可靠信号:
  • 建立在早期信号处理机制上的信号被称为不可靠信号(1-31)

  • 非实时信号,不支持排队机制,可能会丢失信号,同一个信号产生多次,进程可能只收到一次

  • 当进程收到这类信号,执行了第一次用户设置的信号处理函数后,会还原会默认的处理方式。

可靠信号:
  • 位于(34-64)的信号是可靠信号

  • 实时信号,支持排队机制,信号只要产生就必定会被处理,因此不会丢失

信号的来源:
  • 硬件异常:由硬件设备产生的信号,例如除零、非法访问内存、总线错误、未定义指令

  • 软件异常:命令kill\函数产生信号

信号处理的默认动作:
  • 忽略

  • 终止进程

  • 终止并产生core文件

  • 捕获并处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值