西安集团网站建设,姓氏变logo设计免费生成,网站三大标签设置,网站建设行业企业发展前景信号的概念
信号在我们的生活随处可见#xff0c;如#xff1a;古代战争中摔杯为号#xff1b;代战争中的信号弹#xff1b;体育比赛中使用的信号枪#xff0c;它们都有共性#xff1a;1. 简单 2. 不能携带大量的信息 3. 满足某个特定条件才发送
信号是信息的载体…信号的概念
信号在我们的生活随处可见如古代战争中摔杯为号代战争中的信号弹体育比赛中使用的信号枪它们都有共性1. 简单 2. 不能携带大量的信息 3. 满足某个特定条件才发送
信号是信息的载体Linux/UNIX环境下古老、经典的通信方式现在依然是主要的通信手段。
UNIX早期版本就提供了信号机制但不可靠信号可能丢失Bakeley和ATT都对信号模型做了更改增加了可靠信号机制。但彼此不兼容。POSIX.1对可靠信号例程进行了标准化。 信号的机制
A给B发送了信号B收到信号之前执行自己的代码收到信号后不管执行到程序的什么位置都要暂停运行去处理信号处理完毕再继续执行与硬件中断类似——异步模式但信号是软件层面上实现的中断早期常被称“软中断”。
信号的特征由于信号是通过软件方法是是实现其实现手段导致信号有很强的延时性。但对于用户来说这个延迟时间非常短不易察觉。
注意每个进程收到的所有信号都是由于内核负责发送的内核处理。 与信号相关的事件与状态
产生信号
按键产生如Ctrl c、Ctrl z, Ctrl \系统调用产生如kill、raise、alarm硬件异常产生如非法访问内存(段错误、除0(浮点数除外)、内存对齐错误(总线错误)
递达递送并且到达进程
未决产生和递达之间的状态。主要由于阻塞(屏蔽)导致该状态。
信号的处理方式
执行默认动作默认操作统通常是终止进程这取决于被发送的信号忽略(丢弃)不采取任何操作、有两个信号不能忽略SIGKILL和SIGSTOP捕捉(调用用户处理函数)内核中断正在执行的代码转去执行先前注册过的处理程序
linux内核的进程控制块PCB是一个结构体task_struct除了包含进程ID、状态、工作目录、用户ID、组ID、文件描述符、还包含了信号相关的信息主要指阻塞信号集和未决信号集。
阻塞信号集将某些信号加入集和对它们设置屏蔽屏蔽当屏蔽x信号后在收到该信号该信号的处理退后(解除屏蔽后)
未决信号集
信号产生未决信号集中描述该信号的位立即翻转为1 表信号处于未决转态。当信号被处理翻转回为0这一时刻往往非常短暂。信号的产生后由于默写原因(主要指阻塞)不能抵达这类信号的集合称之为未决信号集。在屏蔽解除前信号一直处于未决状态。