在网上搜关于不可中断状态( Uninterruptible Sleep )的博客都是“不可中断状态在等 IO”。 首先 io 有很多种,常见的有网络 io 和文件 io,首先网络 io 我理解分阻塞式和非阻塞式,阻塞式 io 在 io 没好的时候直接就变成 TASK_INTERRUPTIBLE (信号可中断的睡眠),非阻塞式 io 在 io 没好的时候直接就继续往下执行是 TASK_RUNNING ( 进程运行状态)。那网络 io 啥时候才会是“不可中断状态在等待 IO”?
而且文件 io 都不分阻塞不阻塞,而且我印象中 io 操作都是交给 dma 处理了,那到底啥时候文件 io 才会产生不可中断状态( Uninterruptible Sleep )?
我理解不可中断 io 应该时间很短啊,如果等磁盘 io 就是不可中断状态,那不是时间很长。