随笔分类 -  操作系统OS / IO多路复用

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

点击右上角即可分享
微信分享提示