下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)號(hào) 201216010506 班級(jí):計(jì)科1201班 姓名: 實(shí)驗(yàn)二進(jìn)程的創(chuàng)建 一、實(shí)驗(yàn)?zāi)康?1、掌握進(jìn)程的概念,明確進(jìn)程的含義 2、認(rèn)識(shí)并了解并發(fā)執(zhí)行的實(shí)質(zhì) 二、實(shí)驗(yàn)內(nèi)容 1、編寫(xiě)一段程序,使用系統(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。試觀(guān)察記錄屏幕上的顯示結(jié)果,并分析原因。 ubuntuubuntu 二 - / ri utpuntkjuthvjnt-u 二- / ri ubun t_kjg)kjbur* Lu 二 #e t_kl$)kjbUVYt_J 二 #E
2、上 7 LjbutJ 二#E n.ou 化calIc.U iFfebfjhLjrrLj0uhuntLj ; AcbubuntLjubuntLj iadubi_intLjubuntu 二 / QU / / / 1_ 口 0 “ rr r kkk L Q :c A 廠(chǎng) u_u kk 0 / - -kkk Lj-r 總 _ out 刊 _ out 對(duì)于輸出結(jié)果,abc, acb等都有可能,從進(jìn)程并發(fā)執(zhí)行來(lái)看,各種情況都有可能,所以父 進(jìn)程與紫金城的輸出內(nèi)容會(huì)疊加在一起,輸出次序帶有隨機(jī)性。 daughter 及son 2、修改上述程序,每一個(gè)進(jìn)程循環(huán)顯示一句話(huà)。子進(jìn)程顯示 父進(jìn)程顯示P are nt
3、,觀(guān)察結(jié)果,分析原因。 由于函數(shù)printf()在輸出字符串時(shí)不會(huì)被中斷,因此,字符串內(nèi)部字符順序輸出不變。但由 于進(jìn)程并發(fā)執(zhí)行的調(diào)度順序和父子進(jìn)程搶占處理機(jī)問(wèn)題,輸出字符串的順序和先后隨著執(zhí)行 的不同而發(fā)生變化,這與打印單字符的結(jié)果相同。 OG ubuntu(ubuntu: */fork1 parent parent parent parent parent parent parent a.out forklc ubuntuubuntu:-/forkl$ /a.out parent 0 daughter 6 1 2 3 4 5 6 7 3 4 5 6 7 8 9 daughter 1 par
4、ent 8 daughter 2 parent 9 daughter daughter daughter daughter daughter daughter daughter son 0 son 1 oo ubuntu(Wubuntu: */fork1 son 9 ubuntuubuntu:/fokl$ ./a.out parent 0 parent 1 parent 2 son 0 parent 3 parent 4 parent 5 parent 6 parent 7 parent 8 parent 9 daughter 0 son 1 son 2 daughter 1 son 3 da
5、ughter 2 son 4 daughter 3 son 5 daughter 4 son 6 三、實(shí)驗(yàn)準(zhǔn)備 (1) 閱讀LINUX的fork.c源碼文件,分析進(jìn)程的創(chuàng)建過(guò)程。 (2) 閱讀LINUX的sched.c源碼文件,加深對(duì)進(jìn)程管理概念的認(rèn)識(shí)。 四、思考 (1) 系統(tǒng)是怎樣創(chuàng)建進(jìn)程? linux系統(tǒng)創(chuàng)建進(jìn)程都是用fork() 系統(tǒng)調(diào)用創(chuàng)建子進(jìn)程由fork() 系統(tǒng)調(diào)用創(chuàng)建的新進(jìn) 程被稱(chēng)為子進(jìn)程。該函數(shù)被調(diào)用一次,但返回兩次。如果 fork()進(jìn)程調(diào)用成功,兩次返回 的區(qū)別是子進(jìn)程的返回值是新子進(jìn)程的進(jìn)程號(hào) (2) 可執(zhí)行文件加載時(shí)進(jìn)行了哪些處理? 當(dāng)操作系統(tǒng)裝載一個(gè)可執(zhí)行文件的時(shí)候,
6、首先操作系統(tǒng)判斷該文件是否是一個(gè)合法的可執(zhí) 行文件。如果是,操作系統(tǒng)將按照段表中的指示為可執(zhí)行程序分配地址空間。 (3)當(dāng)首次調(diào)用新創(chuàng)建的進(jìn)程時(shí),其入口在哪里? fork系統(tǒng)調(diào)用創(chuàng)建的子進(jìn)程繼承了原進(jìn)程的con text,也就是說(shuō)fork調(diào)用成功后,子進(jìn)程 與父進(jìn)程并發(fā)執(zhí)行相同的代碼。但由于子進(jìn)程也繼承了父進(jìn)程的程序指針,所以子進(jìn)程是從 fork ()后的語(yǔ)句開(kāi)始執(zhí)行(也就是新進(jìn)程調(diào)用的入口 )。另外fork在子進(jìn)程和父進(jìn)程中的返 回值是不同的。在父進(jìn)程中返回子進(jìn)程的PID,而在子進(jìn)程中返回 五、參考程序 1、 #i nclude mai n() int p1, p2; while( p仁fork( ) = -1); if (p1= 0)p utchar(b); else while( p2 = fork( ) = -1); if(p2 = 0) p utchar(c); else pu tchar(a); 2、 #in clude /*創(chuàng)建子進(jìn)程P1*/ /*創(chuàng)建子進(jìn)程p2*/ mai n() int p1, p2,i; while( p1 = fork( ) = -1); if (p1 = 0) for(i = 0;i10;i+) prin tf(daughter%dn ”,i); else /*創(chuàng)建子進(jìn)程p1*/ /* 創(chuàng)建子進(jìn)程 p2*/ while(p2 =
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石材供應(yīng)購(gòu)銷(xiāo)合同
- 食品材料采購(gòu)合同書(shū)
- 酒駕者自律書(shū)
- 智能化濕地監(jiān)控系統(tǒng)招標(biāo)
- 花卉育苗合作方案
- 巖棉板采購(gòu)合同示例
- 青春守護(hù)堅(jiān)守底線(xiàn)抵制早戀
- 代理合同補(bǔ)充協(xié)議要點(diǎn)
- 簡(jiǎn)易分包合同勞務(wù)部分
- 催辦房屋買(mǎi)賣(mài)合同辦理事宜
- 老年人睡眠障礙的護(hù)理(PPT課件)
- 會(huì)陰阻滯麻醉完整版PPT課件
- 《家庭禮儀》PPT課件
- 應(yīng)聘人員面試登記表(應(yīng)聘者填寫(xiě))
- T∕CAAA 005-2018 青貯飼料 全株玉米
- s鐵路預(yù)應(yīng)力混凝土連續(xù)梁(鋼構(gòu))懸臂澆筑施工技術(shù)指南
- 撥叉831006設(shè)計(jì)說(shuō)明書(shū)
- 程序語(yǔ)言課程設(shè)計(jì)任意兩個(gè)高次多項(xiàng)式的加法和乘法運(yùn)算
- 石油鉆井八大系統(tǒng)ppt課件
- 北師大版二年級(jí)數(shù)學(xué)上冊(cè)期末考試復(fù)習(xí)計(jì)劃
- 人教PEP版六年級(jí)英語(yǔ)上冊(cè)《Unit4_B_Let’s_learn教學(xué)設(shè)計(jì)》
評(píng)論
0/150
提交評(píng)論