




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式課程設計課程名稱 嵌入式系統(tǒng)設計與實踐 授課學期 2016 學年至 2017 學年 第 一 學期學院 XX 專 業(yè) XX 學號 XX 姓名 XX 專 題嵌入式系統(tǒng)設計與實踐 任課教師 XX 交稿日期 2017年01月11日 成績 閱讀教師簽名 日 期 廣西師范大學電子工程學院制1、實驗目的通過編寫多進程程序,使讀者熟悉掌握 fork()、exec()、wait()和 waitpid()等函數(shù)的使用,進一步理解在 Linux 中多進程編程的步驟。2、實驗內容該實驗有4個進程,其中一個為父進程,其余3個是該父進程創(chuàng)建的子進程,其中第一個子進程運行“l(fā)s -l”指令,第二個子進程暫停3s后運行
2、“ps -ef”指令,第三個子進程在暫停7s之后異常退出,父進程先用阻塞方式等待第一個子進程的結束,并打印第一個子進程退出信息;然后再用阻塞方式等待第二個子進程的結束,并打印第二個子進程退出信息;最后用非阻塞方式等待第三個子進程的退出,待收集到第三個子進程結束的信息,打印第三個子進程退出的信息后,父進程就返回。本實驗需要打開 1 個虛擬終端運行程序 multie_proc_1657。此時觀察這個進程的運行結果。本次實驗運行的系統(tǒng)平臺是Ubuntu-12.04。3、實驗步驟(1)使用 visio 軟件畫出實驗流程圖;圖 1 實驗流程圖(2)使用 visio 軟件畫出父進程繁衍子進程的流程圖;圖2
3、 繁衍子進程流程圖(3)啟動虛擬機中的Linux 操作系統(tǒng),使用root 用戶登錄系統(tǒng),使用圖形界面模式。打開終端,新建一個以自己的學號建立的用戶名(以下簡稱為student1657)。 圖3 添加用戶student1657(4)在/home/student1657目錄下創(chuàng)建名為2016011657的文件夾。創(chuàng)建一個權限可讀寫的 multie_proc_1657.c 文件;a. 創(chuàng)建2016011657文件夾。圖4 創(chuàng)建學號文件夾b. 創(chuàng)建multie_proc_1657.c文件,并更改權限為可讀可寫可執(zhí)行圖5(1) 創(chuàng)建C文件和更改權限原先是修改為可讀可寫可執(zhí)行,后期按要求再次修改權限為可讀
4、可寫圖5(2) 按要求修改的權限c. 編寫multie_proc_1657.c程序圖6 編寫程序(5)以 vi 作為編輯器,編寫關于上述程序的 Makefile 文件,編寫完后通過make 工具編譯生成 1 個名為 multie_proc_1657 的目標文件;a. 創(chuàng)建Makefile文件圖7 創(chuàng)建Makefile文件b. 編寫生成Makefile文件圖8 編寫Makefile文件圖9 查看Makefile文件c. 執(zhí)行make 命令圖 10 執(zhí)行make 命令(6)打開虛擬終端運行程序 multie_proc_1657;圖 11 運行程序圖 12(1) 運行結果圖 12(2) 運行結果 圖
5、 12(3) 運行結果圖 12(4) 運行結果(7)觀察終端中顯示的輸出結果,并給出詳細的解釋。從實驗結果來看,首先父進程先創(chuàng)建三個子進程,三個子進程分別完成不同的工作任務,三個子進程創(chuàng)建成功后,返回值是0,且生成各自的進程號,后面通過進程號判斷是哪個進程退出了并打印退出信息,三個子進程幾乎是同時創(chuàng)建的,子進程1執(zhí)行“l(fā)s -l”命令,子進程2暫停3s 后運行“ps -ef”命令,子進程3暫停7s之后異常退出。父進程是阻塞方式等待進程1和進程2的,當子進程1正常運行結束返回值是子進程1的進程號,由此“child = child1”,打印子進程1退出信息“get child1 exit code
6、”。同理,子進程2在正常運行結束返回值是子進程2的進程號,由此“child = child2”,打印子進程2退出信息“get child2 exit code”。另外,父進程是以非阻塞方式等待子進程3結束的,返回值是0,由此“child = 0”,打印“the child3 process has not exited!”,這里設置了每1秒看子進程3是否結束,子進程3是暫停7秒后異常退出,結果是打印了4次“the child3 process has not exited!”,原因是三個子進程幾乎是同時創(chuàng)建的,在子進程2中已經暫停 3s,剩下4秒,每一秒打印一次“the child3 process has
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車棚制作合同范本
- 4-Biphenylthio-carboxamide-生命科學試劑-MCE
- 銷售模具合同范本
- 孝感合同范本咨詢
- 2025年貴金屬化合物相關基礎化學品合作協(xié)議書
- 2025年多級飄塵采樣計合作協(xié)議書
- 訴訟保全擔保承諾協(xié)議書(2篇)
- 2025年BN-TIB2導電復合陶瓷制品合作協(xié)議書
- 秸稈科研報告范文
- 教學類實踐調研報告范文
- 風機基礎監(jiān)理實施細則
- GB/T 24503-2024礦用圓環(huán)鏈驅動鏈輪
- 人教版(2024)英語七年級上冊單詞表
- 膿毒血癥患者的護理查房
- 廣東省廣州仲元中學2025年高三下學期入學考試試化學試題文試卷含解析
- 4《海燕》公開課一等獎創(chuàng)新教學設計
- 2022年全國職業(yè)院校技能大賽賽項-ZZ-2022039戲曲表演賽項基礎知識試題答案(70公開題)
- 中國高血壓防治指南(2024年修訂版)核心要點解讀
- T-CERS 0007-2020 110 kV及以下變電站 并聯(lián)型直流電源系統(tǒng)技術規(guī)范
- 金屬焊接和切割作業(yè)教案
- 定制公司用工合同范本
評論
0/150
提交評論