實驗一 進程控制實驗_第1頁
實驗一 進程控制實驗_第2頁
實驗一 進程控制實驗_第3頁
實驗一 進程控制實驗_第4頁
實驗一 進程控制實驗_第5頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、實驗一進程控制一、實驗目的:加深對進程概念的理解,明確進程和程序的區(qū)別;止操作, 體會父進程和子進程的關系及進程狀態(tài)的變化;掌握 Linux 操作系統(tǒng)的進程創(chuàng)建和終進一步認識并發(fā)執(zhí)行的實質(zhì),編寫并發(fā)程序。二、實驗平臺:虛擬機: VMWare9 以上操作系統(tǒng): Ubuntu12.04 以上編輯器: Gedit | Vim編譯器: Gcc三、實驗內(nèi)容:( 1)編寫一段程序,使用系統(tǒng)調(diào)用fork() 創(chuàng)建兩個子進程,當此程序運行時,在系統(tǒng)中有一個父進程和兩個子進程活動。讓每一個進程在屏幕上顯示“身份信息” :父進程顯示 “Parent process! PID=xxx1 PPID=xxx2 ”;子進

2、程顯示“ Childx process! PID=xxx PPID=xxx ”。多運行幾次,觀察記錄屏幕上的顯示結(jié)果,并分析原因。說明:xxx1 為進程號,用 getpid() 函數(shù)可獲取進程號;xxx2 為父進程號,用 getppid() 函數(shù)可獲取父進程號; Childx 中 x 為 1 和 2,用來區(qū)別兩個子進程;wait() 函數(shù)用來避免父進程在子進程終止之前終止。程序源碼:#include<stdio.h>#include<unistd.h>#include<stdlib.h>#define NUM 2int main(void)pid_t pid

