實(shí)驗(yàn)一Linux環(huán)境下的進(jìn)程管理組織_第1頁(yè)
實(shí)驗(yàn)一Linux環(huán)境下的進(jìn)程管理組織_第2頁(yè)
實(shí)驗(yàn)一Linux環(huán)境下的進(jìn)程管理組織_第3頁(yè)
實(shí)驗(yàn)一Linux環(huán)境下的進(jìn)程管理組織_第4頁(yè)
實(shí)驗(yàn)一Linux環(huán)境下的進(jìn)程管理組織_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件學(xué)院上機(jī)實(shí)驗(yàn)報(bào)告課程名稱(chēng):操作系統(tǒng)原理實(shí)驗(yàn)項(xiàng)目:實(shí)驗(yàn)一一 Linux環(huán)境卜的進(jìn)程管理實(shí)驗(yàn)室:耘慧402姓名:王欣鴻學(xué)號(hào):1320010724專(zhuān)業(yè)班級(jí):軟件13-7實(shí)驗(yàn)時(shí)間:2015/12/06實(shí)驗(yàn)成績(jī)?cè)u(píng)閱教師一、實(shí)驗(yàn)?zāi)康募耙?. 加深對(duì)進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別;2. 進(jìn)一步認(rèn)識(shí)并發(fā)執(zhí)行的實(shí)質(zhì);3. 分析進(jìn)程爭(zhēng)用資源的現(xiàn)象,學(xué)習(xí)解決進(jìn)程互斥的方法;4. 了解Linux系統(tǒng)中進(jìn)程通信的基本原理。二、實(shí)驗(yàn)性質(zhì)驗(yàn)證性三、實(shí)驗(yàn)學(xué)時(shí)4學(xué)時(shí)四、實(shí)驗(yàn)環(huán)境Linux系統(tǒng)開(kāi)發(fā)環(huán)境五、實(shí)驗(yàn)內(nèi)容及步驟1 給出實(shí)驗(yàn)內(nèi)容具體描述;1) 進(jìn)程的創(chuàng)建編寫(xiě)一段程序,使用系統(tǒng)調(diào)用 fork()創(chuàng)建兩個(gè)子進(jìn)程。當(dāng)

2、此程序運(yùn)行時(shí),在系統(tǒng)中有一個(gè)父進(jìn)程和兩個(gè)子進(jìn)程活動(dòng)。讓每一個(gè)進(jìn)程在屏幕上顯示一個(gè)字符;父進(jìn)程顯示字母子進(jìn)程顯示字母b和c2) 進(jìn)程的控制修改已編寫(xiě)的程序,將每個(gè)進(jìn)程輸出一個(gè)字符改為每個(gè)進(jìn)程輸出一句話,再觀察程 序執(zhí)行時(shí)屏幕上出現(xiàn)的現(xiàn)象。2 用適當(dāng)形式表達(dá)算法設(shè)計(jì)思想及算法實(shí)現(xiàn)步驟。系統(tǒng)調(diào)用:fork()創(chuàng)建一個(gè)新進(jìn)程。系統(tǒng)調(diào)用格式:pid=fork()參數(shù)定義:Int fork()fork()返回值的意義如下:0 :在子進(jìn)程中,pid變量保存的fork()返回值為0,表示當(dāng)前進(jìn)程是子進(jìn)程。0 :在父進(jìn)程中,pid變量保存的fork()返回值為子進(jìn)程的id值-1 :創(chuàng)建失敗。如果fork()調(diào)用

3、成功,它向父進(jìn)程返回子進(jìn)程的pid,并向子進(jìn)程返回0,即fork()被調(diào)用了一次,但返回了兩次。此時(shí)OS在內(nèi)存中建立一個(gè)新進(jìn)程,所建的新進(jìn)程是調(diào)用fork() 父進(jìn)程的副本,稱(chēng)為子進(jìn)程。子進(jìn)程繼承了父進(jìn)程的許多特新,并具有與父進(jìn)程完全相同的 用戶級(jí)上文。父進(jìn)程與子進(jìn)程并發(fā)執(zhí)行。核心為fork()完成以下操作1)為新進(jìn)程分配一進(jìn)程表項(xiàng)和進(jìn)程標(biāo)識(shí)符進(jìn)入fork()后,核心檢查系統(tǒng)是否有足夠的資源來(lái)建立一個(gè)新進(jìn)程。若資源不足,則 fork()系統(tǒng)調(diào)用失??;否則,核心為新進(jìn)程表項(xiàng)和唯一的進(jìn)程標(biāo)識(shí)符。2) 檢查同時(shí)運(yùn)行規(guī)定的最大數(shù)目超過(guò)預(yù)先規(guī)定的最大數(shù)目時(shí),fork()調(diào)用失敗。3) 拷貝進(jìn)程表項(xiàng)中的數(shù)

