背后的原理是什么?如果允许执行 I/O 的进程处理信号,会有什么不良后果?
最佳答案
既然我已经阅读了莫里斯·巴赫 (Maurice Bach) 的《The Design of the Unix Operating Systems》一书,那么让我自己来回答这个问题。
简而言之,让I/O不间断就是为了让I/O任务尽快完成,不受信号干扰。
我从书中得到的一些相关知识:
- “不间断”一词应指“不间断 sleep ”。当进程处于不可中断 sleep 状态时,它不能被信号唤醒,也不会处理信号。
- 进程在以下情况下处理信号:它正在内核模式下运行,即将返回用户模式。 b. sleep 可中断时即将进入和离开 sleep 状态。
- 当 sleep 进程被信号唤醒时会发生什么?它会处理信号,默认操作是退出进程。当进程等待 I/O 完成时,您当然不希望它过早退出。
关于linux - 为什么在 Linux 中做 I/O 是不间断的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46040913/