网站大量收购独家精品文档,联系QQ:2885784924

除去僵尸进程实验报告.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

综合性实验报告

专业年级:班级:

课程名称

Linux/UNIX网络编程

指导教师

本组成员

学号姓名

实验地点

实验时间

工程名称

除去僵尸进程

实验类型

综合性

实验目的

1.了解僵尸进程产生的三个条件,并分析程序是否能产生僵尸进程。

2.了解除去僵尸进程的四种方法,并熟练应用。

3.wait〔〕函数除去程序中的僵尸进程。

总体设计〔设计原理、设计方案及流程等〕

设计原理

一个已经终止但是其父进程尚未对其进行善后处理的进程称为僵尸进程,既子进程结束,父进程未调用exit〔〕,父进程没有处理SIGCHLD信号,要想除去僵尸进程需要破坏三个条件中的一个,父进程可以通过调用wait()函数获得子进程的终止函数,从而除去僵尸进程。本实验利用课本上“14.2效劳器与单客户的连接处理”程序,除去程序中的僵尸进程。

设计方案及流程

〔1〕在linux的虚拟机上编写并调试程序。

〔2〕用ps-a-opid,ppid,state,command命令查看是否产生了僵尸进程

〔3〕在程序中添加wait〔〕函数并调试运行

〔4〕再次用ps-a-opid,ppid,state,command命令查看是否消除了僵尸进程

实验步骤〔包主要步骤、代码分析等〕

〔1〕在linux的虚拟机上翻开终端用vim编译器编写效劳器端的文件server.c,调试并用gcc-oserverserver.c编译程序。编译成功之后用./server命令运行程序。

〔2〕翻开另一个终端用vim编译器编写客户端文件client.c,调试并用gcc-oclientclient.c编译程序。编译成功后用./client127.0.0.1运行程序〔因为客户端的输入用汉语的话一直输出的是乱码,所以客户端输出的是英文〕如下列图所示:

再翻开一个终端输入ps-a-opid,ppid,state,command命令查看进程的情况,如下列图所示,第一个是客户端效劳器都在运行,第二个是客户端已经断开连接,可以看出程序中已经产生僵尸进程。

在server.c的程序中参加wai()函数,如下列图:

再次运行server.c和client.c文件,并用ps-a-opid,ppid,state,command命令查看进程的状态,如下列图可知程序中已经没有僵尸程序。

〔6〕截图,撰写实验报告,另附实验代码client.cserver.c。

结果分析与总结

本实验老师在课堂上详细讲解了除去僵尸进程的四种方法:父进程结束exit〔〕型号,利用wait()函数,利用waitpid()函数,让父进程死亡,子进程成为孤儿进程。我利用的是wait()函数让父进程接受SIGCHLD信号,在做到客户端的时候程序出现了某种bug无法用汉语输出,否那么会出现乱码。所以效劳器端是汉语输出,客户端是英文输出。在做实验的过程中应该细心和耐心,调试程序时应该仔细,最后希望老师满意。

教师签名:

年月日

文档评论(0)

liuzhouzhong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档