烽驿2009开源实时通信平台 源码获取:svn checkout http://fy2009.googlecode.com/svn/trunk/ fy2009-read-only
Linux下可伸缩(Scalable)的异步IO机制是什么?熟悉Linux下网络编程的人可能会不加思索地回答:当然
是EPOLL。没错,EPOLL是个优秀的异步IO机制(笔者将会在专门的博文中讨论它),但那是Linux kernel
2.5.44之后的事(正式被大量使用更是在2.6之后),在此之前呢?Poll,Select之流当然都不行(讨论它
们不是本篇的目的,恕不再展开),那时的Linux世界其实有个同样非常优秀的异步IO设施:实时信号
(Real-Time Singal),其性能与EPOLL基本相当,只是编程模型不如EPOLL简单--EPOLL既简单又高效,因此,在2.6之后成为主流也就不奇怪了。为了支持2.6之前的Linux版本,本项目的异步
IO框架(http://blog.csdn.net/DreamFreeLancer/archive/2009/07/26/4381316.aspx)仍然对实时信号提供了支持。本篇简要介绍实时信号的原理和在本异步IO框架实现中的注意事项。
如你所知,在Linux下,你可以通过Shell命令(如Kill)和程序方式(如signal函数)向一个进程发信号
,Linux进程收到该信号将以一种类似于中断的方式响应。通常的Linux信号不带参数,不能重复投递,就是说
如果有一个信号正在被处理,后续相同的信号将被丢失。但Linux还有一类被称为实时信号(Real-time
<
Linux实时信号在异步IO框架中的应用

本文介绍了Linux下实时信号(Real-Time Signal)在异步IO框架中的使用,包括信号的初始化、注册、处理和恢复机制。强调了实时信号在2.6之前的Linux版本中的作用,以及与EPOLL的比较。并详细阐述了如何处理信号队列满的情况,以及2.6.6之后内核版本的变化。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



