除去僵尸進(jìn)程實(shí)驗(yàn)報(bào)告_第1頁(yè)
除去僵尸進(jìn)程實(shí)驗(yàn)報(bào)告_第2頁(yè)
除去僵尸進(jìn)程實(shí)驗(yàn)報(bào)告_第3頁(yè)
除去僵尸進(jìn)程實(shí)驗(yàn)報(bào)告_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

綜合性實(shí)驗(yàn)報(bào)告專(zhuān)業(yè)年級(jí):班級(jí):課程名稱(chēng)Linux/UNIX網(wǎng)絡(luò)編程指導(dǎo)教師本組成員學(xué)號(hào)姓名實(shí)驗(yàn)地點(diǎn)實(shí)驗(yàn)時(shí)間項(xiàng)目名稱(chēng)除去僵尸進(jìn)程實(shí)驗(yàn)類(lèi)型綜合性一、實(shí)驗(yàn)?zāi)康牧私饨┦M(jìn)程產(chǎn)生的三個(gè)條件,并分析程序是否能產(chǎn)生僵尸進(jìn)程。了解除去僵尸進(jìn)程的四種方法,并熟練應(yīng)用。wait()函數(shù)除去程序中的僵尸進(jìn)程。二、 總體設(shè)計(jì)(設(shè)計(jì)原理、設(shè)計(jì)方案及流程等)設(shè)計(jì)原理一個(gè)已經(jīng)終止但是其父進(jìn)程尚未對(duì)其進(jìn)行善后處理的進(jìn)程稱(chēng)為僵尸進(jìn)程,既子進(jìn)程結(jié)束,父進(jìn)程未調(diào)用exit(),父進(jìn)程沒(méi)有處理SIGCHLD信號(hào),要想除去僵尸進(jìn)程需要破壞三個(gè)條件中的一個(gè),父進(jìn)程可以通過(guò)調(diào)用wait()函數(shù)獲得子進(jìn)程的終止函數(shù),從而除去僵尸進(jìn)程。本實(shí)驗(yàn)利用課本上“14.2服務(wù)器與單客戶(hù)的連接處理”程序,除去程序中的僵尸進(jìn)程。設(shè)計(jì)方案及流程(1)在linux的虛擬機(jī)上編寫(xiě)并調(diào)試程序。用ps-a-opid,ppid,state,command命令查看是否產(chǎn)生了僵尸進(jìn)程在程序中添加wait()函數(shù)并調(diào)試運(yùn)行再次用ps-a-opid,ppid,state,command命令查看是否消除了僵尸進(jìn)程三、 實(shí)驗(yàn)步驟(包主要步驟、代碼分析等)(1)在linux的虛擬機(jī)上打開(kāi)終端用vim編譯器編寫(xiě)服務(wù)器端的文件server.c,調(diào)試并用gcc-oserverserver.c編譯程序。編譯成功之后用./server命令運(yùn)行程序。打開(kāi)另一個(gè)終端用vim編譯器編寫(xiě)客戶(hù)端文件client.c,調(diào)試并用gcc-oclientclient.c編譯程序。編譯成功后用./client127.0.0.1運(yùn)行程序(因?yàn)榭蛻?hù)端的輸入用漢語(yǔ)的話一直輸出的是亂碼,所以客戶(hù)端輸出的是英文)如下圖所示:[mandrivttfllDcalhDst借尸■透程H./client127.0.0.1ServerMessage:務(wù)器.Inputyourname;f?jInputmessage(maxcharhowServermessage:norInputiiHssage(niiaxchar:10^0):areServermessage:eraInputmessag&(maxchar:t0B0):youServermessage:uo^InputnessagefnaxcharHBBS)[Biandri?a@localhost僵尸進(jìn)瑕]$[[■andriva?Idealhost伺尸進(jìn)程杼./server你有一個(gè)連接來(lái)但i?7^,g/i客戶(hù)端窯字為fzh接賀到壽戶(hù)端的信息信息:h叭*授哽到客戶(hù)端的佶息<fzl>信息iwhat接受到客戶(hù)端的倍息汀嘰〉倍息:四u客戶(hù)端:鬥1笑囲連搖. ||再打開(kāi)一個(gè)終端輸入ps-a-opid,ppid,state,command命令查看進(jìn)程的情況,如下圖所示,第一個(gè)是客戶(hù)端服務(wù)器都在運(yùn)行,第二個(gè)是客戶(hù)端已經(jīng)斷開(kāi)連接,可以看出程序中已經(jīng)產(chǎn)生僵尸進(jìn)程。在server.c的程序中加入wai()函數(shù),如下圖:⑴{::((connectfd=accept(li?terrM』(9trmtsockaddr*)ficlient,&sin_size))==-!)perror(nAccept^g, *exit(-l);}if((pid=fork(:oir;(pid=wait(&stat))>0;){prinH("{S尸進(jìn)程已除”);closefcornectfd);continue^}(pid=-0){closedistenfcl);process_client(connectfd-client);exiMDj}訊“ 50^再次運(yùn)行server.c和client.c文件,并用ps-a-opid,ppid,state,command命令查看進(jìn)程的狀態(tài),如下圖可知程序中已經(jīng)沒(méi)有僵尸程序。(6)截圖,撰寫(xiě)實(shí)驗(yàn)報(bào)告,另附實(shí)驗(yàn)代碼client.cserver.c四、結(jié)果分析與總結(jié)本實(shí)驗(yàn)老師在課堂上詳細(xì)講解了除去僵尸進(jìn)程的四種方法:父進(jìn)程結(jié)束exit()型號(hào),利用wait()函數(shù),利用waitpid()函數(shù),讓父進(jìn)程死亡,子進(jìn)程成為孤兒進(jìn)程。我利用的是wait()函數(shù)讓父進(jìn)程接受SIGCHLD信號(hào),在做到客戶(hù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論