第五部分:6---信号的递达

news2024/12/23 22:12:09

目录

信号的递达流程:

信号在什么时候递达?

用户态和内核态:

内核态、用户态在页表的映射关系:

操作系统如何得知当前执行状态是用户态还是内核态?

操作系统如何处理被捕捉的信号?


信号的递达流程:

  • 信号被生成后加入未决信号集,等待处理。

  • 如果信号被阻塞,则暂时不能递达;如果没有被阻塞,则可以递达并处理。

  • 如果信号未被阻塞,先从未决信号集中移除信号,再依据可处理信号集的设定执行默认操作或调用自定义处理函数。

  • 如果信号被阻塞,解除阻塞后,该信号需要被“立即”递达。

信号在什么时候递达?

  • 进程在内核态返回到用户态时,进行信号的检测和处理。

用户态和内核态:

  • 用户态是一种受控的状态,所能够访问的资源有限。

  • 内核态是操作系统的工作状态,能够访问大部分的系统资源。

内核态、用户态在页表的映射关系:

  • 系统调用是在进程的地址空间内发起的,但用户态的进程只能访问用户态的虚拟地址空间(通常是0到3GB)。当通过系统调用从用户态切换到内核态时,进程会进入操作系统内核的上下文,从而可以访问更高的地址空间(通常是3GB到4GB的内核空间)。这个切换是通过硬件机制完成的,例如使用中断或陷入指令。

  • 在x86架构下,每个进程都有自己独立的页表,用户态代码只能访问页表的用户空间部分。当进程切换到内核态时,此时可以访问页表的内核空间的地址范围。每个进程的页表包含用户态和内核态的映射。

  • 代码的执行确实都发生在进程的地址空间内,但在用户态执行的是用户代码,系统调用切换到内核态时,执行的则是内核代码。虽然它们共享同一个进程地址空间,但所执行的代码属于不同的权限级别。

操作系统如何得知当前执行状态是用户态还是内核态?

  • 在x86架构中,cs寄存器包含当前执行代码所在段的权限级别,而这个权限级别可以用来区分用户态和内核态。在Linux系统中,Ring 0(00)是内核态,Ring 3(11)是用户态。

  • 用户进程不能直接修改cs寄存器。操作系统通过中断、陷入(trap)、或系统调用等机制从用户态切换到内核态。CPU会自动修改cs寄存器,从Ring 3切换到Ring 0。这种切换是硬件级别的。

  • 操作系统通过读取cs寄存器来得知当前执行代码时的状态。

操作系统如何处理被捕捉的信号?

  • 当进程捕捉到某个信号并定义了自定义的信号处理函数时,操作系统如果要递达这个信号。操作系统会切换到用户态来执行这个自定义的信号处理函数。执行完成后通过sigreturn返回到内核态,再由内核态返回到之前的执行点。

  • 这么做的原因是:信号处理函数是用户代码,为了防止用户有越权行为,操作系统不会直接在内核态处理用户的自定义函数。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python PyQt5 在frame中生成多个QLabel控件和彻底销毁QLabel控件

文章目录 步骤 1: 创建主窗口和布局步骤 2: 添加QLabel到QFrame步骤 3: 销毁QLabel示例代码 在PyQt5中,在QFrame或任何其他容器控件中生成多个QLabel控件并通过一个标志位或方法来彻底销毁这些QLabel控件是相对直接的操作。以下是一个简单的示例,展示了如…

爬虫小案例:爬取豆瓣网TOP250的电影信息(内含面相对象源码、及详细教学)

