Linux操作系统--信号

目录

1.信号产生

概念:

core vs Term

信号产生的5种条件

从软硬件理解信号的保存

软件,如何理解信号处理?

硬件中断

 2、信号捕捉

3、信号阻塞

信号其他相关常见概念


1.信号产生

概念:

什么是信号?信号一种用户、OS、其他进程,向目标进程发送导步事件的一种方式!

概念问题:

  1. 你怎么能识别信号呢?识别信号,是内置的。进程认识信号,是程序员内置的特性,也就是说默认的信好捕捉是提前写好的
  2. 信号产生之后,怎么处理你知道吗?知道。如果没有产生,你知道信号怎么处理吗?知道!信号的处理方法,在信号产生之前,已经准备好了。
  3. 处理信号?立即处理吗?我在做我的事情,优先级很高,信号处理,可能并不是立即处理。合适的时候??                                                                                                                     3.1 到来 <- 没有处理,进程记录下来对应的信号!,等到空闲 -> 处理
  4. 怎么处理信号呀?a. 默认行为 b. 忽略信号 c. 自定义动作

信号查询:在命令行中输入 

man 7 signal

就可以得到1-31个标准信号

core vs Term


正常的退出,不需要进行debug
核心转储
在当前目录下形成文件,pid.core
进程崩溃的时候,将进程在内存中的部分信息保存起来,方便后续调试!
云服务器一般是关闭core功能的!

ctrl + c  2号信号

ctrl + \  3号信号 默认是终止的

信号的默认处理方式是内置的,要修改也是可以的

捕捉信号的函数 : signal 信号捕捉和自定义 

void (*signal(int sig, void (*func)(int)))(int);

第二个参数  SIG_IGN忽略信号   ignore:忽略:本身就是一种信号捕捉的方法,动作是忽略

                    SIG_DFL  default:默认。

这俩本质上是宏

也可以传函数  void (*func)(int)))(int)是个函数指针

第一个参数是第几个信号

例如:

signal(SIGINT, SIG_DFL);

signal 只需要使用异常  如果没有产生信号的话,自己写的方法不会被调用

信号产生的5种条件

1.键盘

2.指今

3.系统调用

4.软件条件

5.异常

从软硬件理解信号的保存

软件,如何理解信号处理?

键盘产生 -> OS发送 ->进程  如何记录下来信号?

1-31个信号,熟不熟悉?

对的,位图

操作系统的PCB存在这样的结构:task struct -> uint32 t signalbits

0000 0000 0000 0000 0000 0000 0000 0000

比特位的位置:信号的编号

比特位的内容:是否为0/1,是否收到对应的信号

发送信号的本质是什么?写入信号!

OS修改目标进程的PCB中的信号位图,0->1

无论以什么方式发送信号,最终,都是转换到OS,让OS写入信号的。

因为task struct的唯一管理者是OS!!

系统调用发送信号  kill   raise(给自己发信号)  abort(给自己发6号信号)

键盘输入都是先发送硬件中断到cup,所以以后操作系统就不需要轮询等键盘了,而是cpu告诉OS什么时候有外设准备好了,内容由操作系统读取。

硬件,操作系统怎么知道键盘上的数据了?

硬件中断

 2、信号捕捉

用户态与内核态

 pending表和block表的检测在3~4之间,这样就可以在处理,自定义信号的时候再次接受新来的信号,也只能同时接受俩信号

3、信号阻塞

信号其他相关常见概念
 


- 实际执行信号的处理动作称为信号递送(Delivery)。
- 信号从产生到递送之间的状态,称为信号未决(Pending)。
- 进程可以选择阻塞(Block)某个信号。
- 阻塞特定信号,信号产生了,一定把信号要进行pending(保存),永远不递送,除非我们解除阻塞。
- 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递送的动作。
- 注意,阻塞和忽略是不同的,只要信号被阻塞就不会递送,而忽略是在递送之后可选的一种处理动作。
 

