nginx基础Nginx的基本架构一个master主进程,生成一个或多个worker子进程事件驱动epoll(边缘触发),用于Linuxkqueue:用于BSD/dev/poll:IO复用器:select、poll、rtsignal支持sendfile及sendfile64支持AIO支持mmap名词解释:sendfile机制:正常响应报文路径“内核空间-->..
分类:
其他好文 时间:
2015-05-24 06:40:42
阅读次数:
342
最近在研究java IO、NIO、NIO2(或者称AIO)相关的东西,有些概念还是要明确下。 按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个....
分类:
其他好文 时间:
2015-05-17 23:26:19
阅读次数:
162
《Linux高性能服务器编程》:当当网、亚马逊目录:第一章:tcp/ip协议族第二章:ip协议族第三章:tcp协议详解第四章:tcp/ip通信案例:访问Internet第五章:linux网络编程基础API第六章:高级IO函数第七章:linux服务器程序规范第八章:高性能服务器框架第九章:IO复用第十...
分类:
系统相关 时间:
2015-04-08 14:49:02
阅读次数:
177
本文将讨论网络编程中的高级I/O复用技术,将从下面几个方面进行展开:
a. 什么是复用技术呢?
b. 什么情况下需要使用复用技术呢?
c. I/O的复用技术的工作原理是什么?
d. select, poll and epoll的实现机制,以及他们之间的区别。...
分类:
其他好文 时间:
2015-04-06 21:54:39
阅读次数:
239
本节研究事件和IO复用的实现,主要是Event和Epoller并给出C++实现;...
分类:
其他好文 时间:
2015-03-30 09:38:53
阅读次数:
193
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的...
分类:
编程语言 时间:
2015-03-29 12:02:48
阅读次数:
188
Linux select 机制深入分析
作为IO复用的实现方式,select是提高了抽象和batch处理的级别,不是传统方式那样阻塞在真正IO读写的系统调用上,而是阻塞在select系统调用上,等待我们关注的描述符就绪。当然现在更好的方式是epoll,比如Java中的NIO底层就是用的epoll。这篇文章只是为了搞懂select机制的原理,不看源码就不能说懂这些IO复用手...
分类:
系统相关 时间:
2015-03-20 14:29:27
阅读次数:
220
1. Event Loop作为一个IO线程,通过IO复用来处理事件2. 为了保证线程安全,任何需要修改IO线程资源的工作都交给IO线程亲自来做3. 为了IO线程与其他线程互调,需要设计一个eventfd让其他线程把自己的请求通过socket告知IO线程4. 通过timerfd可以方便地把回调的tim...
分类:
其他好文 时间:
2015-02-15 16:34:03
阅读次数:
168
2015.1.22c高级的环境搭建:GCC编译器:全称 GUN CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定GCC编译分为四个步骤:(用WC命令可以分别查看每个阶段代码的大小,可以比较一下,ls -l 也能看出大...
分类:
数据库 时间:
2015-01-22 23:01:26
阅读次数:
447
select、poll、epoll都是IO多路复用的机制,但是他们的机制有很大的区别
1、select
select机制刚开始的时候,需要把fd_set从用户空间拷贝到内核空间,并且检测的fd数是有限制的,由FD_SETSIZE设置,一般是1024。
检测的时候,根据timeout,遍历fd_set表,把活跃的fd(可读写或者错误),拷贝到用户空间,
再在用户空间依次处理相关的fd。...
分类:
系统相关 时间:
2015-01-20 20:35:55
阅读次数:
1199