




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、軟 件 學 院上 機 實 驗 報 告課程名稱: 操作系統(tǒng)原理 試驗項目: 試驗一 Linux環(huán)境下的進程管理 實 驗 室: 耘慧402 姓 名: 王欣鴻 學 號: 1320010724 專業(yè)班級: 軟件13-7 試驗時間: 2015/12/06 試驗成果評閱老師一、 試驗目的及要求1.加深對進程概念的理解,明確進程和程序的區(qū)分;2.進一步生疏并發(fā)執(zhí)行的實質(zhì);3.分析進程爭用資源的現(xiàn)象,學習解決進程互斥的方法;4.了解Linux系統(tǒng)中進程通信的基本原理。二、 試驗性質(zhì)驗證性三、 試驗學時 4學時四、 試驗環(huán)境 Linux系統(tǒng)開發(fā)環(huán)境五、試驗內(nèi)容及步驟1給出試驗內(nèi)容具體描述; 1)進程的創(chuàng)建 編寫
2、一段程序,使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個子進程。當此程序運行時,在系統(tǒng)中有一個父進程和兩個子進程活動。讓每一個進程在屏幕上顯示一個字符;父進程顯示字母a,子進程顯示字母b和c。 2)進程的把握 修改已編寫的程序,將每個進程輸出一個字符改為每個進程輸出一句話,再觀看程序執(zhí)行時屏幕上消滅的現(xiàn)象。2 用適當形式表達算法設計思想及算法實現(xiàn)步驟。系統(tǒng)調(diào)用: fork() 創(chuàng)建一個新進程。系統(tǒng)調(diào)用格式: pid=fork()參數(shù)定義: Int fork()fork()返回值的意義如下: 0 :在子進程中,pid變量保存的fork()返回值為0,表示當前進程是子進程。 >0:在父進程中,pid變量保
3、存的fork()返回值為子進程的id值 -1:創(chuàng)建失敗。 假如fork()調(diào)用成功,它向父進程返回子進程的pid,并向子進程返回0,即fork()被調(diào)用了一次,但返回了兩次。此時OS在內(nèi)存中建立一個新進程,所建的新進程是調(diào)用fork()父進程的副本,稱為子進程。子進程繼承了父進程的很多特新,并具有與父進程完全相同的用戶級上文。父進程與子進程并發(fā)執(zhí)行。 核心為fork()完成以下操作 1)為新進程安排一進程表項和進程標識符 進入fork()后,核心檢查系統(tǒng)是否有足夠的資源來建立一個新進程。若資源不足,則fork()系統(tǒng)調(diào)用失??;否則,核心為新進程表項和唯一的進程標識符。 2)檢查同時運行規(guī)定的最
4、大數(shù)目 超過預先規(guī)定的最大數(shù)目時,fork()調(diào)用失敗。 3)拷貝進程表項中的數(shù)據(jù) 將父進程的當前名目和全部已打開的數(shù)據(jù)拷貝到子進程表項中,并置進程的狀態(tài)為“創(chuàng)建”狀態(tài)。 4)子進程繼承父進程的全部文件 對父進程當前名目和全部以打開的文件表項中的引用計數(shù)加1. 5)為子進程創(chuàng)建進程上下文 進程創(chuàng)建結(jié)束,設子進程狀態(tài)為“內(nèi)存中就緒”并返回子進程的標識符。 6)子進程執(zhí)行 雖然父進程與子進程程序完全相同,但每個進程都有自己的程序計數(shù)器PC,然后依據(jù)pid變量保存的fork()返回值的不同,執(zhí)行了不同的分支語句。六、試驗數(shù)據(jù)及結(jié)果分析1具體記錄在調(diào)試過程中消滅的問題及解決方法; 程序開頭時消滅命令使
5、用的錯誤,我發(fā)覺是gcc命令遺忘使用-0后綴;然后再次編譯時發(fā)覺程序報錯,認真的檢查源代碼發(fā)覺少#號等調(diào)用的頭文件,接下來也遇到類似的錯誤,但是都依據(jù)錯誤提示一一改正過來。2記錄試驗執(zhí)行的結(jié)果(運行結(jié)果截圖)。進程的創(chuàng)建進程的把握七、試驗總結(jié)本次試驗遇到了很多編譯問題,首先就是gcc環(huán)境的配置問題,通過老師的指導,最終完成了換環(huán)境的配置;其次就是在用vim命令打代碼時,這樣的頁面操作便利快捷,深受寬敞linux程序員的寵愛,它獨特的編譯界面使我對linux環(huán)境下的開發(fā)有所期盼,這使我很古怪linux這種強大的OS是怎么開發(fā)軟件的怎么運行軟件為我們供應服務的,然后我自己編寫運行了幾個簡潔的c程序
6、,在命令行下體驗了gcc(c語言)的獨特魅力,同時也明白了linux操作系統(tǒng)是如何創(chuàng)建進程和把握進程的,雖然說對linux的進程把握的細節(jié)不是特殊明白,但是通過編寫、運行代碼,我對其宏觀上的或者某一部分的進程把握有了或許的了解,我還需要連續(xù)看書學習它的進程把握以至能夠徹底搞清楚它的進程調(diào)用原理。附錄 源程序清單1. 進程的創(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. 進程的把握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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年三叉三軸項目投資價值分析報告
- 2025年尾板項目可行性研究報告
- 深圳制造業(yè)勞動合同合同范本
- 展覽展示設計與施工合同
- 廠房租賃權(quán)交易合同范例
- 醫(yī)療機構(gòu)餐飲服務外包合同書
- 國際獨家代理銷售合同范本
- 房屋租賃合同與設備租賃合同解析
- 船舶買賣合同協(xié)議
- 吊車租賃合同轉(zhuǎn)讓協(xié)議范本
- 2024年錦州醫(yī)科大學醫(yī)療學院基礎醫(yī)學專業(yè)《藥理學》科目期末試卷A有
- 7.1.2 直觀圖的畫法-【中職專用】高一數(shù)學教材配套課件(高教版2021·基礎模塊下冊)
- 零食店食品安全管理制度目錄
- DLT 5434-2021 電力建設工程監(jiān)理規(guī)范表格
- 血液透析患者常見心律失常處理原則與藥物選擇文檔
- 《電子CAD》授課教案
- 高血壓防治措施以及臨床意義
- 校本教材 應用化工技術(shù) 化工儀表及自動化
- HYT 083-2005 海草床生態(tài)監(jiān)測技術(shù)規(guī)程(正式版)
- 漢樂府兩首之《上邪》課件
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設計規(guī)范-PDF解密
評論
0/150
提交評論