系统调用接口( aka sys_epoll ): 事件查询设备对于系统调用接口的需要促成了sys_epoll系统调用的实现,这个简单接口为开发人员实现了同样的可扩展性。新的系统调用引入了三个新的映射到用户空间的调用: int epoll_create(int maxfds); int epoll_ctl(int epfd, int op, int fd, unsigned int events); int epoll_wait(int epfd, struct pollfd *events, int maxevents, int timeout); 这些函数在他们的手册页面里面描述: epoll : PSTXTMAN epoll_create : PS TXTMAN epoll_ctl : PSTXT MAN epoll_wait : PSTXT MAN 实现这些系统调用的补丁在这儿. 一个新的访问epoll ( 2.5.45 )的库在这个可得到: epoll-lib-0.11.tar.gz
References: [1] W. Richard Stevens - "UNIX Network Programming, Volume I: Networking APIs: Sockets and XTI, 2nd edition" Prentice Hall, 1998. [2] W. Richard Stevens - "TCP/IP Illustrated, Volume 1: The Protocols" Addison Wesley professional computing series, 1994. [3] G. Banga and J. C. Mogul - "Scalable Kernel Performance for Internet Servers Under Realistic Load" Proceedings of the USENIX Annual Technical Conference, June 1998. [4] G. Banga. P. Druschel. J. C. Mogul - "Better Operating System Features for Faster Network Servers" SIGMETRICS Workshop on Internet Server Performance, June 1998. [5] G. Banga and P. Druschel - "Measuring the Capacity of a Web Server" Proceedings of the USENIX Symposium on Internet Technologies and Systems, December 1997. [6] Niels Provos and Charles Lever - "Scalable Network I/O in Linux" http://www.citi.umich.edu/techreports/reports/citi-tr-00-4.pdf [7] Dan Kegel - "The C10K problem" http://www.kegel.com/c10k.html [8] Richard Gooch - "IO Event Handling Under Linux" http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html [9] Abhishek Chandra and David Mosberger - "Scalability of Linux Event-Dispatch Mechanisms" http://www.hpl.hp.com/techreports/2000/HPL-2000-174.html [10] Niels Provos and Charles Lever - "Analyzing the Overload Behaviour of a Simple Web Server" http://www.citi.umich.edu/techreports/reports/citi-tr-00-7.ps.gz [11] D. Mosberger and T. Jin - "httperf -- A Tool for Measuring Web Server Performance" SIGMETRICS Workshop on Internet Server Performance, June 1998.