1.信号在内核中的三种表示
(1)信号递达:实际执行信号的处理动作;
(2)信号未决(pending):信号从产生到递达的状态,是一种记录状态;
(3)阻塞信号(block):被阻塞的信号不会递达,它在产生时处于未决状态,直到进程解除对这个信号的阻塞,才会执行递达,但不会立即递达;
阻塞与忽略的不同:忽略是在信号递达后的处理动作,而被阻塞的信号是不会递达的;
2.信号在内核中的表示示意图:
(1).每个PCB都包含三张表:block,pending,handler,block表和pending表的0(未递达),1表示是否收到信号,block表的0(未阻塞),1表示是否被阻塞;
(2).每个信号都有阻塞标志位block,末决标志位pending和一个处理动作handler;
(3).信号产生时,内核在PCB中设置末决标志位,当信号递达时才清除该标志位;
上述图中: