背后的理由是什么?如果允许执行I/O的进程处理信号,那么会产生什么不良后果?

最佳答案

既然我读过莫里斯·巴赫的《Unix操作系统的设计》一书,让我自己来回答这个问题。
简言之,使I/O不间断是为了使I/O任务尽快完成,而不受信号干扰。
我从书中获得的一些相关知识:
“不间断”一词应指“不间断睡眠”。当进程处于不间断睡眠状态时,它不能被信号唤醒,也不能处理信号。
进程在以下情况下处理信号:a.它正在内核模式下运行,并即将返回用户模式。当睡眠可中断时,它即将进入和离开睡眠状态。
当睡眠过程被信号唤醒时会发生什么?它将处理信号,默认动作退出进程。当一个进程等待I/O完成时,您当然不希望它过早退出。

关于linux - 为什么在Linux中进行I/O不间断?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46040913/

10-11 17:43