操作系統(tǒng)實驗2——進(jìn)程控制_第1頁
操作系統(tǒng)實驗2——進(jìn)程控制_第2頁
操作系統(tǒng)實驗2——進(jìn)程控制_第3頁
操作系統(tǒng)實驗2——進(jìn)程控制_第4頁
操作系統(tǒng)實驗2——進(jìn)程控制_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、實驗2 進(jìn)程控制一、實驗?zāi)康募由顚M(jìn)程概念的理解,明確進(jìn)程和程序和區(qū)別;進(jìn)一步認(rèn)識并發(fā)執(zhí)行的實質(zhì);分析進(jìn)程爭用資源的現(xiàn)象。二、實驗內(nèi)容1. 熟悉Linux進(jìn)程控制常用命令。2. 輸入進(jìn)程創(chuàng)建、控制的程序并調(diào)試程序。三、實驗預(yù)備知識1. 進(jìn)程控制常用命令(1)ps 命令功能:查看目前的系統(tǒng)中有哪些進(jìn)程,以及它們的執(zhí)行情況。常用命令格式及功能如下:ps 查看系統(tǒng)中屬于自己的進(jìn)程ps au 查看系統(tǒng)中所有用戶的進(jìn)程ps aux 查看系統(tǒng)中包含系統(tǒng)內(nèi)部的及所有用戶的進(jìn)程主要輸出列說明:USER:進(jìn)程所有者的用戶名PID:進(jìn)程號TTY:進(jìn)程從哪個終端啟動TIME:此進(jìn)程所消耗的CPU時間COMMAND:

2、正在執(zhí)行的命令或進(jìn)程名稱(2)top 命令功能:動態(tài)顯示進(jìn)程,實時監(jiān)測進(jìn)程狀態(tài)。與ps命令相似,只是top命令在執(zhí)行后會以指定的時間間隔來刷新顯示信息,以使top所顯示的進(jìn)程狀態(tài)總是當(dāng)前時刻的。(3)kill 命令功能:結(jié)束或終止進(jìn)程。常用命令格式及功能如下:kill 5302 殺死PID為5302的進(jìn)程kill -9 5302 強(qiáng)行殺死PID為5302的進(jìn)程(4)echo $變量名功能:查看外殼變量的設(shè)定值。例:echo $ 顯示當(dāng)前進(jìn)程PID2 常用系統(tǒng)調(diào)用函數(shù)常用系統(tǒng)調(diào)用函數(shù)、程序的說明、參數(shù)及定義如下:(1)fork()函數(shù)功能:創(chuàng)建一個新進(jìn)程函數(shù)格式:int fork()其中返回in

3、t取值意義如下:小于0: 創(chuàng)建失敗0: 創(chuàng)建成功,在子進(jìn)程中返回0值大于0: 創(chuàng)建成功,在父進(jìn)程中返回子進(jìn)程id值-1:創(chuàng)建失?。?)wait()函數(shù)功能:父進(jìn)程等待子進(jìn)程終止,以便對子進(jìn)程進(jìn)行善后處理。函數(shù)格式:int wait(int *statloc)參數(shù)定義:statloc 指出子進(jìn)程終止?fàn)顟B(tài)碼的位置。若不關(guān)心子進(jìn)程的終止?fàn)顟B(tài),可傳遞一個空指針。 返回值:正常返回時,為終止子進(jìn)程的PID;錯誤返回時為-1;其他為0。3. gcc簡介gcc 是 C 編譯器,用來把某程序的源代碼編譯成匯編代碼。假設(shè)我們有下面一個非常簡單的源程序(hello.c):int main(int argc,cha

4、r *argv) printf("Hello Linuxn"); 要編譯這個程序,我們只要在命令行下執(zhí)行: gcc -o hello hello.c-o選項 表示要求輸出的可執(zhí)行文件名。-c選項 表示我們只要求編譯器輸出目標(biāo)代碼,而不必要輸出可執(zhí)行文件。-g選項 表示我們要求編譯器在編譯的時候提供我們以后對程序進(jìn)行調(diào)試的信息。如果需要更詳盡的內(nèi)容,可查閱gcc的幫助。4. 運行程序./ 代表當(dāng)前目錄要運行當(dāng)前目錄下的hello程序,我們只要在命令行下輸入: ./hello四、實驗的環(huán)境與要求1. 裝有Linux操作系統(tǒng)且安裝有g(shù)cc模塊的服務(wù)器一臺。2. 在每臺學(xué)生用計算機(jī)

5、的硬盤中存有文件putty.exe。五、實驗步驟1. 用putty.exe命令登錄Linux操作系統(tǒng)。2. 進(jìn)程控制命令練習(xí)。(1) 顯示當(dāng)前進(jìn)程ID。(2) 列出所有進(jìn)程。(3) 動態(tài)監(jiān)視進(jìn)程狀態(tài)。3. 運行進(jìn)程創(chuàng)建的程序。(1) 用vi編輯器分別輸入以下兩個參考程序:/*程序1:*/#include <stdio.h>int main() int p1,p2; while (p1=fork()=-1); if (p1=0) putchar(b); else while (p2=fork()=-1); if (p2=0)putchar(c);else putchar(a);ret

6、urn 0;/*程序2*/#include <stdio.h>int main() int p1,p2,I; while (p1=fork()=-1); if (p1=0) for (I=0;I<50;I+) printf(“child %dn”,I); else while (p2=fork()=-1); if (p2=0)for (I=0;I<50;I+) printf(“son%dn”,I);else for (I=0;I<50;I+) printf(“daughter %dn”,I); return 0; (2) 調(diào)試運行程序。(3) 記錄實驗結(jié)果并對結(jié)果進(jìn)行思考。4. 寫程序完成如下功能: (1)從命令行接收整數(shù)n;(2)創(chuàng)建子進(jìn)程計算長度為n的Fibonacci數(shù)列并輸出;(3)父進(jìn)程等待子進(jìn)程執(zhí)行完畢之后輸出"Complete!"【附:The Fibonacci sequence is the series of numbers 0, 1,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論