技术创新
中文核心期刊《微计算机信息》(管控一体化)2006年第22卷第7-3期
360元/年邮局:82-946
《现场总线技术应用200例》
网络与通信
基于线程池技术的文件传输模型的改进
AnImprovedModuleofFileTransportingBasedonThreadPoolTechnology
(电子科技大学)冯
玮刘心松
Feng,WeiLiu,Xinsong
摘要:本文首先就涉及的文件传输模型和线程池技术作了分析,在考虑了文件传输的特点后,结合线程池技术来对原来的文
件传输模型提出了一种改进方案,从而提高了传输效率,并改善了系统的性能。关键词:线程池;文件传输;多线程中图分类号:TP393
文献标识码:A
Abstract:Thispaperfirstanalyzesthefiletransportingtechnologyandthethreadpooltechnology.Afterconsideringthefeaturesoffiletransportingandthethreadspooltechnology,animprovedmoduleoffiletransportingisproposed.Bydoingthis,wehopetopro-motetheefficiencyoffiletransportingandmakethewholesystemmoreefficient.KeyWords:threadpool,filetransporting,multi-thread
文章编号:1008-0570(2006)07-3-0072-03
1引言
文件传输是在计算机技术应用中很重要的一项技术,它以其广泛的应用而变得日益重要。纵观目前涉及的文件传输的相关技术,在涉及传输一个较大的文件来说,一般都存在着反复填充缓冲区和取得缓冲区数据并发送的问题。因为传统的文件传输都存在这种磁盘I/O过于密集频繁的情况,所以都有降低机器性能,影响传输效率的问题。本文就是在仔细分析线程池技术的基础上针对现有的文件传输的特征提出了一种改进实现方案。
2线程池技术的介绍和分析
线程池技术开始是在微软的Windows操作系统中使用的一个概念,其核心是多线程技术,即可以把一个进程看成是多个线程的容器,这样的话,一个进程内就可以同时容纳多个线程的运行,而多个线程同时共用了进程的地址空间和绝大部分的数据、代码。架构在这样的结构上,再加上相关的线程的创建、撤销、线程间的同步和异步等管理机制,就构成了一个具有基本管理能力的线程的集合,被称为线程池技术。
2.1线程池技术的优点
线程池技术的优点主要体现在两个方面:
1.采用线程池技术能够尽量减少不必要的开销。相对于进程而言,线程在创建、撤销和切换时,速
度更快。因此一般意义上来说,可以用线程来做的事尽量不用进程。同时由于多个线程常驻进程内,这样还可以减少线程在创建和撤销是带来的开销。
2.采用线程池技术可以充分利用多线程的优点,单处理器条件下实现任务的并发处理,提高了系统处理任务的效率。
2.2线程池的使用
在具体实现中,综合考虑了多方面因素后,在使用线程池技术来解决问题的时候,把工作主要分为两个阶段:
1.建立多线程的进程模型,即这个进程中运行有多个线程。
2.建立多线程的管理机制。该机制不仅要解决线程何时创建和撤销的问题,而且还要解决多线程之间同步和异步的问题。到底采用哪种管理策略,可视用户的具体应用而定。
3文件传输技术的特点及以往技术
的缺陷
我们研究的重点并不在于网络传输部分,而是着眼于完成文件传输任务的单机系统。随着网络的发展,网络中文件传输技术的变得日益广泛。从而就衍生出了很多技术,从依赖的网络应用层协议来分有基于应用层的FTP协议的类型,有基于HTTP协议的类型。这些技术毫无例外的使用了传输层的TCP协议。由于包长度的限制,不可能一次发送很多数据,因此这就涉及到应用程序设计时的缓冲区需要反复填充的问题。所以可以判定为是频繁磁盘I/O操作。由于磁盘是低速设备,只有在发送完以后才可以申请再一次地填充缓冲区,而磁盘读写操作的过程相对于发送数据时间来说很长,所以完全有可能存在频繁的进程的切换和调度等操作引起的机器性能降低的问题。所以传统文件传输模式必然会降低文件传输效率,而且因为频繁的磁盘操作会占用大量的CPU时间,降低了整体计算机的性能。当大量的网络连接存在时,服务对文件传输服务器整体性能要求更高。
冯玮:硕士研究生
国家自然科学基金项目编号:NO.60473085
72-
-
邮局:82-946360元/年技术创新
网络与通信
《PLC技术应用200例》
您的论文得到两院院士关注
4改进的文件传输系统实现
4.1主要实现思想
我们的设计是用线程池技术来作为支撑,来处理一个全局链表,全局链表中的每个元素则是一个缓冲数据块,用来存放待传输文件的一部分。而线程池中的线程分为管理线程和工作线程两种,其中工作线程负责对链表进行处理,处理包含了取缓冲数据块数据和发送两个过程。由于工作线程一般不会被撤销,所以可以避免多线程的创建和撤销带来的额外开销。而管理线程则负责管理工作线程的创建、撤销以及多线程间的同步等的操作。同时填充线程负责对该链表进行链表数据块的填充。填充策略是一次填充多个数据块,这样就改善了原来的频繁填充一个缓冲区引起的磁盘读写频繁带来的问题。
具体设计如下图:
4.2主要数据结构:
在该设计中,我们的设计所涉及的数据结构主要是存放所有数据缓冲块的双向链表,正如上述该双向
链表中一个元素主要存放的是一个缓冲数据块。使用双向链表的目的是为了保证填充线程的每次填充操作的目标数据都不会丢失。用来存放的是待发送文件的一部分填充缓冲区的内容。定义如下:
typedefstruct_File_Buf_List{File_Buf_List*Pre_Node;Char*Content_Buf;
File_Buf_List*Next_Node;}File_Buf_List;4.3流程的描述:
在程序一启动时,我们就会作如下的操作:首先创建管理线程,然后由管理线程来创建填充线程、以及几个工作线程,并完成缓冲区数据块的双向链表的初始化。
下面介绍一下几类线程的算法:
5模型的性能分析
5.1数学模型的建立:
由于任何任务的到来可以认为是在缓冲链表上增加一个节点,因此,我们可以做如下几个定义及假设:
定义一:缓冲数据块链表上的一个节点定义为一个任务实体。
定义二:一个工作线程定义为一个服务台,则一个任务实体则为一个服务对象。
定义三:定义单个任务实体等待服务的平均时间V(单位时间)和统计平衡下单位时间处理的任务实体数U(个/单位时间)这两个衡量标准来评估模型处理任务的能力。
管理线程:
工作线程
填充线程
填充线程
与此同时,我们可以作假设来简化问题:
假设任务的到来是服从马尔科夫性质的,因此假设任务实体的到来是服从泊松过程的,参数为λ(λ>0)
的Poisson流,即相继到达的间隔时间序列{ζn,n>0}独
立、服从相同参数λ的负指数分布F(t)=1-e-λt,t≥0,而每个任务实体所需的服务台提供的服务时间是相
互独立的,服从相同的参数μ的负指数分布。由于操
作系统和硬件的限制,任务实体数和工作线程数不可能无穷大,因此分别假设如下数值:设任务实体数最大为m,工作线程数为n;
5.2数学分析:
由于这个数学模型是基于M/M/n/m/m的这样一个简单有限源的排队系统。假设N(t)表示时刻t待处理的任务实体数目令:
则我们可以知道{N(t),t≥0}是有限状态空间E={0,1,2,3…,m}上的生灭过程,同时我们知道任务实体源是有限的,所以根据生灭过程,可以得到状态转移强度图,如下所示:
}
)(|)({)(i t N j t t N P t P Á==∆+=∆73-
-
技术创新
中文核心期刊《微计算机信息》(管控一体化)2006年第22卷第7-3期
360元/年邮局:82-946《现场总线技术应用200例》网络与通信
由上图可以看出参数:
同时我们可以得到:
其中:
此时Pj的含义是在时间t时,链表中有j个任务
实体的概率。
在所有工作线程都忙的情况下,新加入的任务实
体必须等待前面的j-n+1个任务实体服务完后再能接
受服务。由于工作线程服务时间服从负指数分布,一
个任务实体加入时,各个正在接受服务的任务实体的
服务时间仍是服从相同参数的负指数分布。在每个工
作线程均很忙的情况下,每个工作线程的输出是参数
为μ的Possion流,n个独立工作的工作线程组成的输
出流是为nμ的负指数分布,而n个工作线程修复j-
n+1个任务实体的时间应服从参数为nμ的j-n+1阶
爱尔朗分布,于是,每个任务实体等待服务的平均时
间为:
这样,我们就到了第一个性能指标V=Wq。
同时我们还可以得到第二个单位时间统计平衡下完
成的任务实体数U:
5.3传统文件传输模型的性能分析及比较
传统文件传输模型抽象后的数学模型为一个M/
M/1/m/m简单有限源的排队系统。我们同样也定义单
个任务实体等待服务的平均时间V’(单位时间)和统
计平衡下单位时间处理的任务实体数U’(个/单位时
间)这两个衡量标准来评估模型处理的能力。也假设
任务实体到达为参数为λ(λ>0)的Poisson流,而每个任
务实体所需的服务台提供的服务时间是相互独立的,
服从相同的参数μ的负指数分布。
得到:其中
此时P
j
含义是在时间t时,链表中有j个任务实
体的概率。
这样可以得到两个性能指标:
从上面的分析比较可以看出V和U相比较于V’
和U’来讲,V值更低,U值更高,即任务实体平均等待
的时间更短,单位时间内处理的任务更多。这样就可
一个线程可以包含多个进程以得出一个结论,改进后的文件传输模型具有更高的
传输效率。同时由于将文件数据分批性输入,提高了
每次磁盘读写的数据传输量,减少了由于频繁的磁盘
I/O而导致的系统性能降低的概率。
6结束语
该模型是建立在线程池技术上的一种文件传输
改进模型。该系统模型充分利用了线城池技术的优
点,在具体应用中具有更好的传输效率,同时也比较
好地解决了频繁磁盘操作影响整体性能的问题。但纵
观整个模型,还有很多值得深入研究的方向:能不能
将该种模型实现到多CPU系统中,真正实现处理器一
级的并发操作,甚至扩大到多机系统(例如集等)中
实现海量数据的传输;即使在现有的单CPU环境下,
充分结合现有的硬件技术,例如超线程技术来实现对
该系统的进一步的优化。这种优化手段可以是利用或
设计一种并行语言,结合硬件特性来实现文件传输的
并行处理,进一步提高传输效率。
本文作者的创新点:
1,对传统的文件传输模型进行改进,提高了传输
效率和系统的整体性能。
2,实现了线程池技术在具体工程实践中的应用。
同时也在实践中验证了该技术的高效性。
3,引入了并行计算的思想。在线程一级依据并发
处理的思想,实现了单CPU环境下的任务的并发处理。
参考文献:
[1]JeffreyRichter.ProgrammingApplicationsforMicrosoft?Windows
Fourth?Edition[M].MicrosoftPress,2000
[2]MickeyWilliams.ProgrammingMicrosoftWindows2000
Unleashed[M].SamPubilshing,1999
[3]JimBeveridge&RobertWiener.MultithreadingApplicationsin
Win32[M].PearsonEducation,1997
[4]董亚冰等,一种可伸缩的鲁棒流媒体系统设计与实现[J],微计
算机信息,2005,10(3):20-22.
作者简介:冯玮(1981-),男,硕士研究生,主要研究
方向为分布式并行处理和网络多媒体,E-mail:
fw37fw37@163.com;刘心松(1940-),男,教授,博士生
导师,研究方向为分布式并行处理、宽带网络与通信、
操作系统与网络软件等。
(610054四川成都电子科技大学)冯玮刘心松
(UniversityofElectronicScienceandTechnology,Sichuan
Chengdu610054,China)Feng,WeiLiu,Xinsong
通讯地址:(610054四川省成都市电子科技大学计算
机学院8010研究室)冯玮
(投稿日期:2005.12.17)(修稿日期:2006.1.25)74
--
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论