四川大學操作系統課程設計第二次shell編程實驗報告_第1頁
四川大學操作系統課程設計第二次shell編程實驗報告_第2頁
四川大學操作系統課程設計第二次shell編程實驗報告_第3頁
四川大學操作系統課程設計第二次shell編程實驗報告_第4頁
四川大學操作系統課程設計第二次shell編程實驗報告_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

實驗報告(學生打印后提交)實驗名稱:shell編程基礎實驗時間:2013年4月26日實驗人員:實驗目的:1.學習使用Linux的系統調用,對進程進行管理和完成進程之間的通信(本實驗中分別是用信號和管道進行進程間通信);2.理解并發程序中的同步問題;3.熟悉使用Linux下的軟件開發工具gcc;4.熟練使用man幫助手冊實驗環境:linux實驗步驟:1.把源文件(程序)拷入Linux系統的一個目錄中2.閱讀關于fork、exec、wait、exit、pipe系統調用的man幫助手冊3.編譯程序fork.c并運行,觀察結果,分析程序。4.試編輯程序pipe.c運行,觀察結果,分析程序。(程序要求及提示見pipe.c源文件)。5.閱讀關于函數sigaction、tcsetpgrp和setpgid的man幫助手冊。6.編譯程序signal.c并運行,觀察結果,分析程序。7.編譯程序process.c并運行,觀察結果,分析程序。8.完成實驗報告。實驗陳述:1、基礎知識:什么是系統調用:系統調用是Linux操作系統核心提供給用戶程序使用的操作系統服務,系統調用主要提供用戶程序對文件進行讀寫,進程的創建,刪除和控制以及數據的輸入/輸出等。簡述fork調用:創建一個新的進程,成為原先進程的子進程,同時子進程擁有和父進程相同代碼段,通過fork的返回值轉向不同的代碼分支的一種函數調用。如何實現進程間的通信:通過管道允許一條命令的標準輸出作為一條命令的標準輸入,同一個系統上的兩個相關的進程可實現相互之間的單向通信(典型情形是父子進程。UNIX進程通信方式還有信號,消息,共享存儲區和信號量。如何實現進程間的連接:信號允許一個進程在某一事件發生時與另一個進程(接收者進程)通信,該進程把事件對應的消息傳遞給接收者進程,接收者進程收到一個信號時,會采取某些相應的動作,這樣便實現了進程間的通信。2、寫出下列函數的原型fork:intfork(void)sigaction:intsigaction(intsignum,conststructsigaction*act,structsigaction*oldact)pipe:intpipe(intfildes[2])tcsetpgrp:inttcsetpgrp(intfildes,pid_tpgid_id)3、運行和觀察結果fork.c簡述程序實現的功能:完成進程創建和執行程序中如何區分父進程和子進程:通過fork的返回值pid的值的大小來區分子進程和父進程,如果pid的值等于0,表明是子進程,如果>0表明是父進程,如果小于0,表明子進程創建失敗。pipe.c簡述程序實現的功能:創建一個管道,把管道的讀和寫文件描述符放到數組fildes中,fildes[0]元素作為管道的讀描述符,fildes[1]元素作為管道的寫描述符。同時重定向到程序中的緩沖,然后用more命令以頁為單位在屏幕上顯示出重定向的內容。實驗總結:1.學會了在Linux虛擬機下掛載U盤。2.通過本次實驗,了解了linux下的軟件開發工

溫馨提示

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

評論

0/150

提交評論