




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《Linux操作系統(tǒng)設(shè)計(jì)實(shí)踐》實(shí)驗(yàn)報(bào)告一學(xué)號:000000000姓名:***(組長)學(xué)院:數(shù)計(jì)學(xué)院專業(yè):年級:09本組其它成員:學(xué)號姓名學(xué)號姓名學(xué)號姓名實(shí)驗(yàn)時(shí)間:2011-2012學(xué)年第一學(xué)期指導(dǎo)教師:《Linux操作系統(tǒng)設(shè)計(jì)實(shí)踐》實(shí)驗(yàn)一:進(jìn)程管理實(shí)驗(yàn)?zāi)康模杭由顚M(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別。進(jìn)一步認(rèn)識并發(fā)執(zhí)行的實(shí)質(zhì)。學(xué)習(xí)通過進(jìn)程執(zhí)行新的目標(biāo)程序的方法。了解Linux系統(tǒng)中進(jìn)程信號處理的基本原理。實(shí)驗(yàn)環(huán)境:RedHatEnterpriseLinux5實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)一進(jìn)程管理(1)進(jìn)程的創(chuàng)建編寫一段程序,使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個(gè)子進(jìn)程。當(dāng)此程序運(yùn)行時(shí),在系統(tǒng)中有一個(gè)父進(jìn)程和兩個(gè)子進(jìn)程活動(dòng)。讓每一個(gè)進(jìn)程在屏幕上顯示一個(gè)字符:父進(jìn)程顯示字符“a”:子進(jìn)程分別顯示“b”和“c”。試觀察記錄屏幕上顯示結(jié)果,并分析原因。#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;}顯示結(jié)果:分析總共可能的結(jié)果有:1.子進(jìn)程全部創(chuàng)建成功:bcabaccabcbaacbabc2.子進(jìn)程一創(chuàng)建失?。篵3.子進(jìn)程二創(chuàng)建失?。篵ccb我的虛擬機(jī)上實(shí)驗(yàn)結(jié)果顯示:bca分析原因:首先,根據(jù)fock()函數(shù)原理,fock()對于該語句之前的程序段只執(zhí)行一次。此外,fock()對于該語句返回兩次值,并針對兩次返回值依次執(zhí)行之后的語句,一般來說fock()是先進(jìn)入子程序執(zhí)行代碼,再執(zhí)行父進(jìn)程代碼。父進(jìn)程與子進(jìn)程的執(zhí)行是相互獨(dú)立的,相互之間沒有任何時(shí)序上的關(guān)系。完全由操作系統(tǒng)的調(diào)度程序來決定進(jìn)城的執(zhí)行次序、速度。所以在沒有加入進(jìn)程同步機(jī)制(比如信號,信號量等)的代碼的情況下,打印結(jié)果是隨機(jī)出現(xiàn)的。在本程序中,對于子進(jìn)程p1,p2和父進(jìn)程,我使用的計(jì)算機(jī)操作系統(tǒng)令p1==0時(shí),打印“b”,再讓p2==0,打印“c”,最后打印“a”,結(jié)果顯示為:bca由于在單機(jī)系統(tǒng)下很難出現(xiàn)因系統(tǒng)資源不足導(dǎo)致的進(jìn)程創(chuàng)建失敗,所以后三種情況很難調(diào)試出來,但是根據(jù)fock()的實(shí)現(xiàn)原理,理論上是完全可能出現(xiàn)的。(2)進(jìn)程的控制1.修改已編寫的程序,將每個(gè)進(jìn)程的輸出由單個(gè)字符改為一句話,再觀察程序執(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;}顯示結(jié)果:本程序是在第一題的源程序基礎(chǔ)上直接編程字符串輸出,與第一題相似,故輸出結(jié)果和第一個(gè)實(shí)驗(yàn)現(xiàn)象一樣,預(yù)測結(jié)果也有9種,這里就不一一例舉了。我的虛擬機(jī)上實(shí)驗(yàn)結(jié)果顯示為:Child1isrunning!Child2isrunning!Fatherisrunning!分析原因:本題的原理與第一小題相同,在本程序中,對于子進(jìn)程p1,p2和父進(jìn)程,我使用的計(jì)算機(jī)操作系統(tǒng)令p1==0時(shí),打?。骸癈hild1isrunning!”,再讓p2==0,打印“Child2isrunning!”,最后打印“Fatherisrunning!”。2.使用exec函數(shù)族使子進(jìn)程執(zhí)行新的目標(biāo)程序。#include<stdio.h>#include<unistd.h>intmain(){ printf("===systemcallexecltesting===\n"); execlp("date","date",0); printf("execerror!\n"); return0;}顯示結(jié)果:我的虛擬機(jī)上實(shí)驗(yàn)結(jié)果顯示為:===systemcallexecltesting===2011年10月29日星期六分析原因:exec函數(shù)使子進(jìn)程執(zhí)行新的目標(biāo)程序。如果調(diào)用成功則執(zhí)行另一個(gè)進(jìn)程,與fock()最大的區(qū)別是一旦exec調(diào)用成功,就不執(zhí)行原來進(jìn)程后面的代碼。即不會(huì)輸出“execerror!”(3.)編寫一段程序,使其實(shí)現(xiàn)進(jìn)程的軟中斷通信[1]使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個(gè)子程序,再用系統(tǒng)調(diào)用signal()接收父進(jìn)程從鍵盤上來的中斷信號(即按Ctrl+c鍵);當(dāng)有中斷信號后,父進(jìn)程用系統(tǒng)調(diào)用Kill()向兩個(gè)子進(jìn)程發(fā)出信號,子進(jìn)程有信號后分別輸出ChildProcessllisKilledbyParent!ChildProcessl2isKilledbyParent!父進(jìn)程等待兩個(gè)子進(jìn)程終止后,輸出如下的信息后終止:ParentprocessisKilled!============================#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);}}}結(jié)果顯示:我的虛擬機(jī)上實(shí)驗(yàn)結(jié)果顯示:ChildProcessllisKilledbyParent!ChildProcessl2isKilledbyParent!ParentProcessisKilled!分析原因:首先對wait函數(shù)進(jìn)行分析,進(jìn)程一旦調(diào)用了wai,就立即阻塞
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 和君職業(yè)學(xué)院《癌癥的生物學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海思博職業(yè)技術(shù)學(xué)院《汽車構(gòu)造(上)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北醫(yī)藥學(xué)院《風(fēng)景園林設(shè)計(jì)實(shí)驗(yàn)古典園林景觀設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 齊齊哈爾理工職業(yè)學(xué)院《礦物加工》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林大學(xué)《數(shù)字插畫》2023-2024學(xué)年第二學(xué)期期末試卷
- 排渣格式合同范本
- 新版統(tǒng)編版七年級下冊歷史課件 第12課 遼宋夏金元時(shí)期經(jīng)濟(jì)的繁榮
- 2025年02月山東淄博市桓臺縣事業(yè)單位公開招聘綜合類崗位人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 圍墻的建設(shè)合同范本
- 租賃房屋裝修合同范本
- 【9語一?!?024年蚌埠市懷遠(yuǎn)縣中考一模語文試題
- 《智能制造技術(shù)基礎(chǔ)》課件-第1章 智能制造技術(shù)概述
- 國網(wǎng)基建安全管理課件
- 10.1.2事件的關(guān)系和運(yùn)算(教學(xué)課件)高一數(shù)學(xué)(人教A版2019必修第二冊)
- 傳統(tǒng)與現(xiàn)代滋補(bǔ)品的營銷變革
- DB37T 5123-2018 預(yù)拌混凝土及砂漿企業(yè)試驗(yàn)室管理規(guī)范
- 陳元方年十一時(shí)課件
- 2024解析:第九章固體壓強(qiáng)-講核心(解析版)
- 《公路養(yǎng)護(hù)安全培訓(xùn)》課件
- 宏觀經(jīng)濟(jì)管理學(xué)
- 高校實(shí)訓(xùn)室安全管理培訓(xùn)課件
評論
0/150
提交評論