4、據(jù)將父進(jìn)程的當(dāng)前目錄和所有已打開(kāi)的數(shù)據(jù)拷貝到子進(jìn)程表項(xiàng)中,并置進(jìn)程的狀態(tài)為“創(chuàng)建”狀態(tài)。4) 子進(jìn)程繼承父進(jìn)程的所有文件對(duì)父進(jìn)程當(dāng)前目錄和所有以打開(kāi)的文件表項(xiàng)中的引用計(jì)數(shù)加1.5) 為子進(jìn)程創(chuàng)建進(jìn)程上下文進(jìn)程創(chuàng)建結(jié)束,設(shè)子進(jìn)程狀態(tài)為“內(nèi)存中就緒”并返回子進(jìn)程的標(biāo)識(shí)符。6) 子進(jìn)程執(zhí)行雖然父進(jìn)程與子進(jìn)程程序完全相同,但每個(gè)進(jìn)程都有自己的程序計(jì)數(shù)器 PC,然后根據(jù) pid變量保存的fork()返回值的不同,執(zhí)行了不同的分支語(yǔ)句。六、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析1 詳細(xì)記錄在調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決方法;程序開(kāi)始時(shí)出現(xiàn)命令使用的錯(cuò)誤,我發(fā)現(xiàn)是 gcc命令忘記使用-0后綴;然后再次編 譯時(shí)發(fā)現(xiàn)程序報(bào)錯(cuò),仔細(xì)的

5、檢查源代碼發(fā)現(xiàn)少#號(hào)等調(diào)用的頭文件,接下來(lái)也遇到類(lèi)似的錯(cuò)誤, 但是都根據(jù)錯(cuò)誤提示一一改正過(guò)來(lái)。2 .記錄實(shí)驗(yàn)執(zhí)行的結(jié)果(運(yùn)行結(jié)果截圖)roctst u d ent; T桌面/vv 畔 njian袁件(F)編S(E) 1CV挾素(S)繆端CD幫助(H)rootstudent raoudent 總用毘12誠(chéng)電n jian卅 wenjian #suLs I-rwxr-xr-|t1 root root 200 1運(yùn)月5 2013-rwx r-xr- x.1 root root3201252013-rwxr-xr- x.1 root root33912月52013rootstudent wenjiang

6、cc-o hh.Ch, c 1;錯(cuò)誤:expected -1,i 55t 5l_attnbute_ before 好 kenrootgstudent wenjian vi h, c rootgstudent wenjian # root5tudent wenj ian # h, c: 1:錯(cuò)慎:expected -n, I *, rootstudent wenj ian # vi h. c rootflstudent wenjian gcc -o h, c; 1:錯(cuò)誤;expected rootstudent wenjian # rootfistudent wenjian# root0stud

7、ent wenj ianvi h. c gcc -oh. ch. cb attribute ” before 弋ken* attribute ! before K! kenvi h. cgcc -o Ish.匚rootgstudent wenj ian ba rootfistudent wenj ian進(jìn)程的創(chuàng)建5#F)編S(E)査看撰素(S)線端 稱(chēng)瞅H揚(yáng) tin 14nson 15son 16son 17son 18son 19son 2Qson 21san 22son 23son 24、son 25厲son 26son 27son 28son 23son 30son 31son 32so

8、n 33son 34son 35son 36- More-S#(F)編S(E)撰素繆端(T)稱(chēng)瞅H)daughter29 daughterSO daughterSI daughter32 daughter33 daughter34 daughterSS daughterSG daughters?daughter38 daughter39 daughters daughteMl daughter42 daughter4S daughter44 daughter45 daughter46 daughter!?、daughterlydaughter49son 0son 1son 2son 3son

9、4son 5 son 6 兮on 7 son 8 son 9 son io son 11 son 12進(jìn)程的控制七、實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)遇到了很多編譯問(wèn)題,首先就是gcc環(huán)境的配置問(wèn)題,通過(guò)老師的指導(dǎo),最終完成了換環(huán)境的配置;其次就是在用vim命令打代碼時(shí),這樣的頁(yè)面操作方便快捷,深受廣大linux程序員的喜愛(ài),它獨(dú)特的編譯界面使我對(duì)linux環(huán)境下的開(kāi)發(fā)有所期待,這使我很好 奇linux這種強(qiáng)大的OS是怎么開(kāi)發(fā)軟件的怎么運(yùn)行軟件為我們提供服務(wù)的,然后我自己編寫(xiě)運(yùn)行了幾個(gè)簡(jiǎn)單的c程序,在命令行下體驗(yàn)了 gcc(c語(yǔ)言)的獨(dú)特魅力,同時(shí)也明白了 linux 操作系統(tǒng)是如何創(chuàng)建進(jìn)程和控制進(jìn)程的,雖然說(shuō)

10、對(duì)linux的進(jìn)程控制的細(xì)節(jié)不是特別明白,但是通過(guò)編寫(xiě)、運(yùn)行代碼,我對(duì)其宏觀上的或者某一部分的進(jìn)程控制有了大概的了解,我還 需要繼續(xù)看書(shū)學(xué)習(xí)它的進(jìn)程控制以至能夠徹底搞清楚它的進(jìn)程調(diào)用原理。附錄源程序清單1.進(jìn)程的創(chuàng)建h. c#i ncludemai n()in t p1,p2;while (p1=fork()=-1);/*chua ngjia nziji nche ng*/ if(p仁=0) putchar(b);elsewhile(p2=fork()=-1); if(p2=0)putchar(c); else putchar(a);2.進(jìn)程的控制i. c#i ncludemai n()in

11、t p1,p2,i;while(p 1=fork()=-1);if(p仁=0)for(i=0;i100;i+)prin tf(daughter%dt,i);elsewhile(p2=fork()=-1);if(p2=0)for(i=0;i100;i+)prin tf(so n%dt,i);elsefor(i=0;i100;i+)prin tf(pare nt%dt,i);j. c#i nclude#i ncludev un istd.hmai n()in t p1,p2,i;while(p1=fork()=-1);if(p1=0)Iockf(1,1,0); for(i=0;i50;i+) prin tf(child %dn,i);loc

溫馨提示

  • 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)論