信号的基本概念

信号的基本概念

中断

  • 中断是系统对于异步事件的响应()
  • 主要构成部分

    • 中断源
    • 中断信号

    • 现场信息

    • 中断向量表
    • 中断处理程序

异步事件的响应:进程执行代码的过程中可以随时被打断,然后去执行异常处理程序

中断流程:中断源发出中断信号,CPU判断中断是否屏蔽屏蔽、保护现场 ,cpu根据异常/中断向量表,执行中断处理程序, cpu恢复现场,继续原来的任务。

  • 其他概念:
    • 中断向量表保存了中断处理程序的入口地址。
    • 中断个数固定,操作系统启动时初始化中断向量表。
    • 中断有优先级(有人敲门,有人打电话,有优先级)
    • 中断可以屏蔽(张三可以屏蔽电话)。
  • 中断分类
    • 硬件中断(外部中断)
      外部中断是指由外部设备通过硬件请求的方式产生的中断,也称为硬件中断
    • 软件中断(内部中断)
      内部中断是由CPU运行程序错误(取指异常)或执行内部程序调用引起的一种中断,也称为软件中断。
    • x86平台INT指令 ARM平台SWI指令–软中断指令

信号

  • 信号是UNIX系统为响应某些状况而产生的事件,进程在接收到信号时会采取相应的行动。–为了正常完成任务设置的信号
  • 信号是因为某些错误条件而产生的,比如内存段冲突、浮点处理器错误或者非法指令等–程序出错产生的信号
  • 信号是在软件层次上对中断的一种模拟,所以通常把它称为是软中断

信号VS中断

信号与中断的相似点:

(1)采用了相同的异步通信方式;
(2)当检测出有信号或中断请求时,都暂停正在执行的程序而转去执行相应的处理程序;
(3)都在处理完毕后返回到原来的断点;
(4)对信号或中断都可进行屏蔽。

信号与中断的区别:

(1)中断有优先级,而信号没有优先级,所有的信号都是平等的;
(2)信号处理程序是在用户态下运行的,而中断处理程序是在内核态下运行;
(3)中断响应是及时的,而信号响应通常都有较大的时间延迟

信号名称及常用信号

信号名称描述
SIGABRT进程停止运行 6
SIGALRM警告钟
SIGFPE算述运算例外
SIGHUP系统挂断
SIGILL非法指令
SIGINT终端中断 2
SIGKILL停止进程(此信号不能被忽略或捕获)
SIGPIPE向没有读者的管道写入数据
SIGSEGV无效内存段访问
SIGQUIT终端退出 3
SIGTERM终止
SIGUSR1用户定义信号1
SIGUSR2用户定义信号2
SIGCHLD子进程已经停止或退出
SIGCONT如果被停止则继续执行
SIGSTOP停止执行
SIGTSTP终端停止信号
SIGTOUT后台进程请求进行写操作
SIGTTIN后台进程请求进行读操作

* kill –l 可以查看linux内核支持的信号
* man 7 signal 查看信号的默认动作、信号的含义

进程对信号的三种相应

  • 忽略信号
    不采取任何操作、有两个信号不能被忽略:SIGKILL(9号信号)和SIGSTOP。

    思考1:为什么进程不能忽略SIGKILL、SIGSTOP信号。(如果应用程序可以忽略这2个信号,系统管理无法杀死、暂停进程,无法对系统进行管理。)。SIGKILL(9号信号)和SIGSTOP信号是不能被捕获的。

  • 捕获并处理信号
    内核中断正在执行的代码,转去执行先前注册过的处理程序。

  • 执行默认操作
    默认操作通常是终止进程,这取决于被发送的信号。
    信号的默认操作:通过 man 7 signal 进程查看

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值