




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、軟 件 學(xué) 院上 機(jī) 實(shí) 驗(yàn) 報(bào) 告課程名稱: 操作系統(tǒng)原理 試驗(yàn)項(xiàng)目: 試驗(yàn)一 Linux環(huán)境下的進(jìn)程管理 實(shí) 驗(yàn) 室: 耘慧402 姓 名: 王欣鴻 學(xué) 號: 1320010724 專業(yè)班級: 軟件13-7 試驗(yàn)時(shí)間: 2015/12/06 試驗(yàn)成果評閱老師一、 試驗(yàn)?zāi)康募耙?.加深對進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)分;2.進(jìn)一步生疏并發(fā)執(zhí)行的實(shí)質(zhì);3.分析進(jìn)程爭用資源的現(xiàn)象,學(xué)習(xí)解決進(jìn)程互斥的方法;4.了解Linux系統(tǒng)中進(jìn)程通信的基本原理。二、 試驗(yàn)性質(zhì)驗(yàn)證性三、 試驗(yàn)學(xué)時(shí) 4學(xué)時(shí)四、 試驗(yàn)環(huán)境 Linux系統(tǒng)開發(fā)環(huán)境五、試驗(yàn)內(nèi)容及步驟1給出試驗(yàn)內(nèi)容具體描述; 1)進(jìn)程的創(chuàng)建 編寫
2、一段程序,使用系統(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。 2)進(jìn)程的把握 修改已編寫的程序,將每個(gè)進(jìn)程輸出一個(gè)字符改為每個(gè)進(jìn)程輸出一句話,再觀看程序執(zhí)行時(shí)屏幕上消滅的現(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變量保
3、存的fork()返回值為子進(jìn)程的id值 -1:創(chuàng)建失敗。 假如fork()調(diào)用成功,它向父進(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)程的副本,稱為子進(jìn)程。子進(jìn)程繼承了父進(jìn)程的很多特新,并具有與父進(jìn)程完全相同的用戶級上文。父進(jìn)程與子進(jìn)程并發(fā)執(zhí)行。 核心為fork()完成以下操作 1)為新進(jìn)程安排一進(jìn)程表項(xiàng)和進(jìn)程標(biāo)識符 進(jìn)入fork()后,核心檢查系統(tǒng)是否有足夠的資源來建立一個(gè)新進(jìn)程。若資源不足,則fork()系統(tǒng)調(diào)用失?。环駝t,核心為新進(jìn)程表項(xiàng)和唯一的進(jìn)程標(biāo)識符。 2)檢查同時(shí)運(yùn)行規(guī)定的最
4、大數(shù)目 超過預(yù)先規(guī)定的最大數(shù)目時(shí),fork()調(diào)用失敗。 3)拷貝進(jìn)程表項(xiàng)中的數(shù)據(jù) 將父進(jìn)程的當(dāng)前名目和全部已打開的數(shù)據(jù)拷貝到子進(jìn)程表項(xiàng)中,并置進(jìn)程的狀態(tài)為“創(chuàng)建”狀態(tài)。 4)子進(jìn)程繼承父進(jìn)程的全部文件 對父進(jìn)程當(dāng)前名目和全部以打開的文件表項(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)識符。 6)子進(jìn)程執(zhí)行 雖然父進(jìn)程與子進(jìn)程程序完全相同,但每個(gè)進(jìn)程都有自己的程序計(jì)數(shù)器PC,然后依據(jù)pid變量保存的fork()返回值的不同,執(zhí)行了不同的分支語句。六、試驗(yàn)數(shù)據(jù)及結(jié)果分析1具體記錄在調(diào)試過程中消滅的問題及解決方法; 程序開頭時(shí)消滅命令使
5、用的錯(cuò)誤,我發(fā)覺是gcc命令遺忘使用-0后綴;然后再次編譯時(shí)發(fā)覺程序報(bào)錯(cuò),認(rèn)真的檢查源代碼發(fā)覺少#號等調(diào)用的頭文件,接下來也遇到類似的錯(cuò)誤,但是都依據(jù)錯(cuò)誤提示一一改正過來。2記錄試驗(yàn)執(zhí)行的結(jié)果(運(yùn)行結(jié)果截圖)。進(jìn)程的創(chuàng)建進(jìn)程的把握七、試驗(yàn)總結(jié)本次試驗(yàn)遇到了很多編譯問題,首先就是gcc環(huán)境的配置問題,通過老師的指導(dǎo),最終完成了換環(huán)境的配置;其次就是在用vim命令打代碼時(shí),這樣的頁面操作便利快捷,深受寬敞linux程序員的寵愛,它獨(dú)特的編譯界面使我對linux環(huán)境下的開發(fā)有所期盼,這使我很古怪linux這種強(qiáng)大的OS是怎么開發(fā)軟件的怎么運(yùn)行軟件為我們供應(yīng)服務(wù)的,然后我自己編寫運(yùn)行了幾個(gè)簡潔的c程序
6、,在命令行下體驗(yàn)了gcc(c語言)的獨(dú)特魅力,同時(shí)也明白了linux操作系統(tǒng)是如何創(chuàng)建進(jìn)程和把握進(jìn)程的,雖然說對linux的進(jìn)程把握的細(xì)節(jié)不是特殊明白,但是通過編寫、運(yùn)行代碼,我對其宏觀上的或者某一部分的進(jìn)程把握有了或許的了解,我還需要連續(xù)看書學(xué)習(xí)它的進(jìn)程把握以至能夠徹底搞清楚它的進(jìn)程調(diào)用原理。附錄 源程序清單1. 進(jìn)程的創(chuàng)建h.c#include<stdio.h> main()int p1,p2;while (p1=fork()=-1);/*chuangjianzijincheng*/if(p1=0)putchar('b');elsewhile(p2=fork()
7、=-1);if(p2=0)putchar('c');elseputchar('a');2. 進(jìn)程的把握i.c#include<stdio.h>main()int p1,p2,i;while(p1=fork()=-1);if(p1=0)for(i=0;i<100;i+)printf("daughter%dt",i);elsewhile(p2=fork()=-1);if(p2=0)for(i=0;i<100;i+)printf("son%dt",i);elsefor(i=0;i<100;i+)printf("parent%dt",i);j.c#include<stdio.h>#include<unistd.h>main()int p1,p2,i;while(p1=fork()=-1);if(p1=0)lockf(1,1,0);for(i=0;i<50;i+)printf("child %dn",i);lockf(1,0,0);elsewhile(p2=fork()=-1);if(p2=0)lockf(1,1,0);for(i=0;i<50;i+)printf(&
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)訂單委托合同協(xié)議
- 2025年餐飲業(yè)用工的勞動(dòng)合同范本
- 2025企業(yè)標(biāo)準(zhǔn)勞動(dòng)合同模板
- 2025年度廣告合作合同模板
- 勞務(wù)派遣合作協(xié)議書5
- 勘察設(shè)計(jì)合同范本
- 2025股權(quán)出質(zhì)合同范本下載
- 個(gè)人代理銷售產(chǎn)品合同
- 2025授權(quán)翻譯合同模板
- 電梯安全管理人員開卷考卷子與答案
- 制冷機(jī)組維保合同標(biāo)準(zhǔn)文本
- 第18課《井岡翠竹》 課件
- 質(zhì)量信譽(yù)考核自評報(bào)告3篇
- 胃腸炎護(hù)理教學(xué)查房
- 護(hù)士站管理制度
- 藥物服用指導(dǎo)與患者教育試題及答案
- (四調(diào))武漢市2025屆高中畢業(yè)生四月調(diào)研考試 英語試卷
- 特種設(shè)備事故壓力容器應(yīng)急預(yù)案演練記錄
- 鐵道概論道岔的結(jié)構(gòu)課件
- 2025-2030中國硫代硫酸銨行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- (一模)2025年撫順市普通高中高三模擬考試地理試卷(含答案)
評論
0/150
提交評論