LINUX,UNIT特有的一种进程间通讯方式。一个进
程可以给自已或其它进程发信号,以便控制自已或其它进程的行为。
信号的产生:是由某些系统调用函数、键盘操作、硬件故障、系统异常产生。
信号的收集和存储:每个进程都有一个“信号数据结构”保存发给它的信号、处理方式描述、屏蔽码。“信号数据结构”是进程控制块(PCB,linux叫任务结构TS)的几个字段。
信号的处理:当进程执行完系统调用从系统态返回用户态前、或被调度时、或状态转换时,都可以查看自已的“信号数据结构”,确定有哪些信号需要处理,有的信号必需处理,有的信号可以屏蔽。具体的信号处理过程是对软中断的模拟。
信号的产生、存储、处理是异步的。
对于在80386下开发的LINUX0.11版本来说,支持32种信号(可以用一个32位无符号整数来描述),每个进程的“信号数据结构”保存在内核空间(GDT)。
相对于其他的进程间通信方式(IPC), 比如说pipe, shared memory)来说,信号所能传递的信息比较粗糙,只是一个整数。但正是由于传递的信息量少,信号也便于管理和使用。信号因此被经常地用于系统管理相关的 任务,比如通知进程终结、中止或者恢复等等。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ryyc.cn 版权所有 湘ICP备2023022495号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务