第三天程序(process)概念- | Process 定義
第三天程序(process)概念--上在作業系統中,會需要執行很多的程式(program),在不同的作業系統中,對程式的名稱也會不同,像是在batchsystem是稱為jobs,但是在time_sharedsystem中稱為task或是userprogram。那process是什麼呢?其實process就是一個正在執行的program。而組成一個process要有5個條件:1.programcode(程式碼)2.processcounter(擺放下一個要執行程式的地址)、processorregister3.stack(儲存暫時性資料)4.datasection(儲存跟程式、process相關的資料)5.heap(執行時產生的動態的記憶體空間)說到現在,來區分一下program跟p...
第三天 程序(process)概念--上
在作業系統中,會需要執行很多的程式(program),在不同的作業系統中,對程式的名稱也會不同,像是在batch system 是稱為jobs,但是在time_shared system中稱為task或是user program。
那process是什麼呢?其實process就是一個正在執行的program。而組成一個process要有5個條件:
1.program code(程式碼)2.process counter(擺放下一個要執行程式的地址)、processor register3.stack(儲存暫時性資料)4.data section(儲存跟程式、process相關的資料)5.heap(執行時產生的動態的記憶體空間)
說到現在,來區分一下program跟process:Program是被動的,被存在硬碟中等待執行; process是主動的,一個已經在執行的program。要產生process能透過很多方法,像是點擊滑鼠。而一個程式能夠產生多個process,例如:有很多的使用者都在執行同一段程式。
Process存在著很5種不同的狀態:
New:產生一個process時 Running:正在執行時 Waiting:等待事情的發生 Ready:準備繼續進行 Terminated:執行結束時以下的圖說明5種狀況的關係那這麼多的process要由誰來管理呢?其實每個process自己都有一個PCB(process control box)來存process的資料(process state、program counter、CPU registers、CPU scheduling information、accounting information跟I/O status information),而作業系統會運用PCB來運用process。
CPU在執行時,只能運用一個process,那如果我們需要不同的process支援時,就必須進行環境交換。以下是兩個process進行環境交換的流程(以p0跟p...