● 摘要
在网络与磁盘数据交互技术的研究中,网络传输速度不断提高,数据的磁盘I/O操作处理成为整个传输流程的瓶颈,网络和硬盘传输速度的不一致性影响了网络和磁盘数据交互的效率。分布式磁盘阵列等技术从硬件方面降低了I/O操作与网络传输速度上的差异,本文从系统软件方面研究分析并改进目前网络文件传输处理过程。在目前的网络文件传输处理过程中,网络服务器与客户端的文件传输处理通常采用同步I/O阻塞模型,应用程序需要调用多次read()/write()系统调用来完成整个文件的发送,而每次系统调用都需要用户空间与内核空间之间的上下文切换,同时数据需要在用户空间与内核之间多次拷贝,影响了文件发送的效率。本文以Linux操作系统为基础,研究设计实现新的数据处理流程改进网络文件接收处理,消除了数据在缓存之间不必要的中间拷贝过程,节省了用户空间的缓存的占用,避免了接收处理中内核空间与用户空间频繁的切换,减少了系统对网络文件数据流的处理时间。同时,设计实现了网络异步I/O模型,使应用程序在等待I/O操作的过程中可以提交新的请求,使网络多I/O操作可以并行完成,提高了CPU的利用率。网络文件传输的测试结果证明了减少网络文件接收处理中的数据拷贝并实现网络异步I/O传输方式,可以降低系统的处理时间,提高应用程序的传输效率