电子发烧友网 > 嵌入式技术 > 正文

Linux下的信号机制

2020年06月01日 09:11 次阅读

  信号是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。它可以在任何时候发给某一进程,而无须知道该进程的状态。如果该进程当前并未处于执行态,则该信号就由内核保存起来,直到该进程恢复执行再传递给它为止;如果一个信号被进程设置为阻塞,则该信号的传递被延迟,直到其阻塞被取消时才被传递给进程。

  信号是进程间通信机制中唯一的异步通信机制,可以看做是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过Posix实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息。

  信号事件的发生有两个来源:硬件来源(如我们按下了键盘上的按钮或者出现其他硬件故障);软件来源,常用发送信号的系统函数有kill()、raise()、alarm()、setiTImer()和sigqueue()等,软件来源还包括一些非法运算等操作。

  进程可以通过3种方式来响应一个信号。

  1.忽略信号

  忽略信号即对信号不做任何处理,其中,有两个信号不能忽略:SIGKILL和SIGSTOP。

  2.捕捉信号

  定义信号处理函数,当信号发生时,执行相应的处理函数。

  3.执行默认操作

  Linux对每种信号都规定了默认操作,如表1所示。

Linux下的信号机制

  一个完整的信号生命周期可以分为3个重要阶段,这3个阶段由4个重要事件来刻画的:信号产生、信号在进程中注册、信号在进程中注销、执行信号处理函数。这里信号的产生、注册、注销等是指信号的内部实现机制,而不是信号的函数实现。因此,信号注册与否与本节后面讲到的发送信号函数(如kill()等)及信号安装函数(如signal()等)无关,只与信号值有关。

  相邻两个事件的时间间隔构成信号生命周期的一个阶段。要注意这里的信号处理有多种方式,一般是由内核完成的,当然也可以由用户进程来完成,故在此没有明确指出。

  信号的处理包括信号的发送、捕获及信号的处理,它们有各自相对应的常见函数。

  ● 发送信号的函数:kill()、raise()。

  ● 捕捉信号的函数:alarm()、pause()。

  ● 处理信号的函数:signal()、sigacTIon()。

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

杨哥:linux云计算系列:大型网站高并发架构运维实战

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服
发烧友学院发表于 2017-12-13 00:00 25522次阅读
杨哥:linux云计算系列:大型网站高并发架构运维实战

Linux下进程的内存结构

Linux操作系统采用虚拟内存管理技术,使得每个进程都有各自互不干涉的进程地址空间。该地址空间是大小....
发表于 2020-06-01 09:17 0次阅读
Linux下进程的内存结构

Linux进程间通信方式——管道

管道是Linux中进程间通信的一种方式,它把一个程序的输出直接连接到另一个程序的输入。Linux的管....
发表于 2020-06-01 09:13 0次阅读
Linux进程间通信方式——管道

linux操作系统有哪些

linux系统,主要分debian系和redhat系,还有其它自由的发布版本。
发表于 2020-05-31 09:30 37次阅读
linux操作系统有哪些

linux虚拟机的联网方法

虚拟机安装linux系统无法上网的解决方法。
发表于 2020-05-31 09:27 22次阅读
linux虚拟机的联网方法

在Linux中如何创建文件

使用cat创建文件时,以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容。输入结束时....
发表于 2020-05-31 09:23 23次阅读
在Linux中如何创建文件

高薪诚聘Linux内核、驱动、虚拟化工程师

浪潮(北京)高薪诚聘Linux内核、驱动、虚拟化工程师...
发表于 2020-05-29 16:34 71次阅读
高薪诚聘Linux内核、驱动、虚拟化工程师

linux中sshd服务文件如何压缩打包

linux中sshd服务,文件的压缩打包,文件在虚拟机中的传输,以及时间的设定...
发表于 2020-05-29 16:34 61次阅读
linux中sshd服务文件如何压缩打包

Linux下的PPP连接如何调试

Linux下的PPP连接的调试
发表于 2020-05-29 15:47 46次阅读
Linux下的PPP连接如何调试

Linux内核符号有哪些

