linux多進程和進程間通信(共8頁)_第1頁
linux多進程和進程間通信(共8頁)_第2頁
linux多進程和進程間通信(共8頁)_第3頁
linux多進程和進程間通信(共8頁)_第4頁
linux多進程和進程間通信(共8頁)_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上 物聯網學院20 15 / 2016 學年第 1 學期實 驗 報 告 課程名稱: linux編程基礎 實驗名稱: linux多進程和進程間通信 班 級 學 號: 學 生 姓 名: 指 導 教 師 日 期: 20 15 年 12 月實驗六 linux多進程與進程間通信一、 實驗目的熟悉linux系統編程方法熟悉linux常用的系統調用二、 實驗環境PC機一臺安裝虛擬機版的linux操作系統一臺三、 實驗預習熟悉進程創建/線程創建系統調用熟悉進程間通信系統的調用四、 實驗內容Linux fork調用進程間通信系統調用:管道通信五、 實驗步驟編寫一個程序,實現如下功能:創建

2、兩個子進程,父進程向管道中按照順序輸入數字1 2 3 4 5 6,另外兩個子進程分別從管道中按照順序讀出奇數和偶數,及子進程1讀出的數據應該是1 3 5 7 9,而子進程讀出的數據應該是2 4 6 8 10 數據,要求按先讀奇數,再讀偶數的順序進行程序代碼如下:#include<unistd.h>#include<signal.h>#include<stdio.h>#include<stdlib.h>int pid1,pid2; main( ) int fd2,i=0,j=0;char outpipe100,inpipe1100,inpipe21

3、00,outpipe1100;pipe(fd); /*創建一個管道*/while (pid1=fork( )=-1);/*向管道中寫入字符*/lockf(fd1,1,0);sprintf(outpipe,"");write(fd1,outpipe,50);lockf(fd1,0,0);/*-*/*子進程1先讀取管道中所有的字符,再重新把不需要的字符寫入管道*/if(pid1=0) lockf(fd0,1,0);read(fd0,inpipe1,10);for(i=0;i<10;i+)/把不需要的字符寫入管道 if(i%2)outpipe1j=inpipe1i;j+;l

4、ockf(fd1,1,0);write(fd1,outpipe1,5);lockf(fd1,0,0);/寫入結束sleep(5); /*自我阻塞5秒*/ lockf(fd0,0,0); exit(0); /*-*/else /*子進程2從管道中讀取字符*/while(pid2=fork( )=-1); if(pid2=0) lockf(fd0,1,0); /*互斥*/ read(fd0,inpipe2,5); lockf(fd0,0,0); sleep(5);lockf(fd0,0,0);exit(0);/*讀取結束*/ else wait(0); /*同步*/ read(fd0,inpipe2,10); /*從管道中讀長為50字節的串*/ printf("inpipe2 %sn",inpipe2); wait(0); read(fd0,inpipe1,10); printf("inpipe1 %sn",inpipe1); exit(0); 實驗結果如下:六、 實驗思考(1)、多進程與多線程相比,各自的優點和缺點是什么?多進程多線程優點內存隔離,單個進程的異常不會導致整個應用的崩潰。方便調試。提高系統的并行性,并且開銷小。缺點進程間調用,通訊和切換開銷均比多線程大。沒有內存隔離,單個線程的崩潰會導致整個應用過的退

溫馨提示

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

評論

0/150

提交評論