- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux环境并发服务器设计技术研究
第 21卷第5期 成 邪 信 息 工 程 学 院 学 报 VoI2lN 【】.5
2006 f=:10月 JOURNAIOF(、HEN(il)UUNIVERSITYOE1Nlq)RMA1’ION IECHN()I』)(;Y ()(’t.2006
文章编号:1671一I742(2006)05—063005
Linux环境并发服务器设计技术研究
刘仕筠, 盛志伟, 黄 健
(成都信息工程学院,四川成都 610225)
摘要:讲述许发服务器设计的主要技术,包括多进程服务器、多线程服务器和 1/O复用服务器,同时对以上服
务器技术的性能进行_r简要分析,给出了在Linux操作系统下使用 t实现并发服务器的方法。
关 键 词:并发服务器;多进程 ;多线程;1/O复用
中图分类号:TP316.81 文献标识码:A
引言
网络服务器是网络软件的核 、部分,Linux由于其源码开放,性能稳定,所以在服务器市场中占有的份额越
来越多,许多经典的服务器(如WEB服务器)都使用 Linux系统。随着网络应用的不断增多,服务器的服务类型
也不断增多,而且性能要求越来越高,开发高性能的网络服务器是大势所趋。服务器设计技术有很多,按使用的
协议来分有TCP服务器和UDP服务器。按处理方式来分有迭代服务器和并发服务器。一个好的服务器,一般
都是并发服务器。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。下面,给出了
这 3种并发服务器的设计与实现。
1 多进程并发服务器
在Linux环境下多进程的应用很多,其中最主要的就是网络 /客户服务器。但是在电信、金融等数据量和稳
定性要求都比较高的环境中,也会涉及到多进程的应用。多进程服务器是当客户有请求时,服务器用一个子进程
来处理客户请求。父进程继续等待其它客户的请求。这种方法的优点是当客户有请求时,服务器能及时处理客
户,特别是在客户服务器交互系统中。对于一个TCP服务器,客户与服务器的连接可能并不马上关闭,可能会等
到客户提交某些数据后再关闭,这段时间服务器端的进程会阻塞,所以这时操作系统可能凋度其它客户服务进
程。比起迭代服务器大大提高了服务性能。
1.1 多进程服务器传统方法
多进程服务器设计方法也很多,传统方法是父进程进行监听(TCP服务器),当有连接到达时,生成一个子进
程处理客户请求,之后父进程继续监听。所以有时把父进程称为监听进程。其模板如下:
intmain(void)
{listen(1istenfd,BACKLOG); /*listenfd是监听套接字*/
while(1){
if ((connfd=accept(~,ckfd,NULL,NULI))== 一1) {
/*错误处理 */
}
if((pid= fork())0){
close(connfd); /*父进程关闭客户连接套接字 */
收稿Et期:2006—02.21
第5期 刘仕筠等:Linux环境并发服务器设计技术研究 63l
i
elseif(pid==0) {
close(1istenfd); /*子进程关闭监听套接字 */
… … /*处理客户请求*/
close(connfd);
exit(0);
}
程序需特别注意的地方是父进程要关闭连接套接字,子进程要关闭监听套接字。因为fork以后,子进程是
父进程的一个复制品,它们都有监听套接字和连接套接字 如果父进程不关闭连接套接字,当子进程关闭连接套
接字时,这个套接字并不会关闭,因为每个套接字描述符郁有一个 “引用计数”。当fork函数返回后 ,listefd和
connfd的引用计数变为2,而系统只有在描述符的 “引用计数”为0时,才真正关闭该描述符。子程序退出后,还
有一些状态信息留给父进程,父进程应调用waitpid函数滴埋子进程,因为子进程终止后,它变为一个僵尸进程,
父进程如果不清理僵尸进程,随着客户终止数 目的增多,僭尸进程越来越多,将耗掉系统资源。清理僵尸进程的
一 般方法是:让父进程收到SIGCHLD号
您可能关注的文档
- hr对应届毕业生的建议.doc
- HS注释第十类 木浆及其他纤维状纤维素浆;回收(废碎)纸或纸板;纸纸板及其制品.doc
- HVAC系统最优控制模型的开发及应用.pdf
- HyperNastran接口视频教程之模态分析与瞬态分析.pdf
- HyperMesh模态分析步骤.doc
- H级无溶剂浸渍漆的研究.pdf
- ICPOES和ICPMS法研究中草药中元素的溶出特性.pdf
- ICU常用参数及常用药物.ppt
- ICU常见抗生素的应用.ppt
- IC反应器的计算.doc
- 中国行业标准 GM/T 0126-2023HTML密码应用置标语法.pdf
- 《JJF 2121-2024恒转速源校准规范》.pdf
- 餐饮服务中20条处理要点.docx
- 《GM/T 0011-2023可信计算 可信密码支撑平台功能与接口规范》.pdf
- 《JJF 2134-2024旋转流变仪校准规范》.pdf
- JJF 2121-2024恒转速源校准规范.pdf
- 计量规程规范 JJF 2121-2024恒转速源校准规范.pdf
- 《JJF 2118-2024压力式六氟化硫气体密度控制器校验仪校准规范》.pdf
- JJF 2134-2024旋转流变仪校准规范.pdf
- 计量规程规范 JJF 2134-2024旋转流变仪校准规范.pdf
文档评论(0)