wa高,idle几乎为零,CPU不一定繁忙

参考资料https://mp.weixin.qq.com/s/sDYdw21lNwgRqz0WUfYQeA

当发生磁盘和内存间的数据传输前,CPU会给IO控制器发送指令,让IO控制器负责数据传输操作,数据传输完IO控制器再通知CPU。因此,从磁盘读取数据到内存的过程就不再需要CPU参与了,CPU可以空出来处理其他事情,大大提高了CPU利用率。这个IO控制器就是“DMA”,即直接内存访问,Direct Memory Access。现在的计算机基本都采用这种DMA模式进行数据传输。

 IO数据传输时,是不占用CPU的。当应用进程或线程发生IO等待时,CPU会及时释放相应的时间片资源并把时间片分配给其他进程或线程使用,从而使CPU资源得到充分利用。所以,假如CPU大部分消耗在IO等待(wa)上时,即便CPU空闲率(id)是0%,也并不意味着CPU资源完全耗尽了,如果有新的任务来了,CPU仍然有精力执行任务。

 

------------

Runnable状态除了包括Running状态,还包括Ready(就绪状态,等待CPU调度)和IO Wait(等待磁盘网卡等IO资源)等状态。

posted @ 2021-08-12 11:00  up~up  阅读(223)  评论(0编辑  收藏  举报