【linux】Linux学习总结-信号机制

本文介绍了Linux信号机制的基本原理,包括信号如何用于进程间通信、信号的产生方式以及进程如何响应信号。文章还解释了信号在Linux系统中的实现细节,如信号的发送限制、信号的处理流程等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

信号机制是U N I X系统使用最早的进程间通信机制之一,主要用于向一个或多个进程发异步事件信号,L i n u x使用存贮在每个进程t a s k s t r u c t结构中的信息实现信号机制, 它支持的信号数受限于处理器的字长.并不是系统中的每个进程都可以向其他的进程发消息,只有内核和超级用户可以做到这一点。普通的进程只能向同一进程组或具有相同的u i d和g i d的进程发送信号。信号可以通过设置t a s k s t r u c t结构s i g n a l域中相应中的位来产生。如果一个进程没有阻塞信号,正处于可中断的等待信号状态中,当等待的信号出现时,系统可以通过把该进程的状态变成运行状态,然后放入候选运行队列中的方法来唤醒它.

信号产生后,并不立即提交给进程,它必须要等到进程再次被调度运行时。每当进程从系统调用中返回时,系统都会检查进程的s i g n a l域和b l o c k e d域,以确定是否出现某些未阻塞的信号。这看起来非常不可靠,但实际上系统的每个进程都在不断地做系统调用,如向终端写字符。进程可以选择挂起在可中断的状态上,等待某一个它希望的信号出现, L i n u x的信号处理程序为当前每个未阻塞的信号查找s i g a c t i o n结构。


系统内有一组可以由内核或其他的进程触发的预定义信号,并且这些信号都有相应的优先级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值