信号

cw0505 / 2023-04-28 / 原文

信号的底层原理是修改目标进程的task_struct的signal字段
在信号的产生到递送过程中(delivery),可能会存在一段未决(pending)时间
可以通过注册信号修改信号的递送行为。
mask和pending位图。
mask:产生某个信号时,是否阻塞之。
pending:未决信号集。在阻塞某个信号期间,产生了该信号,移入pending,当mask改变时,
某个信号解除阻塞,观察pending,若有该信号,就取出并递送。**需要特别注意的是**,在递送
x信号时,会在mask中临时加入x。