我有两个问题:
1) 内核空间进程 :当进程在内核模式下执行时,它不会收到任何信号。
相反,当一个进程希望完成任何事件时,它将把自己置于一个wait-queue
。 比如完成一个I/O event
。 这个过程在这个阶段没有做任何事情。 一旦事件被触发,( 内核设置一个trap
?如果错误是正确的 ),最后这个进程被唤醒并恢复执行。
以上是预期事件或(同步)的情况。 但是我想了解,在内核模式下执行的进程是如何知道asynchronous事件的发生的?
2) 用户空间进程 :内核是否总是设置一个trap
来隐藏在用户空间中执行的进程,以使得信号已经接收到? (一旦pending-signals-mask
设置?)
请回答这个问题关于在Linux中的实现(或它的味道)。