Linux 信号(signal):信号的捕捉流程

news/2024/4/19 19:55:48/文章来源:https://blog.csdn.net/weixin_57761086/article/details/128781978

目录

  • 一、程序的运行状态
  • 二、信号捕捉流程

  在处理信号的时候,其实要经过一系列流程的,本文就来简单介绍一下信号处理的捕捉流程。

一、程序的运行状态

  程序运行状态分为内核态和用户态。程序在运行库函数、用户自定义函数等第三方函数时就会在用户态运行;而程序在运行系统调用接口时是在内核态运行

  因为库函数和自定义函数等都不是系统自己提供的接口,不允许直接访问内核。但系统调用接口是系统提供的,用于访问内核的接口。

运行空间

二、信号捕捉流程

 (1)main函数是一个程序的开始,此时程序运行在用户态,当遇到以下几种情况程序就会从用户态切换到内核态运行:

  • 调用系统调用接口
  • 异常
  • 中断

 (2)运行到内核态之后,系统会针对这些情况进行处理,处理之后,在返回用户态之前系统会进行一个操作:do_signal()。(这个接口就是用来查看现在有没有待处理的信号

 (3)如果查询到了现在有信号待处理,那么就根据信号的处理方式进行处理:

  • 默认处理方式 or 忽略处理方式: 在内核态中对信号进行处理(因为默认的处理方式是系统提供的)
  • 用户自定义的处理方式: 需要切换到用户态去处理自定义的函数

 (4)如果在用户态运行完毕自定义处理函数,那么系统还会再调用一个接口:sigreturn()。(从用户态返回内核态)之所以还要返回内核态是因为系统要再看一下还有没有信号要处理。

 (5)然后在从内核态返回到用户态之前,会再次调用:do_signal()。再次查看有没有信号待处理,如此循环往复,直到某一次发现没有信号待处理了,才会彻底返回用户态,继续接下来的程序运行。

 (6)也就是说,信号的处理其实是在程序运行从内核态切换到用户态之前进行处理的,并且是把当前所有没有处理的信号全都处理完,才会彻底返回用户态进行程序的下一步运行。

上述步骤结合图片食用,效果更佳:

信号捕捉流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_274546.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode for C/C++ 插件

VSCode for C/C 插件功能性插件C/C【千万级下载!】必选C/C Extension Pack【千万级下载!】扩展包Code Runner【千万级下载!必备】右键代码运行,格式化在终端的显示CMake、 CMake Integration、CMake Language Support、CMake Tool…

达梦数据库普通表转分区表

在生产环境中,数据库中一开始用的是普通表,但随着时间推移,数据量越来越大,可以考虑将普通表转换为分区表,提升数据库的性能。本文将介绍在DM8数据库中,实现将普通表转换为分区表的方法。环境说明数据库版本…

SpringBoot基础教程

springboot基础 一、springboot介绍 Spring Boot 提供一种快速使用spring的方式,基于约定大于配置的思想,可以让开发者不必在配置与逻辑业务中来回进行思维切换,全身心的投入到业务的代码编写中,从而大大提高了开发效率。2014年…

TypeScript的枚举与类型约束

● 上一章我们讲了 TS 的接口 ● 这一章, 我们就来聊一聊 TS 的枚举和约束 枚举 认识枚举 ● 在很多计算机语言中都有枚举的概念, 但是 JS 中是没有枚举这个概念的, 为了弥补这个缺憾 在 TS 加入了枚举类型 ● 什么是枚举呢 ? 枚举( mei ju ) : 枚举的意思就是一一列举,…

PyTorch 深度学习实战 | 基于 ResNet 的花卉图片分类

“工欲善其事,必先利其器”。如果直接使用 Python 完成模型的构建、导出等工作,势必会耗费相当多的时间,而且大部分工作都是深度学习中共同拥有的部分,即重复工作。所以本案例为了快速实现效果,就直接使用将这些共有部…

【C++初阶】六、模板初阶(函数模板+类模板)

文章目录泛型编程函数模板函数模板的概念函数模板的格式函数模板的原理函数模板的实例化模板参数的匹配原则类模板类模板的定义格式类模板的实例化泛型编程 引入 - 通用的交换函数 如果让你编写一个函数,用于两个数的交换。在C语言中,我们会用如下方法…

我让Chat GPT准备了几份SAP 顾问英文面试自我介绍的模板,大家感受一下

有个朋友说有个面试要用英文来做自我介绍,我灵机一动,不如让Chat GPT准备了几份SAP 顾问英文面试自我介绍的模板,大家感受一下。我看下来感觉写的还是中规中矩,可以一用,。 模板1 Sure, I can help you with that! Her…

【Java学习笔记】39.Java 多线程编程

Java 多线程编程 Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 这里定义和…

navigator 拓宽前端视野

前言💐 写本文的起因是最近做了一个共享屏幕在线演示ppt的需求,发现了navigator的新大陆。原来web端开启屏幕共享是如此的简单,在接触之前还以为是多么高大上的功能,需求评审时内心还有些慌张。 人总是对自己不了解的东西心生恐惧&#x1f6…

VMware虚拟机卸载详细教程

安装过VMware虚拟机的小伙伴,90%可能都会遇到这样的问题:安装容易,卸载难。而且卸载不干净,就会导致后续安装和使用出现各种Bug。今天就给大家详细说说如何彻底干净的从本机卸载VMware。 1. 卸载之前,需要先关闭VMware…

【ChatGPT】Notion AI 从注册到体验:如何免费使用

欢迎关注【youcans的GPT学习笔记】原创作品,火热更新中 【ChatGPT】Notion AI 从注册到体验1. Notion AI 介绍1.1 Notion AI 简介1.2 Notion AI 的核心能力1.3 Notion AI 与 ChatGPT 的比较2. Notion AI 国内用户注册2.1 PC 端用户注册2.2 移动端用户注册3. Notion …

如何用C语言实现渣男通讯录

注意:纯属玩笑,博大家一乐,切勿当真📖首先我们要知道一个渣男通讯录有哪些信息要包含哪些功能1.你的通讯录要装多少个女朋友你得规定吧;2.每个女朋友的姓名,年龄,电话,爱好这些要有吧…

springboot项目中外卖用户下单业务功能之需求分析+数据模型+功能开发(详细步骤)

一、需求分析 移动端用户将菜品或者套餐加入到购物车后,可以点击购物车种的 去结算 按钮,页面跳转到订单确认页面,点击 去支付 按钮则完成下单操作。 二、数据模型 用户下单业务对应的数据表为orders表和order_detail表: order…

ESP32-CAM 环境搭建(离线)

云盘:Arduino IDE链接:https://pan.baidu.com/s/1yk_tKH8eK8okp5z9qv1TLg 提取码:pz2h内含:IDE arduino-ide_nightly-20230322_Windows_64bit.zipSDK esp32_package_2.0.5_arduinocn.exe步骤1,IDE为绿色版,…

57、C语言程序设计谭浩强第五章习题

1、输入两个正整数m和n,求其最大公约数和最小公倍数 辗转相除法&#xff1a; #include <stdio.h>int main(){int m,n,temp;scanf("%d %d",&m,&n);if(m<n){tempm;mn;ntemp;}int dn*m;int r;while(rm%n){mn;nr;}printf("最大公因数为:%d&#…

ONES 入选北大光华 MBA 整合实践项目,推动校企合作

近日&#xff0c;ONES 旗下开源问答社区软件 Answer 入选北京大学光华管理学院 MBA 整合实践项目&#xff0c;并受邀出席项目启动会。同时入选的还有国电投清洁能源基金、京东零售、瑞尔集团、美国丹纳赫集团、大众汽车&#xff08;中国&#xff09;和贝壳找房六家国内外知名企…

队列----数据结构

队列&#x1f506;队列的概念&#x1f506;队列的结构&#x1f506;队列的实现&#x1f506;设计循环队列&#x1f506;循环队列的结构&#x1f506;循环队列的实现&#x1f506;结语&#x1f506;队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端…

5G、工业4.0、车载以太网……TSN时间敏感网络能给我们带来哪些市场机会?

TSN是一项面向未来的新兴技术&#xff0c;它定义了以太网数据传输的时间敏感机制&#xff0c;为标准以太网增加了确定性和可靠性&#xff0c;以确保数据实时、确定和可靠地传输。这些扩展使得以太网能够应用于更加广泛的行业中&#xff0c;进而带来了更多新的市场机会。 1. 5G…

电力行业等保定级评级依据是什么?分为几个等级?

最近看到不少电力行业小伙伴在问&#xff0c;电力行业等保定级评级依据是什么&#xff1f;分为几个等级&#xff1f;今天我们小编就来给大家简单回答一下&#xff0c;仅供参考哦&#xff01; 电力行业等保定级评级依据是什么&#xff1f;分为几个等级&#xff1f; 【回答】&a…

【2023.3.18 美团校招】

文章目录1. 小美剪彩带2. 最多修改两个字符&#xff0c;生成字典序最小的回文串1. 小美剪彩带 题意&#xff1a;找出区间内不超过k种数字子数组的最大长度 使用双指针的方式&#xff0c;用哈希表来统计每个数出现次数。在双指针移动的过程中&#xff0c;动态的维护区间内不同数…