福建農(nóng)林大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告二_第1頁(yè)
福建農(nóng)林大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告二_第2頁(yè)
福建農(nóng)林大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告二_第3頁(yè)
福建農(nóng)林大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告二_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

操作系統(tǒng)》實(shí)驗(yàn)報(bào)告(二)Linux下的編程(綜合性2學(xué)時(shí))1、實(shí)驗(yàn)?zāi)康模?)熟悉Linux的進(jìn)程機(jī)制。2)熟悉LINUX環(huán)境編程。2、實(shí)驗(yàn)內(nèi)容:(1)完成LINUX系統(tǒng)的登錄,啟動(dòng)終端。2)創(chuàng)建一個(gè)新用尸,名為ddl。要求記錄操作步驟或命令丿予列。[31260100lBwiizeshitaiocalhostsuPassword:[root@localhost3126010018wuzeshi]#adduserddl[root@localhost3126010018wuzeshi]#adduserddladduser:user'ddl1alreadyexists切換用尸dd1[root@localhost3126010018wuzeshi]#suddl[ddltaiocalhost3126010018wuzeshi]$|(3)進(jìn)程查看命令PS的使用探討,使用ps命令選項(xiàng):-l-al,記錄命令的結(jié)果。[ddl@lccalhost3126010018wuzeshi]$ps-I-alFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD4S0300128260800-40764waitpts/000:00:00su4SQ30103001G800-27132waitpts/000:00:00bash4SG30973910G809-40369waitpts/000:99:00su4S501309830970800-27098waitpts/000:00:00bash0R501311830980800-27046-pts/000:00:00(4)編寫一個(gè)程序,創(chuàng)建一個(gè)子進(jìn)程,顯示“Newprocess.”子進(jìn)程在休眠(15秒)后,通過(guò)調(diào)用getpid()和getppid()獲取父、子進(jìn)程的id后結(jié)束并退出exit()。父進(jìn)程調(diào)用waitpid()等待子進(jìn)程結(jié)束,并同樣返回其父、子進(jìn)程的id。(提示:運(yùn)行過(guò)程中配合ps-l命令查看進(jìn)程的家族關(guān)系。)

回答問(wèn)題:當(dāng)父進(jìn)程不等待子進(jìn)程的結(jié)束時(shí),運(yùn)行結(jié)果如何?請(qǐng)分析原因。i_i*new.cK Copytheselection#include<sys/types.h>#include<stdlib.h>#include<stdio.h>main{)intp;whileUp=fork() ;if(p==Ci]printf("NewProcess\n");sleep(lS);printf("pid=%d,ppid=%d\n",getpid{},getppid{})exit(Q);else//^aitpid(0rNULLrS);運(yùn)行結(jié)果: printf("pid=%d.ppid=%d\n"rgetpidUrgetppid()];C-Tabwidth:8-Ln,IS,Col19 INS03126010018wuzeshi@localhost:/home/3126010018wuzeshi/DesktopFileEditViewSearchJenminal旦巳Ip[roottaiocalhostDesktop]#gccnew2.c-on已w2[root@localhostDesktop]#./new2pid=斗?48.ppid=3641[rootfatocalhostDesktop]#NewProcesspid=斗B49,ppid=1ps-I-alFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD4S0363335600800-40763waitpts/909:09:09su斗s0364136330800-27998waitpts/B00:00:00bash斗R04B5636410800-27047-pts/e00:00:00PS原因:父進(jìn)程執(zhí)行到wait的時(shí)次,如果只有一個(gè)wait,其他的子進(jìn)程在父進(jìn)程結(jié)束后會(huì)成為孤兒進(jìn)程init進(jìn)程收養(yǎng)。采用不阻塞方式調(diào)用waitpid的話,父進(jìn)程不會(huì)等待,沒(méi)執(zhí)行完的子進(jìn)程將會(huì)成為孤兒進(jìn)程(5)進(jìn)程的創(chuàng)建:編制一段程序,使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個(gè)子進(jìn)程,在該程序運(yùn)行時(shí),在系統(tǒng)中就有一個(gè)父進(jìn)程和兩個(gè)子進(jìn)程在活動(dòng)。讓每一個(gè)進(jìn)程在屏幕上顯示一個(gè)字符:父進(jìn)程顯示字符a,子進(jìn)程分別顯示字符b和字符c。試觀察、記錄并分析屏幕上,進(jìn)程運(yùn)行的情況。(提示:運(yùn)行過(guò)程中配合ps-l命令查看進(jìn)程的家族關(guān)系。)圖fork.c諷Mnclud已<stdio.hAmain()intplrp2;while((pl=fork())=-l);if(pl==0)putcharfb'};elsewhile((p2=fork())=-l);if(pl==0)putchar('c')獲取進(jìn)程及其父進(jìn)程的id.[roattaiocalhostDesktop]#gccfork.c-ofork[root@localhostDesktop]#./fork3[root@localhostDesktop]#ab[root^localhostDesktop]#ps-I[roattaiocalhostDesktop]#gccfork.c-ofork[root@localhostDesktop]#./fork3[root@localhostDesktop]#ab[root^localhostDesktop]#ps-IFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD斗S0363335609809-40763waitpts/000:00:00su4s0364136330800-27098waitpts/000:00:00bashR0418536413800-270斗7-pts/e00:00:00[附:系1統(tǒng)調(diào)h用函數(shù)說(shuō)明:1(1)fork()函數(shù),創(chuàng)建一個(gè)新進(jìn)程。格式:intfork()其中返回int取值意義如下:0:創(chuàng)建子進(jìn)程,從子進(jìn)程返回的id值>0:從父進(jìn)程返回的子進(jìn)程id值-1:創(chuàng)建失敗(2)getpid()與getppid();(3)waitpid(pid,status,options)可用調(diào)用格式:waitpid(O,NULL,O)功能:waitpid()會(huì)暫時(shí)停止目前進(jìn)程的執(zhí)行,直到有信號(hào)來(lái)到或子進(jìn)程結(jié)束。如果在調(diào)用waitpid()時(shí)子進(jìn)程已經(jīng)結(jié)束,則waitpid()會(huì)立即返回子進(jìn)程結(jié)束狀態(tài)值。參數(shù)設(shè)置:pid=0,表示等待進(jìn)程組識(shí)別碼與目前進(jìn)程相同的任何子進(jìn)程;status=NULL,表示忽略進(jìn)程的結(jié)束狀態(tài);options=0,表示不提供了一些額外的選項(xiàng)來(lái)控制waitpid。(4)相關(guān)的頭文件包含如下:#include<sys/types.h>#include<stdio.h>3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論