爬虫案例二———爬取豆瓣网TOP250的电影信息,并存入MySQL数据库 前提准备 安装pymysql库 pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple Python连接MySQL数据库,并进行增删改查基本操作 连接数据库 """连接MyS…

坚果N1 Air高亮版对比当贝D6X高亮版:谁是2000元预算的投影仪王者?

当贝D6X高亮版新品升级,对于那些计划在这个时间点购买投影仪的用户来说,现在是个绝佳的时机!特别是那些预算在两千元左右的,目前两千元左右的投影仪,无外乎两款产品,当贝D6X高亮版和坚果N1 Air高亮版&#…

David律所代理Beau Parsons的小狗插画图案版权维权,速排查下架

案件基本情况:起诉时间:2024-9-16案件号:2024-cv-08505原告:Beau Parsons原告律所:David起诉地:伊利诺伊州北部法院涉案商标/版权:原告品牌简介:Beau Parsons是一位来自澳大利亚的专…

AI情感陪伴新纪元:WT2605C语音芯片在成人用品中的创新应用

在探索成人用品领域的无限可能时,科技的每一次进步都为我们带来了前所未有的体验。而今,WT2605C AI语音芯片的引入,正悄然改变着这一传统行业的面貌,为成人用品赋予了全新的情感陪伴功能,开启了智能化、个性化的新时代…

鸿蒙开发(NEXT/API 12)【硬件(Pen Kit)】手写笔服务

Pen Kit(手写笔服务)是华为提供的一套手写套件,提供笔刷效果、笔迹编辑、报点预测、一笔成形和全局取色的功能。手写笔服务可以为产品带来优质手写体验,为您创造更多的手写应用场景。 目前Pen Kit提供了四种能力:手写…

Qt_网络编程

目录 1、Qt的UDP Socket 1.1 用Udp实现服务器 1.2 用Udp实现客户端 2、Qt的TCP Socket 2.1 用Tcp实现服务器 2.2 用Tcp实现客户端 3、Qt的HTTP 3.1使用Qt的HTTP 结语 前言: 网络协议是每个平台都必须遵守的,只是不同的平台所提供的网络API不…

[element-ui]记录对el-table表头样式的一些处理

1、表头换行 & 列表项换行 可用element-table组件自带的方法实现列标题换行的效果 2、小圆点样式

Codeforces Round 973 (Div. 2) A-C 题解

C 提交 MLE 了一次,原因是找到答案没加感叹号 A. Zhan’s Blender 题意 原题描述还是不太清楚 你有 n n n 个水果,每秒可以放入搅拌机 y y y 个水果,搅拌机每秒可以搅拌 x x x 个水果,问最终至少需要多少秒能搅完&#xff1…

Python的包管理工具pip安装

Python的包管理工具pip安装 一、安装步骤1.检查 pip是否已安装2.安装 pip方法一:通过 ​ensurepip​ 模块安装(推荐)方法二:通过 ​get-pip.py​ 脚本安装(经常应为网络域名问题连接不上) 3.验证pip安装4.创建别名5.更新pip 二、常…

Java网络通信—UDP

1.总揽 2.客户端 使用udp通信,需要三个东西:数据本体、通道、数据包装工具 Scanner scanner new Scanner(System.in);String string scanner.next();byte[] bytes string.getBytes();// 数据本体DatagramSocket datagramSocket new DatagramSocket(…

代码随想录冲冲冲 Day58 图论Part9

47. 参加科学大会(第六期模拟笔试) 根据昨天的dijkstra进行堆优化 使用的原因是点多但边少 所以直接对于边进行操作 1.对于priority_queue来说 这是最小堆, 小于的话就是最大堆 之后由于是根据边来说的 所以新建一个Edge并且初始化一下 之后由于使用…

动态规划入门题目->使用最小费用爬楼梯

1.题目: 2.解析: 做题模式: 步骤一:找状态转移方程 步骤二:初始化 步三:填表 步骤四:返回-> dp[n] dp[i]表示到达 i 位置最小花费 逻辑:要爬到楼顶先找到 i 位置 , 要…

深度学习:(八)深层神经网络参数与流程

深层神经网络 符号规定 L L L :表示神经网络的层数; l l l :表示第几层; n [ l ] n^{[~l~]} n[ l ] :表示第 l l l 层的节点数; a [ l ] a^{[~l~]} a[ l ] :表示第 l l l 层中的激活函数&…

【web安全】——sql注入

1.MySQL基础 1.1information_schema数据库详解 简介: 在mysql5版本以后,为了方便管理,默认定义了information_schema数据库,用来存储数据库元数据信息。schemata(数据库名)、tables(表名tableschema)、columns(列名或字段名)。…

360AI搜索上线慢思考模式:成为全球首个慢思考搜索引擎 大幅提升回答质量

近日,360 AI搜索上线“慢思考模式”,成为国内首个具备慢思考能力的AI产品、全球首个具备慢思考能力的搜索引擎。据悉,慢思考模式基于CoE 技术架构,在该模式下360AI搜索能够大幅提升回答质量,完成多数AI ChatBot无法完成…

技术成神之路:设计模式(十七)组合模式

介绍 组合模式(Composite Pattern)是一种结构型设计模式,它使你能够将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 1.定义 组合模式允许将叶子对象和组合对象(容器…

猫头虎带您解决:‘vue-cli-service’ 不是内部或外部命令

猫头虎带您解决:‘vue-cli-service’ 不是内部或外部命令 🚀 今天猫头虎收到一个粉丝的提问:“猫哥,我在用 Vue 项目的时候,运行命令 npm run serve 出现了错误提示,vue-cli-service 不是内部或外部命令&a…

玄机--蚁剑流量

木马的连接密码是多少 黑客执行的第一个命令是什么 id 黑客读取了哪个文件的内容,提交文件绝对路径 /etc/passwd 黑客上传了什么文件到服务器,提交文件名 黑客上传的文件内容是什么 黑客下载了哪个文件,提交文件绝对路径 蚁剑流量特征总结 …

参会通知!第三届计算、通信、感知与量子技术国际会议(CCPQT 2024)

参会通知!新增特别论坛:国自然基金经验分享 第三届计算、通信、感知与量子技术国际会议(CCPQT 2024)将于2024年10月25-27日在珠海召开,聚焦感知技术、绿色通信等,由北邮主办,宁波大学协办。会议…