随笔分类 - 操作系统OS / IO多路复用
摘要:在处理大量数据发送时,如尝试通过send函数发送10GB的数据,由于TCP socket缓冲区大小限制,单次send调用可能并不会完全发送所有数据。例如,首次调用可能仅成功发送约256KB的数据,之后再次调用send可能会因为缓冲区已满而立即返回错误码EAGAIN,这表明必须等待缓冲区有更多空间才能
阅读全文
摘要:目录文件系统的IO操作一、阻塞I/O(BIO)二、非阻塞I/O(NIO)三、信号驱动I/O四、异步IO五、I/O多路复用 文件系统的IO操作 在Linux中,以及大多数现代操作系统中,文件系统的IO操作通常是通过缓存IO来完成的。这种设计主要是为了提高IO性能,减少直接对磁盘的访问次数,并通过页缓存
阅读全文
摘要:目录selectpollepollepoll中的阻塞和非阻塞行为的设定时机epoll可读和可写是什么意思用户程序和内核程序的视角优质文章 select select() 是 Unix/Linux 系统中的一个系统调用,用于监视多个文件描述符的状态变化,从而得知哪些文件描述符是可读、可写或有异常待处理
阅读全文
摘要:目录函数简介低层实现逻辑 函数简介 /* Manipulate an epoll instance "epfd". Returns 0 in case of success, -1 in case of error ( the "errno" variable will contain the sp
阅读全文
摘要:目录函数简介低层实现逻辑epoll_create与epoll_create1函数的区别 函数简介 /* Creates an epoll instance. Returns an fd for the new instance. The "size" parameter is a hint spec
阅读全文
摘要:目录函数简介低层实现逻辑 函数简介 /* Wait for events on an epoll instance "epfd". Returns the number of triggered events returned in "events" buffer. Or -1 in case of
阅读全文
摘要:目录定义events字段data字段 定义 epoll_event结构体一般用在epoll机制中,其定义如下: struct epoll_event { uint32_t events; /* Epoll events */ epoll_data_t data; /* User data varia
阅读全文
摘要:epoll 是一种在 Linux 上可用的高性能 I/O 事件通知机制,用于处理大量并发连接。 以下是使用 epoll 进行网络编程的基本步骤: 1. 创建 epoll 实例:使用 epoll_create 函数创建一个 epoll 实例。 2. 添加监听的文件描述符:使用 epoll_ctl 函数
阅读全文
摘要:目录简介如何使用示例 简介 在 Linux 下,I/O 多路复用是一种用于高效处理多个 I/O 操作的技术。它允许一个进程同时监视多个文件描述符或网络套接字,以便在其中任何一个发生 I/O 事件时能够及时响应。 I/O 多路复用的主要目标是提高系统的并发性能和资源利用率。通过同时监听多个 I/O 源
阅读全文