![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核和应用程序的交互
这瓜保熟么
平常心
展开
-
select、poll、epoll的原理与区别
1、select同步多路IO复用时间复杂度:O(n)fd_set(监听的端口个数):32位机默认是1024个,64位机默认是2048。缺点: (1)单进程可以打开fd有限制; (2)对socket进行扫描时是线性扫描,即采用轮询的方法,效率较低; (2)用户空间和内核空间的复制非常消耗资源;2、poll 同步多路IO复用 调用过程和select类似 时间复杂度:O(n) 其和select不同的地方:**采用链表的方式替换原有fd_set数据结构转载 2021-09-06 18:03:41 · 139 阅读 · 0 评论 -
IO是否会一直占用CPU?
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时间原创 2021-01-22 15:30:05 · 2143 阅读 · 1 评论 -
内核和应用程序的交互(一个数据是怎么从程序传到网络上去的?)
1、数据流向 网络IO操作实际过程涉及到内核和调用这个IO操作的进程。以read为例,read的具体操作分为以下两个部分: (1)内核等待数据可读 (2)将内核读到的数据拷贝到进程详细过程如下图所示:Linux-内核态与用户态内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序用户态: 只能受...翻译 2018-08-21 22:37:13 · 1796 阅读 · 0 评论