10
PROCESS MANAGEMENT( 程程程程 ) Computer Science & Information Management

Process management( 程序管理 )

  • Upload
    rosina

  • View
    40

  • Download
    3

Embed Size (px)

DESCRIPTION

Computer Science & Information Management. Process management( 程序管理 ). 程式與程序. 「執行一個程式或指令」就可以 『 觸發 』 事件而取得 PID 。. 程式與程序. 程式 (program) :通常為 binary program ,放置在儲存媒體中 ( 如硬碟、光碟、軟碟、磁帶等 ) 。 - PowerPoint PPT Presentation

Citation preview

Page 1: Process management( 程序管理 )

PROCESS MANAGEMENT(程序管理 )

Computer Science & Information Management

Page 2: Process management( 程序管理 )

程式與程序

「執行一個程式或指令」就可以『觸發』事件而取得 PID 。

Page 3: Process management( 程序管理 )

程式與程序

程式 (program) :通常為 binary program ,放置在儲存媒體中 ( 如硬碟、光碟、軟碟、磁帶等 ) 。

程序 (process) :程式被觸發後,執行者的權限與屬性、程式的程式碼與所需資料等都會被載入記憶體中, 作業系統並給予這個記憶體內的單元一個識別碼 (PID) ,可以說,程序就是一個正在運作中的程式。

Page 4: Process management( 程序管理 )

查看 process 狀態

指令 ps 可查看 process 狀態 ps –l 可查看更進階的狀態內容。 ( 如父程

序 )

Page 5: Process management( 程序管理 )

process 專用函式

函式 用途getpid() 取得 pid

getppid() 取得父程序 (parent) 的 pid

fork() 產生子程序 (child)

Page 6: Process management( 程序管理 )

練習

撰寫 p1.c 程式,印出執行程式的 pid 以及父程序 pid(ppid) 。

#include<stdio.h>main(){

printf(“PID: %d, PPID: %d”, , );

} 編譯: gcc p1.c (-o 檔名 ) 執行: a.out ( 執行檔檔名 )

Page 7: Process management( 程序管理 )

產生子程序 (child process)

Unix 啟動時剛開始只有一個程序 (init) ,其 pid 為 1 。

使用 fork 指令可以產生子程序

Parent, init (PID 1)

Child 1 (PID=4) Child 2 (PID=5) Child 3 (PID=6)

Page 8: Process management( 程序管理 )

產生子程序 (child process)

fork 重製一份程序 (process) 當 fork 執行成功

回傳子程序 (child) 的 PID 給父程序 (parent) 。 回傳數值 0給子程序 (child) 。

Page 9: Process management( 程序管理 )

練習

撰寫 p2.c 程式並在程式中 fork 出子程序。 利用 if 判斷該程序為 parent 或 child ,

並印出其 pid 。#include<stdio.h>main(){

printf(“PID: %d”, getpid()); int child = fork(); if(…)}

Page 10: Process management( 程序管理 )

process 排程

若有兩個以上的程序 (parent, child) 在執行,且皆會使用大量的電腦資源 (CPU 運算、 IO) 。則電腦會按照作業系統的排程法則來運作。

試撰寫大量迴圈運算,並利用父子程序搶奪資源,查看執行狀態。