论文部分内容阅读
流媒体(Streaming Media)是一种以音视频数据流的方式在网络上传递多媒体信息的技术。与传统的多媒体下载不同,流媒体传输具有实时性和连续性的特点。流媒体技术具有十分广泛的应用领域,如在线直播、网络广告、视频点播、视讯会议、远程教育等。流媒体系统中的流媒体服务器用于存放和控制流媒体数据,对于当前大多数流媒体系统而言,高速发展的TCP/IP网络已不再成为限制性能的主要因素。然而,随着流媒体技术的飞速发展,以及世界广播电视数字化的来临,流媒体服务器的性能日益成为制约流媒体应用的重要因素。本文首先研究分析了流媒体应用的关键技术,对流媒体的基本原理、传输技术和流媒体传输协议进行了详细介绍。然后分析了目前几个主流的流媒体服务器和影响流媒体服务器性能的关键因素,紧接着研究和分析了Linux操作系统内核机制,介绍了Linux内核的模块机制和内核处理系统调用的过程,并且介绍了在Linux内核中添加系统调用和内核模块的方法。最后重点介绍了基于Linux平台的流媒体服务器的设计和关键模块功能的实现过程,该流媒体服务器采用模块化的的思想进行设计,系统各个模块运行在一个基于异步事件驱动的系统运行框架之上。流媒体服务器软件是以应用软件方式运行在Linux平台下,在执行时,CPU运行在用户态。流媒体服务器的设备I/O通过系统功能调用,从用户态陷入核心态,方能完成。CPU从用户态陷入核心态,再从核心态返回用户态的净开销,相当于CPU执行1000条简单的普通指令。本文所做的工作为实际项目的一个分支,项目的最后目标就是利用Linux操作系统内核的特点,实现流媒体服务器的频繁进行I/O操作的功能模块降到Linux内核中,利用这种方法实现对流媒体服务器的性能改进。本论文受四川省科技厅攻关基金资助,本文对提高流媒体服务器性能的方法做了初步的探索和研究,在今后的项目实施中可以作为参考。