




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、武漢工程大學(xué)實(shí)驗(yàn)報(bào)告專業(yè)班級(jí):網(wǎng)工01姓名: 何彬?qū)W號(hào):1305120411 課程名稱:操作系統(tǒng)實(shí)驗(yàn)成績(jī): 指導(dǎo)教師: 蔡敦波 實(shí)驗(yàn)名稱:進(jìn)程控制與進(jìn)程間通信一、實(shí)驗(yàn)?zāi)康模?、掌握進(jìn)程的概念,明確進(jìn)程和程序的區(qū)別。2、認(rèn)識(shí)和了解并發(fā)執(zhí)行的實(shí)質(zhì)。3、了解什么是信號(hào)。4、熟悉LINUX系統(tǒng)中進(jìn)程之間軟中斷通信的基本原理。二、實(shí)驗(yàn)內(nèi)容:1、進(jìn)程的創(chuàng)建(必做題) 編寫一段程序,使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個(gè)子進(jìn)程,在系統(tǒng)中有一個(gè)父進(jìn)程和兩個(gè)子進(jìn)程活動(dòng)。讓每個(gè)進(jìn)程在屏幕上顯示一個(gè)字符;父進(jìn)程顯示字符“a”,子進(jìn)程分別顯示字符“b” 和“c”。試觀察記錄屏幕上的顯示結(jié)果,并分析原因。<參考程序&
2、gt; 運(yùn)行的結(jié)果是bca. 首先創(chuàng)建進(jìn)程p1,向子進(jìn)程返回0,輸出b.又創(chuàng)建進(jìn)程p2,向子進(jìn)程返回0,輸出c,同時(shí)向父進(jìn)程返回子進(jìn)程的pid,輸出a2、 修改已編寫的程序,將每個(gè)進(jìn)程的輸出由單個(gè)字符改為一句話,再觀察程序執(zhí)行時(shí)屏幕上出現(xiàn)的現(xiàn)象,并分析其原因。(必做題)<參考程序># include<stdio.h> int main() int p1, p2, i; while(p1=fork()= = -1); if(p1= =0) for(i=0;i<500;i+) printf(“child%dn”,i); else while(p2=fork()= =-
3、1); If(p2= =0) for(i=0;i<500;i+) printf(“son%dn”,i); else for(i=0;i<500;i+) printf(“daughter%dn”,i); 運(yùn)行的結(jié)果是如上圖所示. 首先創(chuàng)建進(jìn)程p1,向子進(jìn)程返回0,并for語(yǔ)句循環(huán)輸出child +i字符串.又創(chuàng)建進(jìn)程p2,向子進(jìn)程返回0,輸出字符串son+i,同時(shí)向父進(jìn)程返回子進(jìn)程的pid,輸出字符串duaghter +i ,各打印5次。3、編寫程序創(chuàng)建進(jìn)程樹如圖1和圖2所示,在每個(gè)進(jìn)程中顯示當(dāng)前進(jìn)程識(shí)別碼和父進(jìn)程識(shí)別碼。(選做題)a父進(jìn)程子進(jìn)程圖1 進(jìn)程樹bcdadbce圖2 進(jìn)程
4、樹實(shí)驗(yàn)一代碼及結(jié)果 圖一 進(jìn)程樹實(shí)驗(yàn)結(jié)果及相關(guān)代碼 圖二 進(jìn)程樹實(shí)驗(yàn)結(jié)果及相關(guān)代碼4、編寫一段程序,使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個(gè)子進(jìn)程,再用系統(tǒng)調(diào)用signal( )讓父進(jìn) 程捕捉鍵盤上來(lái)的中斷信號(hào)(即按ctrl+c鍵),當(dāng)捕捉到中斷信號(hào)后,父進(jìn)程用系統(tǒng)調(diào)用kill( )向兩個(gè)子進(jìn)程發(fā)出信號(hào),子進(jìn)程捕捉到信號(hào)后,分別輸出下列信息后終止: Child process 1 is killed by parent!Child process 2 is killed by parent!父進(jìn)程等待兩個(gè)子進(jìn)程終止后,輸出以下信息后終止: Parent process is killed!<參
5、考程序> #include<stdio.h>#include<signal.h>#include<unistd.h>#include<sys/types:.h>#include<sys/wait.h>int wait_mark;void waiting(),stop();void main()int p1, p2;signal(SIGINT,stop);while(p1=fork()=-1);if(p1>0)/*在父進(jìn)程中*/while(p2=fork()=-1); If(p2>0)/*在父進(jìn)程中*/ wait_ma
6、rk=1; waiting(0); kill(p1,10); kill(p2,12); wait( ); wait( ); printf("parent process is killed!n"); exit(0); else/*在子進(jìn)程2中*/ wait_mark=1;signal(12,stop);waiting();lockf(1,1,0);printf("child process 2 is killed by parent!n");lockf(1,0,0);exit(0); else/*在子進(jìn)程1中*/ wait_mark=1; signal(
7、10,stop); waiting(); lockf(1,1,0); printf("child process 1 is killed by parent!n"); lockf(1,0,0); exit(0);void waiting() while(wait_mark!=0);void stop() wait_mark=0;實(shí)驗(yàn)要求:、運(yùn)行程序并分析結(jié)果。中斷后,父進(jìn)程收到子進(jìn)程退出狀態(tài),依次殺死子進(jìn)程2子進(jìn)程1,等待子進(jìn)程完全退出后,殺死父進(jìn)程、如果把signal(SIGINT,stop)放在號(hào)和號(hào)位置,結(jié)果會(huì)怎樣并分析原因。改變signal(SIGINT,stop)
8、的位置后發(fā)現(xiàn),只是殺死了子進(jìn)程2和父進(jìn)程,而子進(jìn)程1沒(méi)有被殺死。是因?yàn)樽舆M(jìn)程1沒(méi)有設(shè)置對(duì)信號(hào)的處理操作,則鍵盤中斷時(shí),仍然無(wú)法將其殺死。、該程序段前面部分用了兩個(gè)wait(0),為什么?wait(0)是為了讓前面的子進(jìn)程完全執(zhí)行完,才可以進(jìn)行下面的操作。、該程序段中每個(gè)進(jìn)程退出時(shí)都用了語(yǔ)句exit(0),為什么? 首先是為了讓進(jìn)程退出,其次是向父進(jìn)程返回退出時(shí)的狀態(tài);5、修改上面的程序,增加語(yǔ)句signal(SIGINT,SIG_IGN)和語(yǔ)句signal(SIGQUIT,SIG_IGN),再觀察程序執(zhí)行時(shí)屏幕上出現(xiàn)的現(xiàn)象,并分析其原因。<參考程序># include<std
9、io.h># include<signal.h># include<unistd.h>main() int pid1, pid2;int EndFlag=0; Pf1=0; Pf2=0;void IntDelete() kill(pid1,10); kill(pid2,12);EndFlag=1;void Int1() printf(“child process 1 is killed by parent !n”); exit(0);void Int2() printf(“child process 2 is killed by parent !n”); exit
10、(0);main() int exitcode; signal(SIGINT,SIG_IGN); signal(SIGQUIT,SIG_IGN);while(pid1=fork()=-1); if(pid=0) signal(SIGUSER1,Int1);signal(SIGQUIT,SIG_IGN);pause();exit(0); else while(pid2=fork()= =-1); if(pid2=0) signal(SIGUSER1,Int1);signal(SIGQUIT,SIG_IGN);pause();exit(0); else signal(SIGINT,IntDelete); waitpid(-1,&exitcode,0); printf(“parent proces
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家居建材配送承包服務(wù)協(xié)議
- 2025年度智能設(shè)備租賃合同中發(fā)票開具、技術(shù)支持及維護(hù)服務(wù)的約定
- 2025年度校地合作框架協(xié)議-現(xiàn)代服務(wù)業(yè)合作開發(fā)合同
- 二零二五年度股東借款給公司長(zhǎng)期投資及收益共享協(xié)議
- 二零二五年度業(yè)主委托物業(yè)公共區(qū)域清潔維護(hù)合同
- 二零二五年度醫(yī)療機(jī)構(gòu)崗位聘用協(xié)議書(臨床醫(yī)學(xué)專業(yè))
- 2025年度新能源項(xiàng)目墊資合作協(xié)議
- 2025年度無(wú)財(cái)產(chǎn)分割協(xié)議及離婚后共同財(cái)產(chǎn)管理協(xié)議
- 二零二五年度新型商業(yè)綜合體門面租賃服務(wù)合同
- 2025年度輔導(dǎo)班知識(shí)產(chǎn)權(quán)與品牌使用權(quán)轉(zhuǎn)讓合同
- 2025年海域使用權(quán)租賃合同
- 四年級(jí)希望杯歷年數(shù)學(xué)競(jìng)賽試題與答案1-13屆+奧數(shù)分類專項(xiàng)練習(xí)集等
- 《走近世界民間美術(shù)》 課件 2024-2025學(xué)年人美版(2024)初中美術(shù)七年級(jí)下冊(cè)
- (2025春)人教版三年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教案
- 河南2025年02月鄭州市公安機(jī)關(guān)公開招考1200名警務(wù)輔助人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年江蘇省高職單招《職測(cè)》高頻必練考試題庫(kù)400題(含答案)
- 河北單招考試三類職業(yè)適應(yīng)性測(cè)試考試題與答案
- 手機(jī)開發(fā)流程圖
- 隊(duì)列隊(duì)形比賽評(píng)分標(biāo)準(zhǔn)
- 生產(chǎn)礦井儲(chǔ)量管理規(guī)程
- 實(shí)木家具工藝標(biāo)準(zhǔn)(全流程)
評(píng)論
0/150
提交評(píng)論