今日学习——信号signal
2026/4/26 1:02:21 网站建设 项目流程

1.信号处理的过程:

发送->内核挂起->递送(所有皆图片来源于:一口linux公众号,侵权可删)

2.用户态 到 内核态 的触发原理

我觉得主要分为软件触发,硬件触发,cpu异常。

软件触发,即用户代码执行系统调用。主动申请内核服务(eg,读文件,发网络包,申请内存),强制性触发的。

硬件触发,主要由于硬件中断(外设完成工作,发送中断请求) 。

cpu异常(eg,访问非法内存)。

3.信号是如何打断进程的。

基本流程(用自己话说)

用户态正常执行代码,当有满足 用户态转到内核态 的触发条件的时候(即上面的第二条),先保存现场,再转到内核态。

内核态处理事件(明天将详细展开,到底内核处理那些事件),如果有信号,就设置pending位为1。

退出内核态进入用户态前,先检查是否有pending(pending为内核通用标记,信号只是其中一种),如果是信号的pending,那么久返回用户态后,直接执行handle函数,执行完再切回内核扫尾(具体扫什么尾部),最后再恢复现场 。

4.signal和sigaction区别

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询