I/O会一直占用CPU吗?
阻塞io情况下,比如磁盘io,accept ,read,recv,write等调用导致进程或者线程阻塞,这时候线程/进程 会占用cpu吗?比如连接mysql,执行一条需要执行很长的sql语句,recv调用的时候阻塞了,这个时候会不会大量占用cpu时间?磁盘io是什么操作,比如linux调用cp拷贝大文件的时候会大量占用cpu吗?
在进行I/O操作的时候,是将任务交给DMA来处理,请求发出后CPU就不管了,在DMA处理完后通过中断通知CPU处理完成了。I/O操作消耗的cpu时间很少。
本文探讨了I/O操作,如磁盘IO、accept和数据库操作中,阻塞I/O是否会导致CPU占用。解释了DMA在I/O处理中的作用,并指出非阻塞I/O下CPU使用率较低。重点讨论了MySQL长SQL查询和磁盘拷贝对CPU的影响。

1万+

被折叠的 条评论
为什么被折叠?