操作系统的PBC有3个表,我们可以用以下函数操控blocks表

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

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

相关文章

太空飞船任务,生成一个地球发射、火星着陆以及下一次发射窗口返回地球的动画3D代码

import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation from mpl_toolkits.mplot3d import Axes3D# 天体参数设置&#xff08;简化模型&#xff09; AU 1.5e8 # 天文单位&#xff08;公里&#xff09; earth_orbital_radius …

sql注入之python脚本进行时间盲注和布尔盲注

一、什么是时间盲注和布尔盲注&#xff1f; 答&#xff1a;时间盲注是攻击者通过构造恶意sql语句利用sleep()等延迟函数来观察数据库响应时间差异来进行推断信息和条件判断。如果条件为真&#xff0c;数据库会执行延时操作&#xff0c;如果为假则立即返回。响应时间较短。 SELE…

Python .py文件打包成.exe可执行程序,带托盘图标的可执行文件

Python .py文件打包成.exe可执行程序&#xff0c;带托盘图标的可执行文件 安装pyinstalle 查看是否安装了pyinstaller 已安装 C:\Users\Administrator>pip show pyinstaller Name: pyinstaller Version: 6.12.0 Summary: PyInstaller bundles a Python application and a…

可信数据空间 X 大模型,实践场景案例分享

近期&#xff0c;国家数据局发布《可信数据空间发展行动计划&#xff08;2024—2028年&#xff09;》&#xff0c;这是国家层面首次针对可信数据空间这一新型数据基础设施进行前瞻性的系统布局。可信数据空间&#xff0c;是一类全新的数据流通利用基础设施&#xff0c;同时也是…

Java-数据结构-(HashMap HashSet)

一、Tree和Hash的区别 在上一篇文章中&#xff0c;我们讲到了"TreeMap"和"TreeSet"&#xff0c;但当我们刷题的时候却会发现&#xff0c;实际应用Map和Set时&#xff0c;却常常都只会用"HashMap"和"HashSet"&#xff0c;这是为什么呢…

DeepSeek在linux下的安装部署与应用测试

结合上一篇文章&#xff0c;本篇文章主要讲述在Redhat linux环境下如何部署和使用DeepSeek大模型&#xff0c;主要包括ollama的安装配置、大模型的加载和应用测试。关于Open WebUI在docker的安装部署&#xff0c;Open WebUI官网也提供了完整的docker部署说明&#xff0c;大家可…

ShenNiusModularity项目源码学习(9:项目结构)

ShenNiusModularity源码主要有11个project&#xff08;其实还有officialweb、test两个文件夹&#xff0c;大致有4、5个project&#xff0c;但看着跟主要项目代码没太大关系&#xff0c;暂时不管&#xff09;&#xff0c;这11个project的依赖关系如下图所示&#xff0c;其中最下…

用deepseek学大模型08-cnn残差网络

残差网络 参考&#xff1a;https://blog.csdn.net/2301_80750681/article/details/142882802 以下是使用PyTorch实现的三层残差网络示例&#xff0c;包含三个残差块和完整的网络结构&#xff1a; import torch import torch.nn as nnclass BasicBlock(nn.Module):expansion…

【C++】36.C++IO流

文章目录 1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4. stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。pri…

#渗透测试#批量漏洞挖掘#Apache Log4j反序列化命令执行漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 Apache Log4j反序列化命令执行漏洞 一、…

JCRQ1河马算法+消融实验!HO-CNN-LSTM-Attention系列四模型多变量时序预测

JCRQ1河马算法消融实验&#xff01;HO-CNN-LSTM-Attention系列四模型多变量时序预测 目录 JCRQ1河马算法消融实验&#xff01;HO-CNN-LSTM-Attention系列四模型多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于HO-CNN-LSTM-Attention、CNN-LSTM-Attent…

[STM32 - 野火] - - - 固件库学习笔记 - - - 十五.设置FLASH的读写保护及解除

