论文部分内容阅读
智能化输入/输出(I2O)规范的基本目标是开发一种设备驱动程序体系结构,这种体系结构既与被控制的专门设备无关,也与具体的主机操作系统无关。这些无关性是通过逻辑上把驱动程序中用于管理设备的部分与驱动程序中与特定操作系统相关的具体实现细节部分分开而实现的。本文对此进行了深入研究,旨在在Linux环境下构建一个完整的I2O系统,降低CPU的工作负载,提高系统输入输出吞吐量,同时提高设备驱动程序的通用性和可移植性。
首先,本文系统介绍了I2O机制的产生和发展,总结了I2O体系的优点和总体构架和工作原理;同时简要介绍了RAID系统的基本概念和分类,并简略提到了目前Linux内核中存在的I2O系统,为后续章节的详细描述提供了理论基础。
其次,本文详细分析和总结了目前Linux最新内核版本下的I2O体系结构框架,从功能的角度分析和研究了I2O体系实现原理和几个重要模块的实现机制和工作原理。随后本文指出了现存I2O v1.5体系所存在的缺陷和不完善性,同时由于项目的需要,提出了满足I2O v2.0规范的系统实现构架。该系统框架考虑了I2O体系的整体实现过程,为后续的理论研究和本文最后的进一步完善措施提供了指导。
然后,本文对Linux内核中现有的基于I2O v1.5规范的I2O体系架构进行了全面的修改和扩展,重新定义了系统中重要的几个数据结构,重实现了I2O体系中的消息机制,修改和扩展了消息帧格式和转换函数;同时重新定义并实现了系统IOP,对IOP的功能进行了扩展,使之能够在七个状态间成功转换,实现了IOP从初始化到完全开启的整个过程。随后本文实现了大块随机存储设备基于I2O体系的驱动程序,使得各类磁盘设备在Linux环境下通过IOP的控制,能够实现基本的读写操作,并完成RAID系统的功能。
最后,本文对后续的研究工作提出了展望,在I2O系统中的多个IOP之间点对点直接通信,IOP的热插拔和其他类型硬件设备驱动程序等方面提出概念,为后面的进一步研究提供了思路。