




版權(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) 告課程名稱: 操作系統(tǒng)原理 實(shí)驗(yàn)項(xiàng)目: 實(shí)驗(yàn)一 Linux環(huán)境下的進(jìn)程管理 實(shí) 驗(yàn) 室: 耘慧402 姓 名: 王欣鴻 學(xué) 號(hào): 1320010724 專業(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)建 編寫
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)的現(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í)上文。父進(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)用失?。环駝t,核心為新進(jìn)程表項(xiàng)和唯一的進(jìn)程標(biāo)識(shí)符。 2)檢查同時(shí)運(yùn)行規(guī)定的最
4、大數(shù)目 超過(guò)預(yù)先規(guī)定的最大數(shù)目時(shí),fork()調(diào)用失敗。 3)拷貝進(jìn)程表項(xiàng)中的數(shù)據(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)命令使
5、用的錯(cuò)誤,我發(fā)現(xiàn)是gcc命令忘記使用-0后綴;然后再次編譯時(shí)發(fā)現(xiàn)程序報(bào)錯(cuò),仔細(xì)的檢查源代碼發(fā)現(xiàn)少#號(hào)等調(diào)用的頭文件,接下來(lái)也遇到類似的錯(cuò)誤,但是都根據(jù)錯(cuò)誤提示一一改正過(guò)來(lái)。2記錄實(shí)驗(yàn)執(zhí)行的結(jié)果(運(yùn)行結(jié)果截圖)。進(jìn)程的創(chuàng)建進(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ù)的,然后我自己編寫運(yùn)行了幾個(gè)簡(jiǎn)單的c程序
6、,在命令行下體驗(yàn)了gcc(c語(yǔ)言)的獨(dú)特魅力,同時(shí)也明白了linux操作系統(tǒng)是如何創(chuàng)建進(jìn)程和控制進(jìn)程的,雖然說(shuō)對(duì)linux的進(jìn)程控制的細(xì)節(jié)不是特別明白,但是通過(guò)編寫、運(yùn)行代碼,我對(duì)其宏觀上的或者某一部分的進(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+)pr
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- JB/T 20208-2024大蜜丸涼丸機(jī)
- 統(tǒng)編版二年級(jí)語(yǔ)文下冊(cè)期末達(dá)標(biāo)測(cè)試卷(模擬沖刺)(含答案)
- 湖南省岳陽(yáng)市臨湘市2024-2025學(xué)年高三下學(xué)期入學(xué)考試物理試題(含答案)
- 2025年軍隊(duì)文職人員招聘之軍隊(duì)文職政治學(xué)能力提升試卷A卷附答案
- 2023年遼寧省中考地理試卷(含答案)
- 2021-2022學(xué)年廣東省廣州四中教育集團(tuán)七年級(jí)(下)期中數(shù)學(xué)試卷(含答案)
- 護(hù)師房顫考試題及答案
- 2025年法律知識(shí)競(jìng)賽判斷題庫(kù)及答案
- 智能能源管理平臺(tái)開(kāi)發(fā)合作協(xié)議
- 工業(yè)制造業(yè)技術(shù)創(chuàng)新成果展示表
- 部編人教版小學(xué)一年級(jí)道德與法制教案全冊(cè)
- 眼視光行業(yè)現(xiàn)狀及展望
- 幼兒園學(xué)前班春季家長(zhǎng)會(huì)演講稿
- 2024年云南省高等職業(yè)技術(shù)教育招生考試數(shù)學(xué)試題
- 2025-2030年中國(guó)電船行業(yè)運(yùn)行狀況及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)含答案
- 2025年時(shí)事政治考題及參考答案(350題)
- 1.1 青春的邀約 課件 2024-2025學(xué)年七年級(jí)道德與法治下冊(cè)
- 8.4同一直線上二力的合成(課件)2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 《東北風(fēng)俗文化介紹》課件
評(píng)論
0/150
提交評(píng)論