一、选项字节与读写保护 1.1 为什么要设置读写保护 防止内部FLASH中的程序被非法读取。 在实际发布的产品中&#xff0c;STM32芯片的内部FLASH存储了控制程序。然而&#xff0c;如果不对内部FLASH采取任何保护措施&#xff0c;用户可以使用下载器直接读取其内容&#xff0c;并…

【算法与数据结构】字典树(Trie)详解

目录 一&#xff0c;字典树的定义 二&#xff0c;字典树的代码实现 完整代码详细注释&#xff1a; 测试用例测试结果&#xff1a; 三&#xff0c;处理其他字符 四&#xff0c;内存优化与扩展 1. 内存优化 2. 扩展功能 五&#xff0c;扩展功能支持通配符匹配 六&…

MySQL 之存储引擎(MySQL Storage Engine)

MySQL 之存储引擎 常见存储引擎及其特点 ‌InnoDB‌&#xff1a; ‌特点‌&#xff1a;支持事务处理、行级锁定、外键约束&#xff0c;使用聚簇索引&#xff0c;适合高并发读写和事务处理的场景‌。‌适用场景‌&#xff1a;需要高可靠性、高并发读写和事务处理的场景‌。 ‌M…

CXL ALMP(ARB/MUX Link Management Packet)理解

前言&#xff1a; ALMP&#xff08;ARB/MUX Link Management Packet&#xff09; 是CXL协议中由ARB/MUX层生成和处理的专用管理报文&#xff0c;用于协调链路电源状态切换&#xff08;如L0s/L1&#xff09;和虚拟链路状态机&#xff08;vLSM&#xff09;同步。以下是其核心特性…

002 SpringCloudAlibaba整合 - Feign远程调用、Loadbalancer负载均衡

前文地址&#xff1a; 001 SpringCloudAlibaba整合 - Nacos注册配置中心、Sentinel流控、Zipkin链路追踪、Admin监控 文章目录 8.Feign远程调用、loadbalancer负载均衡整合1.OpenFeign整合1.引入依赖2.启动类添加EnableFeignClients注解3.yml配置4.日志配置5.远程调用测试6.服务…

计算机网络(3)TCP格式/连接

1、TCP三大特点&#xff1a;面向连接、可靠、基于字节流 2、如何唯一确定一个TCP连接&#xff1f;TCP四元组&#xff1a;源地址、源端口、目的地址、目的端口 源地址和目标地址的字段(32 位)是在 IP 头部中&#xff0c;作用是通过 IP 协议发送报文给对方主机源端口和目标端口…

vscode远程报错:Remote host key has changed,...

重装了Ubuntu系统之后&#xff0c;由20.04改为22.04&#xff0c;再用vscode远程&#xff0c;就出现了以上报错。 亲测有效的办法 gedit ~/.ssh/known_hosts 打开这个配置文件 删掉与之匹配的那一行&#xff0c;不知道删哪一行的话&#xff0c;就打开第一行这个 /.ssh/confi…

无符号整数和带符号整数的相互转换

无符号字符数x转换为带符号字符数时&#xff0c;当时&#xff0c;转换后仍然为x&#xff1b;当时&#xff0c;转换后变为。 带符号字符数y转换为无符号字符数时&#xff0c;当时&#xff0c;转换后变为&#xff1b;当时&#xff0c;转换后仍然为y。 无符号整数和带符号整数的…

浏览器报错:无法访问此网站 无法找到xxx.xxx.net的DNS地址。正在诊断该问题。尝试运行Windows网络诊断。DNS_PROBE_STARTED

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;希望我的文章能帮到您&#x1f7ea;如有兴趣可点关注了解更多内容 &#x1f4d8;博主信息 点击标题&#x1f446;有惊喜 &#x1f4c3;文章前言 &#x1f537;文章均为学习和工作中整理的笔记&#xff0c;分享记录…