| 摘要 | 第1-5页 |
| ABSTRACT | 第5-6页 |
| 目录 | 第6-8页 |
| 第一章 引言 | 第8-10页 |
| ·背景 | 第8-9页 |
| ·论文组织结构 | 第9-10页 |
| 第二章 传统I/O 模型和服务器结构 | 第10-22页 |
| ·I/O 模型 | 第10-16页 |
| ·阻塞I/O | 第11-12页 |
| ·非阻塞I/O | 第12-13页 |
| ·多路复用I/O | 第13-14页 |
| ·信号驱动I/O | 第14-15页 |
| ·异步I/O | 第15-16页 |
| ·服务器结构 | 第16-22页 |
| ·单进程循环服务器 | 第17页 |
| ·多进程服务器 | 第17-19页 |
| ·多线程服务器 | 第19-20页 |
| ·单进程事件驱动(Single-Process Event-Driven-SPED)服务器 | 第20-22页 |
| 第三章 对事件驱动I/O 的改进 | 第22-28页 |
| ·对select/poll 的分析 | 第22-24页 |
| ·select/poll 的原理 | 第22-23页 |
| ·select/poll 的缺陷 | 第23-24页 |
| ·几种替代方案 | 第24-28页 |
| ·Solaris 的/dev/poll | 第24-25页 |
| ·BSD 的Kqueue | 第25-26页 |
| ·Linux 的epoll | 第26-27页 |
| ·实时信号驱动I/O | 第27-28页 |
| 第四章 实时信号驱动I/O | 第28-32页 |
| ·实时信号 | 第28-29页 |
| ·实时信号驱动I/O | 第29页 |
| ·实时信号驱动I/O 的缺陷和改进设想 | 第29-32页 |
| 第五章 设计与实现 | 第32-69页 |
| ·概要设计 | 第32-36页 |
| ·信号值索引数组 | 第32-33页 |
| ·描述符散列表 | 第33-34页 |
| ·将信号结构放在系统打开文件结构中 | 第34-35页 |
| ·查看和修改内核参数 | 第35-36页 |
| ·详细设计与实现 | 第36-69页 |
| ·基本实现一(基于描述符散列表) | 第36-51页 |
| ·信号值索引数组 | 第36-39页 |
| ·描述符散列表结构 | 第39-41页 |
| ·空间分配 | 第41-42页 |
| ·信号产生 | 第42-46页 |
| ·信号递送 | 第46-49页 |
| ·每个描述符一个信号 | 第49-51页 |
| ·基本实现二(将信号结构放在系统打开文件结构中) | 第51-59页 |
| ·修改打开文件结构 | 第51页 |
| ·信号队列结构 | 第51-52页 |
| ·空间分配 | 第52页 |
| ·信号产生 | 第52-56页 |
| ·信号递送 | 第56-57页 |
| ·打开和关闭每个描述符一个信号 | 第57-59页 |
| ·基本实现中的一些问题 | 第59-61页 |
| ·关闭文件描述符 | 第59-61页 |
| ·在进程间传递描述符 | 第61页 |
| ·查看和修改内核参数 | 第61-69页 |
| ·/proc 文件系统简介 | 第61-63页 |
| ·创建/proc 入口文件 | 第63-66页 |
| ·读写内核参数的实现示例 | 第66-69页 |
| 第六章 测试与结果分析 | 第69-76页 |
| ·测试环境 | 第69页 |
| ·功能测试 | 第69-70页 |
| ·性能测试 | 第70-76页 |
| ·模拟通信服务器 | 第70-75页 |
| ·模拟WEB 服务器 | 第75页 |
| ·同时使用多种信号的效率 | 第75-76页 |
| 第七章 结论 | 第76-77页 |
| 参考文献 | 第77-78页 |
| 致谢 | 第78-79页 |
| 个人简历 | 第79页 |