![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信号
文章平均质量分 96
Dio夹心小面包
"放弃学习的我们是没有翅膀的雄鹰 不会理智的我们是根茎腐烂的大树"
博客用于复习整理
展开
-
『 Linux 』信号的捕捉及部分子问题
当一个进程在处理一个信号的时候会将对应的信号添加到其信号屏蔽字(阻塞信号集)中以避免信号方法重复调用;当父进程获取到子进程所发的信号时将该信号进行捕获,而后调用自定义动作对已经僵尸的子进程进行等待处理;实际上未决信号集的置零时机为执行信号处理前,即先将未决信号集对应位置置零再执行处理信号的函数;信号时由于上一个相同信号未被处理完成,处于未递达状态,相同的信号被阻塞,停留在未决信号集中;当一个信号在被进行处理时将会把正在处理的信号添加进信号屏蔽字以阻塞下一个相同的信号;原创 2024-07-26 17:45:38 · 638 阅读 · 0 评论 -
『 Linux 』用户态与内核态的转换机制及信号检测时机
本文详细讲解了操作系统中用户态与内核态的概念及其转换机制。通过以printf()函数为例,描述了用户态代码、库函数代码及内核代码的执行过程,重点解释了进程如何通过系统调用从用户态转换为内核态并返回。文章还深入探讨了进程地址空间的结构,包括用户空间和内核空间的划分以及页表的角色和CR3寄存器的作用。最后,文章对信号的处理机制进行了详尽分析,介绍了信号在用户态和内核态之间的处理时机和流程,并提供了多个图示以辅助理解。原创 2024-07-25 20:56:08 · 1079 阅读 · 0 评论 -
『 Linux 』信号的写入与保存
忽略表示已经收到了该信号且已经对信号进行了处理,信号已经递达,其中信号的处理方式为忽略,即不作任何处理;信号递达指已经到达并被处理的信号,当信号处理程序执行完毕后这些信号就会被认定是已抵达的;信号递达表示信号已经被处理,进程将继续其正常执行流程或者根据信号类型执行特定行为;阻塞表示已经收到了该信号但不对信号进行处理,使得信号在取消阻塞前都保持未决状态;被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞才执行递达动作;信号集被传进接口函数并对原有阻塞信号集进行操作时将会将原本的阻塞信号集写入。原创 2024-07-25 14:29:58 · 1206 阅读 · 2 评论 -
『 Linux 』信号概念与信号的产生 ( 万字 )
"信号"一词指用来传达信息或只是的各种形式的提示或标志;在生活中常见的信号例如红绿灯,交通标志,短信通知等在操作系统中,"信号"是一种用于异步通知进程发生特定事件的机制;信号允许操作系统或其他进程向目标进程发送通知以便他们能够相应某些时间或条件;原创 2024-07-22 22:32:29 · 1003 阅读 · 0 评论