aio -- 4




概述在 nginx 初始化流程的介绍中,我们已经看到 nginx module 是怎么初始化和加载的,nginx module 提供了抽象的接口,由各个实际的模块实现者去实现相应的接口,当然,事件模块也是如此 EPOLL 模块 module 定义// struct ngx_event_module_t // 事件模块结构体 {{{ typedef struct { // 模块名称 ngx_str_t *name; // 解析配置前,用于创建存储配置项参数结构体的回调函数 void *(*create_conf)(ngx_cycle_t *cycle); // 解析配置完成后,用于综合处理某些配置项 char *(*init_conf)(ngx_cycle_t *cycle, void *conf); // 对于事件驱动机制,每个事件需要实现的 10 个抽象方法 ngx_event_actions_t actions; } ngx_event_module_t; // }}}  在事件模块结构体的最后定义了 
#技术帖    #龙潭书斋    #io    #epoll   
概述在下面两篇日志中,我们详细介绍了 linux 异步 IO 的两种实现:POSIX AIO -- glibc 版本异步 IO 简介 linux AIO -- libaio 实现的异步 IO 简介及实现原理 在文章中,我们清楚 libaio 实现的异步 IO 需要 linux 内核版本支持,然而,他却比 glibc 实现的异步 IO 具有很多优势,如资源使用上、执行效率上以及设备的协调使用等方面均有着明显的优势无论如何,他毕竟是 linux 内核原生支持的异步 IO 嘛也因此,nginx 选择了 libaio 实现的异步 IO 实现事件的异步处理,那么他是怎么做的呢? 异步 IO 初始化 -- ngx_epoll_aio_initngx_epoll_aio_init 函数是 nginx epoll 模块初始化的一个重要环节,他决定了 nginx 是否使用异步 IO 来实现事件的读写响应// static void ngx_epo
#linux    #龙潭书斋    #apue    #posix   

200x200


概述linux 中最常用的 IO 模型是同步 IO,在这个模型中,请求发出后应用程序会阻塞直到满足条件(阻塞 IO),或在不满足条件的情况下立即返回

#读书笔记    #技术帖    #linux    #apue   



京ICP备15018585号