




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)一進(jìn)程控制一、實(shí)驗(yàn)?zāi)康模杭由顚M(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別;止操作, 體會父進(jìn)程和子進(jìn)程的關(guān)系及進(jìn)程狀態(tài)的變化;掌握 Linux 操作系統(tǒng)的進(jìn)程創(chuàng)建和終進(jìn)一步認(rèn)識并發(fā)執(zhí)行的實(shí)質(zhì),編寫并發(fā)程序。二、實(shí)驗(yàn)平臺:虛擬機(jī): VMWare9 以上操作系統(tǒng): Ubuntu12.04 以上編輯器: Gedit | Vim編譯器: Gcc三、實(shí)驗(yàn)內(nèi)容:( 1)編寫一段程序,使用系統(tǒng)調(diào)用fork() 創(chuàng)建兩個子進(jìn)程,當(dāng)此程序運(yùn)行時,在系統(tǒng)中有一個父進(jìn)程和兩個子進(jìn)程活動。讓每一個進(jìn)程在屏幕上顯示“身份信息” :父進(jìn)程顯示 “Parent process! PID=xxx1 PPID=xxx2 ”;子進(jìn)
2、程顯示“ Childx process! PID=xxx PPID=xxx ”。多運(yùn)行幾次,觀察記錄屏幕上的顯示結(jié)果,并分析原因。說明:xxx1 為進(jìn)程號,用 getpid() 函數(shù)可獲取進(jìn)程號;xxx2 為父進(jìn)程號,用 getppid() 函數(shù)可獲取父進(jìn)程號; Childx 中 x 為 1 和 2,用來區(qū)別兩個子進(jìn)程;wait() 函數(shù)用來避免父進(jìn)程在子進(jìn)程終止之前終止。程序源碼:#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)建進(jìn)程1 失敗 ");elseif(pid1=0)/子進(jìn)程 1 執(zhí)行printf("Child1printf("PID=%dprocess: ");PPID=%d n",getpid(),getppid();sleep(2);elseif(pid2=fork()<0)printf(" 創(chuàng)建進(jìn)程2 失敗 ");elseif(pid2=0)printf("Child2printf("PID=%d/子進(jìn)程 2 執(zhí)行proc
4、ess: ");PPID=%d n",getpid(),getppid();else/父進(jìn)程執(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實(shí)驗(yàn)結(jié)果分析:第一次程序運(yùn)行結(jié)果,兩個子進(jìn)程的PPID都是2525,是由同一個進(jìn)程創(chuàng)建。而父進(jìn)程PID 是 2525,父進(jìn)程PPID 是 2127,說明父進(jìn)程也是一系統(tǒng)進(jìn)程的子進(jìn)程。第二次程序運(yùn)行結(jié)果,父進(jìn)程 PID 是 2528,PPID 是 2127,說明父進(jìn)程是由同一進(jìn)程創(chuàng)建的,父進(jìn)程也是以子進(jìn)程的方式存在,且進(jìn)程ID 是逐漸遞增的。( 2) fork() 和exec()系列函數(shù)能同時運(yùn)行多個程序,利用上述函數(shù)將下面單進(jìn)程順序執(zhí)行的程序 single.c改造成可并發(fā)執(zhí)行 3個進(jìn)程
7、的程序 multi_process.c ;并用 time 命令獲取程序的執(zhí)行時間,比較單進(jìn)程和多進(jìn)程運(yùn)行時間,并分析原因。/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替換為本人學(xué)號return 0;void print_msg(char *m)int i;for(i = 0; i<N
8、UM; i+)printf("%s",m);fflush(stdout);sleep(1);編譯運(yùn)行方法:#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;實(shí)驗(yàn)分析:第二個實(shí)驗(yàn)結(jié)果,
10、 第二個程序的多線程因?yàn)槭遣l(fā)執(zhí)行, 而且是有三個線程,所以在時間上幾乎是單線程的 1/3 ,而且因?yàn)槭遣l(fā)的,所以打印結(jié)果是無序的。實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)首先要明確進(jìn)程和程序的區(qū)別,我通過在Linux 操作系統(tǒng)的進(jìn)程創(chuàng)建和終止操作, 運(yùn)行父進(jìn)程和子進(jìn)程,查看運(yùn)行結(jié)果和進(jìn)程狀態(tài)的變化。實(shí)驗(yàn)過程中也了解了父進(jìn)程與子進(jìn)程的運(yùn)行過程及其機(jī)制。其中專業(yè)理論知識內(nèi)容包括:保安理論知識、消防業(yè)務(wù)知識、職業(yè)道德、法律常識、保安禮儀、救護(hù)知識。作技能訓(xùn)練內(nèi)容包括:崗位操作指引、勤務(wù)技能、消防技能、軍事技能。二培訓(xùn)的及要求培訓(xùn)目的安全生產(chǎn)目標(biāo)責(zé)任書為了進(jìn)一步落實(shí)安全生產(chǎn)責(zé)任制,做到“責(zé)、權(quán)、利”相結(jié)合,根據(jù)我公司20
11、15 年度安全生產(chǎn)目標(biāo)的內(nèi)容,現(xiàn)與財(cái)務(wù)部 簽訂如下安全生產(chǎn)目標(biāo):一、目標(biāo)值:1 、全年人身死亡事故為零,重傷事故為零,輕傷人數(shù)為零。2 、現(xiàn)金安全保管,不發(fā)生盜竊事故。3 、每月足額提取安全生產(chǎn)費(fèi)用,保障安全生產(chǎn)投入資金的到位。4 、安全培訓(xùn)合格率為 100%。二、本單位安全工作上必須做到以下內(nèi)容:1 、對本單位的安全生產(chǎn)負(fù)直接領(lǐng)導(dǎo)責(zé)任,必須模范遵守公司的各項(xiàng)安全管理制度,不發(fā)布與公司安全管理制度相抵觸的指令,嚴(yán)格履行本人的安全職責(zé),確保安全責(zé)任制在本單位全面落實(shí),并全力支持安全工作。2 、保證公司各項(xiàng)安全管理制度和管理辦法在本單位內(nèi)全面實(shí)施,并自覺接受公司安全部門的監(jiān)督和管理。3 、在確保安全的前提下組織生產(chǎn),始終把安全工作放在首位,當(dāng)“安全與交貨期、質(zhì)量”發(fā)生矛盾時,堅(jiān)持安全第一的原則。4 、參加生產(chǎn)碰頭會時,首先匯報(bào)本單位的安全生產(chǎn)情況和安全問題落實(shí)情況;在安排本單位生產(chǎn)任務(wù)時,必須安排安全工作內(nèi)容,并寫入記錄。5 、在公司及政府的安全檢查中杜絕各類違章現(xiàn)象。6 、組織本部門積極參加安全檢查,做到有檢查、有整改,記錄全。7 、以身作則,不違章指揮、不違章操作。對發(fā)現(xiàn)的各類違章現(xiàn)象負(fù)有查禁的責(zé)任,同時要予以查處。8 、虛心接受員工提出的問題,杜絕不接受或盲目指揮;9、發(fā)生事故,應(yīng)立即報(bào)告主管領(lǐng)導(dǎo),按照“四不放過”的原則召開事故分析會,提出整改措施和對責(zé)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 掌握項(xiàng)目管理考試的應(yīng)試技巧試題及答案
- 提升項(xiàng)目管理技能的考試題材試題及答案
- 微生物檢驗(yàn)技術(shù)的質(zhì)量控制機(jī)制試題及答案
- 掌握學(xué)生需求與輔導(dǎo)員考試的策略試題及答案
- 項(xiàng)目執(zhí)行方案提綱范本
- 內(nèi)容整合2025年證券從業(yè)資格證考試試題及答案
- 高校輔導(dǎo)員選拔中的情境模擬考核試題及答案
- 2024年高效微生物檢測技術(shù)試題及答案
- 2024年項(xiàng)目管理考試提分試題及答案
- 墨水生產(chǎn)過程中的質(zhì)量監(jiān)控考核試卷
- 呼吸機(jī)故障應(yīng)急演練
- 輕鋼結(jié)構(gòu)大棚施工組織設(shè)計(jì)方案
- 垃圾分類垃圾箱綠色公益宣傳
- 經(jīng)腋窩無充氣腔鏡甲狀腺手術(shù)
- 145完整版本.現(xiàn)代安全管理的六大管理體系
- 19《牧場之國》第二課時說課稿-2023-2024學(xué)年五年級下冊語文統(tǒng)編版
- (高清版)DBJ52∕T 106-2021 橋梁錨下預(yù)應(yīng)力檢測技術(shù)規(guī)程
- 蜜雪冰城內(nèi)部股權(quán)分配合同
- 《簡單教數(shù)學(xué)》讀后感范文
- 薄膜的形成過程及生長方式課件
- 丁香花培訓(xùn)課件
評論
0/150
提交評論