资料介绍
一、PCB的信号集
之前我们知道每个进程都有一个对应的进程控制块(PCB)用于维护该进程,同样的,对于信号在PCB中会有两个队列去维护它,一个是未决信号集(PEND SIGNAL SET),一个是阻塞信号集(BLOCK SIGNAL SET),在两个信号集中每一位都对应一个信号。对于未决信号集,其中的初始值都是0,代表没有信号到达(注:用户不能设置未决信号集,但是可以读取该信号集中的值),而阻塞信号集是用户可以设置的,若设置为1,则表示阻塞该信号(即使有信号到达也不会处理该信号,直到用户取消阻塞)其过程描述如下:
(点击放大或下载查看)
那么如果在进程解除对某信号的阻塞之前这种信号产生过多次,将如何处理?POSIX.1允许系统递送该信号一次或多次。Linux是这样实现的:常规信号(前32个信号)在递达之前产生多次只计一次,而实时信号(后32个信号)在递达之前产生多次可以依次放在一个队列里。本章不讨论实时信号。从上图来看,每个信号只有一个bit的未决标志,非0即1,不记录该信号产生了多少次,阻塞标志也是这样表示的。因此,未决和阻塞标志可以用相同的数据类型sigset_t来存储,sigset_t称为信号集,这个类型可以表示每个信号的“有效”或“无效”状态,在阻塞信号集中“有效”和“无效”的含义是该信号是否被阻塞,而在未决信号集中“有效”和“无效”的含义是该信号是否处于未决状态。
阻塞信号集也叫做当前进程的信号屏蔽字(Signal Mask),这里的“屏蔽”应该理解为阻塞而不是忽略。
二、阻塞信号集的设定过程
一般的操作流程是先构造sigset_t信号集,通过以下函数操作信号集: sigset_t为信号集,可sizeof(sigset_t)察看其大小为128个字节
以下是对信号集的操作: int sigemptyset(sigset_t *set) 清空某个信号集(全置0) int sigfillset(sigset_t *set) 阻塞所有信号(全置1 ) int sigaddset(sigset_t *set, int signo) 将信号集的signo位值1,即阻塞该信号 int sigdelset(sigset_t *set, int signo) 将信号集的signo位值0,即不阻塞该信号 int sigismember(const sigset_t *set, int signo) 测试signo的信号位为1还是0然后使用以sigprocmask函数注册到系统的阻塞信号集中使其生效:
1、sigprocmask
调用函数sigprocmask可以读取或更改进程的信号屏蔽字。 #include int sigprocmask(int how, const sigset_t *set, sigset_t *oset);
返回值:若成功则为0
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 基于JJBoover的远程控制ARDUNO自平衡机器人资料下载 2次下载
- ABB可编程控制器技术资料 17次下载
- S7-1200可编程控制器资料手册 33次下载
- 可编程控制器原理及应用 21次下载
- 为了信号完整性,如何控制PCB的控制走线阻抗?资料下载
- 程控滤波器系统设计方案资料下载
- 工业过程控制中的DCS分散控制系统资料下载
- 关于进程与线程的解析PDF文件资料
- python运算与流程控制循环代码资料免费下载 0次下载
- MATLAB仿真命令集的资料合集免费下载 15次下载
- 过程控制仪表阶段性总结资料下载 1次下载
- Linux进程控制编程 0次下载
- 可编程控制器实验教程之功能块编程实验 0次下载
- 光电开关在橡胶压块机行程控制中的应用
- 远程控制任我行V8.9绿色版 0次下载
- PLC远程控制信号怎么输送 599次阅读
- 常用的远程控制软件介绍 1759次阅读
- 常用的远程控制方法总结 1870次阅读
- 过程控制和PLC教程 864次阅读
- 什么是程序块 1884次阅读
- 简化用于过程控制的模拟输入模块的设计 587次阅读
- 如何编写一个简单的电机控制函数块? 1562次阅读
- 如何使用nohup命令在后台运行进程 1677次阅读
- 可编程控制器的特点有哪些 8438次阅读
- 使用AT89C51实现的微型可编程控制器的讲解 2601次阅读
- 如何使用可编程控制器替代继电器 4836次阅读
- 过程控制中的PID控制技术 8072次阅读
- 可编程控制器基本知识_可编程控制器原理及应用 5.8w次阅读
- 智能微弱信号检测系统 2582次阅读
- 可程控核能谱信号放大器原理分析 2036次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多