Linux内核符号表
发表于 2020-05-29 15:46 12次阅读
Linux内核符号有哪些

每天一个LInux命令

每天一个LInux命令(cp)
发表于 2020-05-29 14:47 10次阅读
每天一个LInux命令

linux的端口怎么关闭

怎么关闭linux的端口?下面本篇文章给大家介绍一下linux下查看端口是否打开、关闭/打开端口的方....
发表于 2020-05-29 09:27 41次阅读
linux的端口怎么关闭

学php要学linux的原因是什么

现在行业里使用Linux的公司非常多在使用PHP开发项目的过程中慢慢会越来越多接触Linux系统(因....
发表于 2020-05-29 09:25 29次阅读
学php要学linux的原因是什么

linux开发需要学习哪些知识

linux开发需要学什么?其实Linux开发包含的知识点挺多的。学会了这些东西之后,就可以做很多事情....
发表于 2020-05-29 09:23 56次阅读
linux开发需要学习哪些知识

Linux命令的grep

Linux命令之grep
发表于 2020-05-29 07:13 7次阅读
Linux命令的grep

Linux里面的搜索查找类指令有哪些

Linux里面的搜索查找类指令
发表于 2020-05-29 06:32 12次阅读
Linux里面的搜索查找类指令有哪些

Linux里面的压缩和解压类指令是什么

Linux里面的压缩和解压类指令
发表于 2020-05-28 17:40 41次阅读
Linux里面的压缩和解压类指令是什么

linux系统进程怎么查看与控制

linux系统进程的查看与控制
发表于 2020-05-28 11:02 15次阅读
linux系统进程怎么查看与控制

linux下怎么结束进程

定位进程可以使用top命令或者是ps命令
发表于 2020-05-28 09:04 48次阅读
linux下怎么结束进程

linux中命令无法使用怎么办

linux中命令无法使用是怎么回事?问题分析
发表于 2020-05-28 09:02 42次阅读
linux中命令无法使用怎么办

linux的ip命令是什么

ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如if....
发表于 2020-05-28 09:00 45次阅读
linux的ip命令是什么

飞凌小课堂-busybox软件怎样快速构建一个最小根文件系统

BusyBox是一个集成了三百多个最常用Linux命令和工具的软件。 BusyBox包含了一些简单的工具,例如ls、cat和ech...
发表于 2020-05-27 14:39 770次阅读
飞凌小课堂-busybox软件怎样快速构建一个最小根文件系统

linux无法连接外网怎么办

检查当前环境配置的IP信息
发表于 2020-05-27 09:40 53次阅读
linux无法连接外网怎么办

Linux的作用是什么

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任....
发表于 2020-05-27 09:37 66次阅读
Linux的作用是什么

linux系统更新的操作及操作原理

linux系统更新的简单操作及操作原理。
发表于 2020-05-27 09:34 36次阅读
linux系统更新的操作及操作原理

英飞凌推出全球首款完全自足式树莓派音频扩展板

英飞凌专有的多级技术,确保树莓派使用者及创客能够享有极小化的产品尺寸及耗电量,同时保有一流的电源效率....
发表于 2020-05-26 14:42 325次阅读
英飞凌推出全球首款完全自足式树莓派音频扩展板

linux下添加路由的方法

linux下添加路由的方法:
发表于 2020-05-26 09:44 61次阅读
linux下添加路由的方法

linux与android的区别是什么

linux与android有什么区别?有以下三点区别
发表于 2020-05-26 09:41 108次阅读
linux与android的区别是什么

linux下telnet不能使用怎么办

 linux下telnet不能使用怎么办?yum安装方式处理
发表于 2020-05-26 09:34 41次阅读
linux下telnet不能使用怎么办

数据中心导轨式智能小母线监控信号取电

数据中心智能小母线监控功能: 小母线系统是数据中心末端母线供配电系统的俗称,该系统主要应用于数据中心....
发表于 2020-05-25 15:45 37次阅读
数据中心导轨式智能小母线监控信号取电

linux的终端是什么

linux的终端就是控制台,是用户与内核交互的平台,通过输入指令来控制内核完成任务操作。外形是一个方....
发表于 2020-05-25 09:41 47次阅读
linux的终端是什么

linux系统硬盘修复

制作一个 USB LiveCD启动盘,用启动盘中的 Ubuntu系统启动,然后依次操作:
发表于 2020-05-25 09:40 42次阅读
linux系统硬盘修复

如何查看Linux中的ip地址

在排除网络问题,设置新连接或配置防火墙时,了解设备的 IP 地址非常重要。下面我们就来看看Linux....
发表于 2020-05-25 09:35 96次阅读
如何查看Linux中的ip地址

联通4G信号差,这样操作让信号增强数倍!

安装案例 Installation cases. 由于手机信号是靠电磁波的传播来建立通信联系的,如果....
发表于 2020-05-25 08:57 150次阅读
联通4G信号差,这样操作让信号增强数倍!

关于TDS2000C 示波器的优势特点你不知道的...

TDS2000C 示波器系列在紧凑的设计中为您提供实惠的性能。这种数字实时采样架构采用泰克专有技术,....
发表于 2020-05-24 10:22 20次阅读
关于TDS2000C 示波器的优势特点你不知道的...

linux操作系统好学吗_要学什么

linux操作系统的基础知识是比较好学的,但是需要我们通过大量地练习来牢记这些基础知识。
发表于 2020-05-23 09:33 111次阅读
linux操作系统好学吗_要学什么

Linux环境下常用的四种文件系统

Linux环境下几种常用的文件系统
发表于 2020-05-23 09:31 55次阅读
Linux环境下常用的四种文件系统

Linux中shell脚本执的4种方式

Linux中shell脚本的执行通常有4种方式,分别为工作目录执行,绝对路径执行,sh执行,shel....
发表于 2020-05-23 09:28 48次阅读
Linux中shell脚本执的4种方式

Linux的flash怎么安装

使用火狐看视频时,有些网站需要使用flash播放器,这时就需要在Linux上安装flash了,该如何....
发表于 2020-05-22 09:03 41次阅读
Linux的flash怎么安装

如何备份linux系统

我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Window....
发表于 2020-05-22 08:59 60次阅读
如何备份linux系统

linux的进程怎么查看

在Linux系统中,每个程序启动后可以创建一个或多个进程。例如,提供Web服务的httpd程序,当有....
发表于 2020-05-22 08:56 56次阅读
linux的进程怎么查看

linux无法解析域名怎么办

由于linux中没有DNS导致无法解析域名。
发表于 2020-05-21 09:23 55次阅读
linux无法解析域名怎么办

linux的文件怎么打开

 linux中怎么用命令打开文本文件的方法(利用Vim文本编辑器):
发表于 2020-05-21 09:21 48次阅读
linux的文件怎么打开

linux怎么查看网卡信息

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任....
发表于 2020-05-21 09:17 69次阅读
linux怎么查看网卡信息

PLC信号地址表的四种形式

地址表、信号地址表有四种(以FS-OM为例)。MT→PLC地址表。该表又称“输入信号地址表”。它由8....
发表于 2020-05-21 08:50 187次阅读
PLC信号地址表的四种形式

Linux用户空间与内核空间

应用程序运行在用户空间,而Linux 驱动属于内核的一部分,因此驱动运行于内核空间。当我们在用户空间....
发表于 2020-05-20 10:58 49次阅读
Linux用户空间与内核空间

嵌入式入门指导

C语言:嵌入式编程大多用C语言、少量汇编,先学习C语言,汇编用到的时候再上网查询。教材:随便一本C语....
发表于 2020-05-20 10:15 44次阅读
嵌入式入门指导

Linux总结出来的11个炫酷的Linux终端命...

如果你还不知道这个命令,我觉得你应该好好感谢我,因为如果你不知道的话,那每次你在输入长串命令后看到“....
发表于 2020-05-20 09:28 246次阅读
Linux总结出来的11个炫酷的Linux终端命...

Linux内核架构--基本概念

首先,Linux整体的架构如图: 再来看Linux内核架构, 内核由五个主要子系统组成: Proce....
发表于 2020-05-20 09:28 30次阅读
Linux内核架构--基本概念

如何双启动64位iOS设备

现如今,在已经有了合适的 Linux 内核可以启动的条件下,相信我们很快就可以在 iOS 设备中看到....
发表于 2020-05-20 09:24 316次阅读
如何双启动64位iOS设备

Linux有哪几种分区

Linux的分区有三种:主分区,扩展分区和逻辑分区。
发表于 2020-05-20 09:17 63次阅读
Linux有哪几种分区

研究一下linux内存管理

即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道....
发表于 2020-05-20 09:17 879次阅读
研究一下linux内存管理

学习Linux需要学些什么

Linux学习阶段,可以分为四个阶段,linux初级入门-linux中级进阶-linux高级提升,和....
发表于 2020-05-20 09:15 71次阅读
学习Linux需要学些什么

Linux服务的内容如何查看

 ps是进程查看命令,netstat是端口查看命令,在Linux系统中,服务一定是有进程的,所以使用....
发表于 2020-05-20 09:09 34次阅读
Linux服务的内容如何查看

linux挂载u盘的方法

linux挂载U盘具体步骤如下:
发表于 2020-05-19 09:14 45次阅读
linux挂载u盘的方法

如何查看Linux系统版本信息

这里所谓的Linux版本信息,包括Linux内核版本信息和Linux系统版本信息。
发表于 2020-05-19 09:11 37次阅读
如何查看Linux系统版本信息

linux无法识别U盘怎么办

linux无法识别U盘怎么办?
发表于 2020-05-19 09:08 75次阅读
linux无法识别U盘怎么办

XR-21A、XR-22AWiFi系列模组基于L...

XR-21A、XR-22A WiFi模组深受到各位嵌入式开发爱好者的喜爱,本文主要介绍 XR-21A....
发表于 2020-05-18 14:40 81次阅读
XR-21A、XR-22AWiFi系列模组基于L...

打开linux文件的三种方法

打开终端。点击菜单,然后找到终端程序。程序的图标是一个黑色的方框,上面有一个白色的“》_”。点击它。....
发表于 2020-05-18 09:21 60次阅读
打开linux文件的三种方法

如何启动linux的Workerman

注意Workerman启动停止等命令都是在命令行中完成的。要启动Workerman,首先需要有一个启....
发表于 2020-05-18 09:17 70次阅读
如何启动linux的Workerman

Linux开放端口和关闭端口的方法

Linux开放端口和关闭端口的方法如下
发表于 2020-05-18 09:14 52次阅读
Linux开放端口和关闭端口的方法

如何查看linux端口

有时我们需要知道系统中某个端口的占用情况,以便于解除程序对端口的占用,那么怎么查看Linux系统中的....
发表于 2020-05-17 09:45 50次阅读
如何查看linux端口

linux的程序如何运行

 运行linux程序有三种方法
发表于 2020-05-17 09:40 72次阅读
linux的程序如何运行

linux如何下载应用

linux怎么下载应用?打开系统,可以看到桌面如下图,找到软件中心,打开软件中心
发表于 2020-05-17 09:33 55次阅读
linux如何下载应用

linux怎么添加新用户

我们知道linux是多用户操作系统。默认root用户是管理权限很多很大的,如果我们想让他人使用部分权....
发表于 2020-05-15 09:17 65次阅读
linux怎么添加新用户

Linux主机是什么

Linux主机是基于Linux内核的服务器操作系统配置的主机(常见Linux服务器操作系统如:Red....
发表于 2020-05-15 09:16 79次阅读
Linux主机是什么

linux怎么安装tools

为了方便我们从windows复制粘贴到linux方便,我们首先来安装vmtools工具。
发表于 2020-05-15 09:11 65次阅读
linux怎么安装tools

linux与centos的区别与联系

 一般来说,我们平时说Linux指的是Linux系统内核,而centos是Linux发行套件系统。
发表于 2020-05-15 09:09 65次阅读
linux与centos的区别与联系