- 博客(3)
- 收藏
- 关注
原创 IO多路复用中的select poll epoll的区别
第一个参数:限定了内核态遍历bitmap的最大长度第二个参数:读文件描述符的集合(实质上是一个bitmap,先对所有的文件描述符进行置0,然后对关注的文件描述符置1,第0 1 2个文件描述符是为操作系统预留的)第三个参数:写文件描述符的集合第四个参数:监听的异常文件描述符的集合第五个参数:超时时间。
2024-04-14 17:07:23 631 2
原创 Unix的五种IO模型
首先用户态的read方法发起系统调用方法从对应的套接字文件描述符中读取数据 ,内核根据对应的文件描述符去查找socket内核缓冲区中是否有需要的数据,如果没有则会发生read阻塞。当网卡接收到数据,由于网卡绑定了dma控制器,所以不需要cpu的干预,直接将数据copy到socket内核缓冲区当中,拷贝完成后触发软中断的产生,操作系统接收到软中断信号,此时内核将套接字缓冲区中的数据拷贝到用户缓冲区中,此时read阻塞解除。返回一共接收到的字节数。
2024-04-14 16:42:16 410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人