[OS] Process

4.1 process 基本概念

Process為處理程序

process 的組成

注: Abstract Machine => Virtual Machine

狀態

當單一CPU時,僅能有一個Process在Processor執行

Context Switch

將CPU切換給另一個Process使用,透過中斷處理。

Context Switch發生在當前Process:

中斷方式

  1. save CPU status與一般中斷相同
  2. 執行CPU排程工作
  3. restore CPU status時將預定process狀態放入CPU
  4. 執行process

Process control blcok (PCB)

也稱為Process Descriptor,保存process的相關內容, 一個資料結構保存Process的資料,PID為獨一無二

4.2 Process 排程

CPU Scheduler(Short term scheduler)用於管理ready queue與分派process給CPU

注: fork process時,等待child process terminates才將原process排入ready queue

各種排程器

I/O bound, CPU bound process

情況

4.3 process operating

shell等待直到輸入, shell輸入命令後透過fork產生另外一個shell process, 並且新的process會以預計開啟的程式取代當前process的內容。

處理元功能

System call

fork

process產生新的process,其程式碼與資源相同, 新的process由fork之後繼續執行。

execve

透過預定開啟的程式的process蓋過當前的處理元。

4.4 合作process

可以影響被影響的process之間為cooperating process。

ex: execve產生的process彼此之間為合作process

process 互助的目的

合作處理元範例

Producer and Consumer

Producer 與 Consumer的架構, 由於process為非同步因此中間必須有buffer, 選兩個process找出當中的關係。

buffer透過ring buffer(circuler buffer)處理

注: 由於設備有時間差,為了避免完全填滿或空buffer, 透過經驗法則去決定何時wait,如7分滿或3分滿時。

4.5 Thread

Process (Heavy Weight Process, HWP) 遇到的問題

Thread (Light Weight Process, LWP)

優點:

  1. 執行相同的流程
  2. Context Switch低代價: 可以讓n個function concurrent

特性:

分類

參見

Multithreading Models

補充

4.6 Inter Process Communication

parent process 與 children proces 透過作業系統通訊,處理 process communication, 與Synchronize

透過 IPC System call 處理,並且透過 Two way handshaking 的方式處理, 以同步 Process

Remote Procedure Call

RPC,也可稱為Remote Process Communication,兩個 Process 在不同電腦傳輸通訊, 如網路等。

IPC 也可以以包含RPC來解釋。

類型

實現方法

關於 buffer


  1. 可以參見CTF CRC來了解相關實例 ↩︎


Operating System