3、1,pid2;if(pid1=fork()<0)printf(" 創(chuàng)建進程1 失敗 ");elseif(pid1=0)/子進程 1 執(zhí)行printf("Child1printf("PID=%dprocess: ");PPID=%d n",getpid(),getppid();sleep(2);elseif(pid2=fork()<0)printf(" 創(chuàng)建進程2 失敗 ");elseif(pid2=0)printf("Child2printf("PID=%d/子進程 2 執(zhí)行proc

4、ess: ");PPID=%d n",getpid(),getppid();else/父進程執(zhí)行wait();wait();printf("Parent process: ");printf("PID=%dPPID=%d n",getpid(),getppid();exit(0);執(zhí)行結(jié)果whtcmisswhtcmiss-VirtualBox:/Desktop$ gcc test1.c -o testwhtcmisswhtcmiss-VirtualBox:/Desktop$ ./testChild2process: PID=2527P

5、PID=2525Child1process: PID=2526PPID=2525Parent process: PID=2525PPID=2127whtcmisswhtcmiss-VirtualBox:/Desktop$ ./testChild2process: PID=2530PPID=2528Child1process: PID=2529PPID=2528Parent process: PID=2528PPID=2127whtcmisswhtcmiss-VirtualBox:/Desktop$ ./testChild2process: PID=2533PPID=2531Child1proc

6、ess: PID=2532PPID=2531Parent process: PID=2531PPID=2127實驗結(jié)果分析:第一次程序運行結(jié)果,兩個子進程的PPID都是2525,是由同一個進程創(chuàng)建。而父進程PID 是 2525,父進程PPID 是 2127,說明父進程也是一系統(tǒng)進程的子進程。第二次程序運行結(jié)果,父進程 PID 是 2528,PPID 是 2127,說明父進程是由同一進程創(chuàng)建的,父進程也是以子進程的方式存在,且進程ID 是逐漸遞增的。( 2) fork() 和exec()系列函數(shù)能同時運行多個程序,利用上述函數(shù)將下面單進程順序執(zhí)行的程序 single.c改造成可并發(fā)執(zhí)行 3個進程

7、的程序 multi_process.c ;并用 time 命令獲取程序的執(zhí)行時間,比較單進程和多進程運行時間,并分析原因。/single.c#include <stdio.h>#define NUM 5int main(void)void print_msg(char *m);print_msg("Good ");print_msg("Morning");print_msg("007n");/將007替換為本人學號return 0;void print_msg(char *m)int i;for(i = 0; i<N

8、UM; i+)printf("%s",m);fflush(stdout);sleep(1);編譯運行方法:#gcc single.c o single#time ./single單線程執(zhí)行結(jié)果:多線程代碼:#multi_process.c#include <stdio.h>#include<unistd.h>#include<stdlib.h>#define NUM 5int main(void)pid_t pid3;int i;for(i=1;i<=3;i+)pidi-1=fork();if(pidi-1=0|pidi-1=-1)

9、break;if(pid0=0)execl("print","print","Good",NULL);else if(pid1=0)execl("print","print","Hello",NULL);elseif(pid2=0)execl("print","print","201300814113",NULL);wait();wait();wait();exit(0);return 0;實驗分析:第二個實驗結(jié)果,

10、 第二個程序的多線程因為是并發(fā)執(zhí)行, 而且是有三個線程,所以在時間上幾乎是單線程的 1/3 ,而且因為是并發(fā)的,所以打印結(jié)果是無序的。實驗總結(jié)本次實驗首先要明確進程和程序的區(qū)別,我通過在Linux 操作系統(tǒng)的進程創(chuàng)建和終止操作, 運行父進程和子進程,查看運行結(jié)果和進程狀態(tài)的變化。實驗過程中也了解了父進程與子進程的運行過程及其機制。其中專業(yè)理論知識內(nèi)容包括:保安理論知識、消防業(yè)務知識、職業(yè)道德、法律常識、保安禮儀、救護知識。作技能訓練內(nèi)容包括:崗位操作指引、勤務技能、消防技能、軍事技能。二培訓的及要求培訓目的安全生產(chǎn)目標責任書為了進一步落實安全生產(chǎn)責任制,做到“責、權、利”相結(jié)合,根據(jù)我公司20

11、15 年度安全生產(chǎn)目標的內(nèi)容,現(xiàn)與財務部 簽訂如下安全生產(chǎn)目標:一、目標值:1 、全年人身死亡事故為零,重傷事故為零,輕傷人數(shù)為零。2 、現(xiàn)金安全保管,不發(fā)生盜竊事故。3 、每月足額提取安全生產(chǎn)費用,保障安全生產(chǎn)投入資金的到位。4 、安全培訓合格率為 100%。二、本單位安全工作上必須做到以下內(nèi)容:1 、對本單位的安全生產(chǎn)負直接領導責任,必須模范遵守公司的各項安全管理制度,不發(fā)布與公司安全管理制度相抵觸的指令,嚴格履行本人的安全職責,確保安全責任制在本單位全面落實,并全力支持安全工作。2 、保證公司各項安全管理制度和管理辦法在本單位內(nèi)全面實施,并自覺接受公司安全部門的監(jiān)督和管理。3 、在確保安全的前提下組織生產(chǎn),始終把安全工作放在首位,當“安全與交貨期、質(zhì)量”發(fā)生矛盾時,堅持安全第一的原則。4 、參加生產(chǎn)碰頭會時,首先匯報本單位的安全生產(chǎn)情況和安全問題落實情況;在安排本單位生產(chǎn)任務時,必須安排安全工作內(nèi)容,并寫入記錄。5 、在公司及政府的安全檢查中杜絕各類違章現(xiàn)象。6 、組織本部門積極參加安全檢查,做到有檢查、有整改,記錄全。7 、以身作則,不違章指揮、不違章操作。對發(fā)現(xiàn)的各類違章現(xiàn)象負有查禁的責任,同時要予以查處。8 、虛心接受員工提出的問題,杜絕不接受或盲目指揮;9、發(fā)生事故,應立即報告主管領導,按照“四不放過”的原則召開事故分析會,提出整改措施和對責

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論