版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《Linux操作系統(tǒng)設(shè)計實踐》試驗一:進(jìn)程管理試驗?zāi)康模海?)加深對進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別。(2)深入認(rèn)識并發(fā)執(zhí)行的實質(zhì)。(3)學(xué)習(xí)通過進(jìn)程執(zhí)行新的目的程序的措施。(4)理解Linux系統(tǒng)中進(jìn)程信號處理的基本原理。試驗環(huán)境:RedHatLinux試驗內(nèi)容:(1)進(jìn)程的創(chuàng)立編寫一段程序,使用系統(tǒng)調(diào)用fork()創(chuàng)立兩個子進(jìn)程,當(dāng)此進(jìn)程運(yùn)行時,在系統(tǒng)中有一種父進(jìn)程和兩個子進(jìn)程活動,讓每一種進(jìn)程在屏幕上顯示一種字符,父進(jìn)程顯示字符“a”;子進(jìn)程分別顯示字符“b”和字符“c”,試觀測記錄屏幕上的顯示成果,并分析原因。程序代碼:#include<stdio.h>intmain(){intp1,p2;while((p1=fork())==-1);if(p1==0)putchar('b');else{while((p2=fork())==-1);if(p2==0)putchar('c');elseputchar('a');}return0;}運(yùn)行成果:bca分析:第一種while裏調(diào)用fork()函數(shù)一次,返回兩次。子進(jìn)程P1得到的返回值是0,父進(jìn)程得到的返回值是新子進(jìn)程的進(jìn)程ID(正整數(shù));接下來父進(jìn)程和子進(jìn)程P1兩個分支運(yùn)行,判斷P1==0,子進(jìn)程P1符合條件,輸出“b”;接下來else裏面的while裏再調(diào)用fork()函數(shù)一次,子進(jìn)程P2得到的返回值是0,父進(jìn)程得到的返回值是新子進(jìn)程的進(jìn)程ID(正整數(shù));接下來判斷P2==0,子進(jìn)程P2符合條件,輸出“c”,接下來父進(jìn)程輸出“a”,程序結(jié)束。(2)進(jìn)程的控制①修改已編寫的程序,將每個進(jìn)程輸出一種字符改為每個進(jìn)程輸出一句話,在觀測程序執(zhí)行時屏幕上出現(xiàn)的現(xiàn)象,并分析原因。程序代碼:#include<stdio.h>intmain(){intp1,p2;while((p1=fork())==-1);if(p1==0)printf("Child1isrunning!\n");else{while((p2=fork())==-1);if(p2==0)printf("Child2isrunning!\n");elseprintf("Fatherisrunning!\n");}return0;}運(yùn)行成果:Child1isrunning!Child2isrunning!Fatherisrunning!分析:本試驗和上一種試驗同樣,只是將每個進(jìn)程輸出一種字符改為每個進(jìn)程輸出一句話。第一種while裏調(diào)用fork()函數(shù)一次,返回兩次。子進(jìn)程P1得到的返回值是0,父進(jìn)程得到的返回值是新子進(jìn)程的進(jìn)程ID(正整數(shù));接下來父進(jìn)程和子進(jìn)程P1兩個分支運(yùn)行,判斷P1==0,子進(jìn)程P1符合條件,輸出“Child1isrunning!”;接下來else裏面的while裏再調(diào)用fork()函數(shù)一次,子進(jìn)程P2得到的返回值是0,父進(jìn)程得到的返回值是新子進(jìn)程的進(jìn)程ID(正整數(shù));接下來判斷P2==0,子進(jìn)程P2符合條件,輸出“Child2isrunning!”,接下來父進(jìn)程輸出“Fatherisrunning!”,程序結(jié)束。②創(chuàng)立進(jìn)程,使用exec函數(shù)族使子進(jìn)程執(zhí)行新的目的程序,觀測并分析出現(xiàn)的現(xiàn)象。程序代碼:#include<stdio.h>#include<unistd.h>intmain(){printf("===systemcallexecltesting===\n");execlp("date","date",0);printf("execerror!\n");return0;}運(yùn)行成果:===systemcallexecltesting===五11月422:23:51CST分析:創(chuàng)立了進(jìn)程,使用exec函數(shù)族使子進(jìn)程執(zhí)行新的目的程序,輸出成果為目的程序的輸出。(3)進(jìn)程信號處理編寫程序使用系統(tǒng)調(diào)用fork()創(chuàng)立兩個子進(jìn)程,再用系統(tǒng)調(diào)用singal()讓父進(jìn)程捕捉鍵盤上來的中斷信號(即按Ctrl+c鍵);當(dāng)捕捉到中斷信號後,父進(jìn)程用系統(tǒng)調(diào)用Kill()向兩個子進(jìn)程發(fā)出信號,子進(jìn)程捕捉到信號後分別輸出下列信息後終止:ChildProcess11isKilledbyParent!ChildProcess12isKilledbyParent!父進(jìn)程等待兩個子進(jìn)程終止後,輸出如下的信息後終止:ParentProcessisKilled!觀測并分析出現(xiàn)的現(xiàn)象。程序代碼:#include<stdio.h>#include<signal.h>intwait_mark;voidwaiting(){while(wait_mark==1);}voidstop(){wait_mark=0;}intmain(){intp1,p2;while((p1=fork())==-1);if(p1==0){wait_mark=1;signal(SIGINT,SIG_IGN);signal(16,stop);waiting();printf("ChildProcess11isKilledbyParent!\n");exit(0);}else{while((p2=fork())==-1);if(p2==0){wait_mark=1;signal(SIGINT,SIG_IGN);signal(17,stop);waiting();printf("ChildProcess12isKilledbyParent!\n");exit(0);}else{wait_mark=1;signal(SIGINT,stop);waiting();kill(p1,16);kill(p2,17);wait(0);wait(0);printf("ParentProcessisKilled!\n");exit(0);}}}運(yùn)行成果:ChildProcess12isKilledbyParent!ChildProcess11isKilledbyParent!ParentProcessisKilled!分析:程序開始調(diào)用fork()函數(shù)創(chuàng)立兩個子進(jìn)程,初始時兩個子進(jìn)程處在等待狀態(tài),再調(diào)用singal()函數(shù)讓父進(jìn)程捕捉鍵盤上來的中斷信號(即按Ctrl+c鍵);當(dāng)父進(jìn)程捕捉到從鍵盤上傳來的中斷信號後,父進(jìn)程調(diào)用Kill()函數(shù)向兩個子進(jìn)程發(fā)出信號,該信號的作用是讓子進(jìn)程從等待狀態(tài)轉(zhuǎn)為執(zhí)行狀態(tài),子進(jìn)程捕捉到該信號後分別執(zhí)行各自的程序,輸出下列信息後終止(子進(jìn)程的輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45147-2024道路車輛總質(zhì)量大于3.5 t的車輛氣制動系統(tǒng)試驗使用滾筒制動試驗臺獲取和使用參考值
- 教科版八年級物理上冊《2.3物體運(yùn)動的速度》同步測試題及答案
- 新人教版八年級數(shù)學(xué)上冊導(dǎo)學(xué)案
- 安全生產(chǎn)目標(biāo)責(zé)任書考核記錄
- 2024.11.15推文-Mouse IL-4、IFN-γ誘導(dǎo)巨噬細(xì)胞M1M2極化文獻(xiàn)解讀
- 2024高中地理第六章人類與地理環(huán)境的協(xié)調(diào)發(fā)展第2節(jié)中國的可持續(xù)發(fā)展實踐練習(xí)含解析新人教版必修2
- 2024高中生物第2章動物和人體生命活動的調(diào)節(jié)第1節(jié)通過神經(jīng)系統(tǒng)調(diào)節(jié)課堂演練含解析新人教版必修3
- 2024高中語文第三課神奇的漢字第2節(jié)規(guī)矩方圓-漢字的簡化和規(guī)范訓(xùn)練含解析新人教版選修語言文字應(yīng)用
- 2024高考地理一輪復(fù)習(xí)第八章第2講世界主要農(nóng)業(yè)地域類型教案含解析新人教版
- 2024高考化學(xué)一輪復(fù)習(xí)第4章非金屬及其化合物專題講座二常見氣體的實驗室制備凈化和收集精練含解析
- 北師大版七年級數(shù)學(xué)寒假班講義(基礎(chǔ)班)
- 2025年駕照C1證考試科目一必考題庫770題及答案
- 2023年廣東廣州中醫(yī)藥大學(xué)第三附屬醫(yī)院招聘考試真題
- 老年康養(yǎng)活動策劃方案
- 初三生活學(xué)習(xí)總結(jié)模板
- 2024年新課標(biāo)培訓(xùn)2022年小學(xué)英語新課標(biāo)學(xué)習(xí)培訓(xùn)課件
- 2024年xx村集體資金使用用途四議兩公開專題會議記錄
- 軟件平臺運(yùn)維技術(shù)方案2項目人員配備與人員管理方案
- 2024年道路運(yùn)輸企業(yè)兩類人員安全考核試題庫-下(判斷題)
- 工業(yè)數(shù)字孿生要求
- 固體礦產(chǎn)資源儲量核實報告編寫規(guī)范2
評論
0/150
提交評論