信号的概念

信号在我们的生活随处可见,如:古代战争中摔杯为号;代战争中的信号弹;体育比赛中使用的信号枪,它们都有共性:1. 简单 2. 不能携带大量的信息 3. 满足某个特定条件才发送

信号是信息的载体,Linux/UNIX环境下,古老、经典的通信方式,现在依然是主要的通信手段。

UNIX早期版本就提供了信号机制,但不可靠,信号可能丢失,Bakeley和AT&T都对信号模型做了更改,增加了可靠信号机制。但彼此不兼容。POSIX.1对可靠信号例程进行了标准化。

信号的机制

A给B发送了信号,B收到信号之前执行自己的代码,收到信号后,不管执行到程序的什么位置,都要暂停运行,去处理信号,处理完毕再继续执行,与硬件中断类似——异步模式,但信号是软件层面上实现的中断,早期常被称“软中断”。

信号的特征:由于信号是通过软件方法是是实现,其实现手段导致信号有很强的延时性。但对于用户来说,这个延迟时间非常短,不易察觉。

注意:每个进程收到的所有信号,都是由于内核负责发送的,内核处理。

与信号相关的事件与状态

产生信号:

  • 按键产生:如Ctrl + c、Ctrl + z, Ctrl + \
  • 系统调用产生:如kill、raise、alarm
  • 硬件异常产生:如非法访问内存(段错误)、除0(浮点数除外)、内存对齐错误(总线错误)

递达:递送并且到达进程

未决:产生和递达之间的状态。主要由于阻塞(屏蔽)导致该状态。

信号的处理方式:

  • 执行默认动作:默认操作统通常是终止进程,这取决于被发送的信号
  • 忽略(丢弃):不采取任何操作、有两个信号不能忽略:SIGKILL和SIGSTOP
  • 捕捉(调用用户处理函数):内核中断正在执行的代码,转去执行先前注册过的处理程序

linux内核的进程控制块PCB是一个结构体,task_struct,除了包含进程ID、状态、工作目录、用户ID、组ID、文件描述符、还包含了信号相关的信息,主要指阻塞信号集和未决信号集。

阻塞信号集:将某些信号加入集和,对它们设置屏蔽屏蔽,当屏蔽x信号后,在收到该信号,该信号的处理退后(解除屏蔽后)

未决信号集

  • 信号产生,未决信号集中描述该信号的位立即翻转为1, 表信号处于未决转态。当信号被处理翻转回为0,这一时刻往往非常短暂。
  • 信号的产生后由于默写原因(主要指阻塞)不能抵达,这类信号的集合称之为未决信号集。在屏蔽解除前,信号一直处于未决状态。

信号 09 | 信号概念相关推荐

  1. Linux 进程信号:信号的概念、生命周期、产生流程、阻塞

    信号的概念 信号的生命周期 信号的阻塞 信号的概念 信号 信号是一个软中断.操作系统通过信号通知某个进程发生了某件事件,然后中断这个进程当前操作,让它优先去处理这个事件. 我们在linux下常用的ki ...

  2. 【信号与系统】(一 )信号与系统概述——信号的基本概念与分类

    文章目录 第一章 信号与系统概述 1.1 信号的基本概念与分类 1.1.1 消息.信息.信号 1.1.2 信号的描述 1.1.3 信号的分类 1.1.3.1 确定信号和随机信号 1.1.3.2 连续信 ...

  3. 最新QT从入门到实战完整版(08.qt中的坐标系-09 信号和槽-点击按钮关闭窗口_)

    最新QT从入门到实战完整版(08.qt中的坐标系-09 信号和槽-点击按钮关闭窗口_) 一.08.qt中的坐标系 二,09 信号和槽-点击按钮关闭窗口_ 来自 一.08.qt中的坐标系 二,09 信号 ...

  4. 信号系统 | 信号的概念与常用信号

    信号的本质是函数,因此信号处理方法具有普适性,应用领域非常广泛.本篇介绍信号的基本概念以及一些典型的信号,主要参考奥本海姆的经典教材<信号与系统>,微信搜索公众号PurePlay,后台回复 ...

  5. linux中的信号是什么意思,linux中信号的基本概念

    1.信号的基本概念: 信号全称为软中断信号,也有人称作软中断,信号机制是进程之间相互传递消息的一种方法. 2.信号的作用: 进程之间可以互相通过系统调用kill发送软中断信号,通知进程发生了某个事件. ...

  6. QT中信号槽的概念及使用

    文章目录 信号槽的概念 函数原型 信号槽连接的三种方式 方式一 方式二 方式三 参数传递 全局参数 信号槽传参 信号槽的对应关系 总结 信号槽的概念 信号函数与槽函数是 Qt 在 C++ 的基础上新增 ...

  7. 信号采样基本概念 —— 5. 加权移动平均滤波(Weighted Moving Average Filtering)

    在上一章,我们介绍了使用滑动窗口以及平均值denoising,那么既然可以使用平均值denoising,那么也必然可以用权重替代均值进行denoising. 文章目录 什么是加权移动平均滤波(Weig ...

  8. 概念篇——信号与信号集

    说明:   本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉.   QQ 群 号:513683159 [相 ...

  9. 信号的基本概念以及信号的产生

    一. 信号产生的场景      1. 用户输入命令, 在shell 启动一个前台进程      2. 当用户按一下 Ctrl + C 的时候,从键盘产生一个硬件中断      3. 此时CPU 正在执 ...

最新文章

  1. angularjs 让当前路由重新加载_Vuerouter(路由)
  2. R语言效用分析 ( 效能分析、Power analysis)、除了pwr包之外还有其它包、例如、基因研究中的效能分析、MBESS包可用于各种形式的效能分析和最少样本量确定、其他效用分析包的简要介绍
  3. 数字图像处理:第六章 几何运算
  4. 计算机科学软件工程专业大学排名,2020软件工程专业大学排名及录取分数汇总(2021理科生参考)...
  5. spark rdd reduceByKey示例
  6. 从2D到3D 开发者讲述“街霸V”的美术秘笈
  7. nodejs随记04
  8. seo技巧-2015/10/05
  9. 将文件转为stream流_NIO之文件IO
  10. 联通培训 老师教的 bootstrap row 里面都是12行不断的分割成小格子
  11. linux脚本编程(shell)浅介 (转载)
  12. 笔记:Zygote和SystemServer进程启动过程
  13. 计算机一级实训报告册,计算机一级实验报告8.doc
  14. 网站备案负责人_三分钟教你如何做好网站备案
  15. Linux rescue救援(光盘修复)模式详解
  16. MySQL索引入门 普通索引 唯一索引
  17. python制作卡通表情包_python——简单生成表情包
  18. 用scratch编写游戏-数字华容道(不移动块法)
  19. TCP/IP协议之struct sock结构体
  20. uint64_t {aka long unsigned int}

热门文章

  1. Android Ant 和 Gradle 打包流程和效率对照
  2. Linq Group By 注意点
  3. WebHelper类
  4. 几种流行的JS框架的选择
  5. php mysql 正则_MySQL 正则表达式
  6. java单击切换div_[Java教程]点击同一按钮实现div的隐藏与现实切换
  7. mvc4 html.beginform,MVC4 Html.BeginForm在Internet Explorer中提交按钮 9不工
  8. mysql 5.6.23免安装_mysql5.6.23免安装配置
  9. html回复评论_3天内看了3000多篇《哈佛商业评论》,挑出来最有用的分享下
  10. 2018华工计算机应用基础作业,计算机应用基础平时作业2019