Please enable JavaScript.
Coggle requires JavaScript to display documents.
03作業管理 (概觀 (行程狀態(Process State) (新產生(new), 執行(running), 等待(waiting),…
03作業管理
概觀
行程狀態(Process State)
新產生(new)
執行(running)
等待(waiting)
就绪(ready)
结束(terminated)
行程(The Process)
定義 : 指的是正在執行的程式
含代表目前運作的
程式計數器 (program counter)數值、
處理器(processor)、
暫存器(registers)內容
行程堆疊 (stack)、資料區間(data section)、堆積 (heap)
行程控制表
(Process Control Block /PCB)
定義 : 每一個行程在作業系統之中都對應著一個PCB
功能
CPU排班法則相關資訊(CPU scheduling information):行程的優先順序 (Priorities)、排班佇列(scheduling queue)指標以及其它的排班參數
記憶體管理資訊(Memory-management information):分配給行程的記憶體
帳號資訊(Accounting information):CPU和實際時間的使用數量、時限、帳號工作或行程號碼
CPU暫存器(CPU registers):所有暫存器內容
程式計數器(Program counter):指出行程接著要執行的指令位址
輸入/輸出狀態資訊(I/O status information):配置給行程的輸入/輸出裝置,開啟檔案的串列
行程狀態(Process state):running、waiting...
Process
定義 : 操作系統結構的基礎
特徵
併發性:多個行程可在一段時間運行
獨立性:行程能獨立運行,也是系统分配資源和調度的獨立單位
異步性:行程間相互制约,使行程具有執行的間斷性
動態性 : 多道程序系统中的"一次"執行過程
結構特徵:行程由程序、資料、行程控制塊三部分组成
行程排班(Process Scheduler)
目的
為CPU上執行程式選擇一個可用的行程
排班佇列(Scheduling Queues)
工作佇列(Job queue) : 由系統中所有的行程所組成
就緒佇列 (Ready queue) : 位於主記憶體中且就緒等待執行的行程
等待佇列(Wait queue) : 等待特定裝置或I/O
排班程式(Schedulers)
Short-term Scheduler(or CPU Scheduler):從記憶體中選出一個已經準備就緒的行程,並且將CPU分配給它
Long-term Scheduler(Job Scheduler):從Spooled (行程池)中選出行程並且將它們載入記憶體內以便執行、控制Multiprogramming的深度、選擇良好的程序
Medium-term Scheduler:可以將行程從記憶體中有效地移開(並且從對CPU的競爭中移開)、並減低多元程式規劃的程度(Multiprogramming)
內容轉換(Context Switch)
轉換CPU至另一項行程時,將舊行程的狀態儲存起來,然後再載入新行程的儲存狀態
行程間通訊(Inter-process Communication)
合作行程(Cooperating Process)
資訊共享(Information Sharing) : 提供環境允許使用者能同時使用這些資源
加速運算(Computation Speedup) : 把特定工作分成一些子工作
模組化(Modularity) : 把系統功能分配到數個行程
方便性(Convenience)
可影響或被其他程序影響
共用記憶體(Shared-Memory)
訊息傳遞(Message-Passing)
基本作業 : send、receive
Method
同步或非同步
自動或明確的緩衝作用(Explicit Buffering)
由副本或相關資料發送
直接或間接
固定或可變大小的訊息
命名(Naming)
直接聯繫
(Direct Communication)
基本運算定義
send (P, message) : 傳訊息到行程P
receive (Q, message) : 從行程Q接收訊息
特點
連接是自動生成的
一個連接只能有兩個程序
兩個程序間只能有一個連接
連結是雙向的
缺點 : 限制模組化
間接聯繫
(Indirect Communication)
定義 : 需藉由信箱傳送/接收訊息
基本運算定義
send (A, message) : 傳訊息到信箱A
receive (A, message) : 從A信箱接收訊息
特點
在有信箱的狀況下才成立
可能連接多個程序
每對程序有不同的連接
單向或多向
機制
創造/銷毀 信箱
藉由信箱 傳送/接收訊息
緩衝器(Buffering)
行程交換的訊息是放在一個暫時的佇列
無限制的容量 (Unbounded Capacity) : 佇列具有無限長度的潛力;因此任何訊息能在佇列中等候,傳送者從不阻塞,而且傳送者也不需等候
有限的容量 (Bounded Capacity) : 佇列具有有限長度 n;因此最多有 n 個訊息存於其中
零容量 (Zero Capacity) : 佇列的長度為 0,鏈(Link)中將不含有任何等候的訊息
主從式系統的通訊
(Client-server system)
Socket
通訊的端點(client端+server端)
連接IP位址和Port
通訊存在一對Socket之間
遠端程序呼叫
由client端直接呼叫server端下的程式
中介程式(stub)會將所有的參數包裝起來
兩個程序之間溝通的管道
(Java)遠端方法調用
行程的操作 (Operations on Processes)
定義
系統中的各個行程可以並行地執行,而且也要能動態地產生或刪除,作業系統必須提供行程產生和結束的功能。
行程的產生(Process Creation)
產生行程的系統呼叫
父行程 (Parent Process)、子行程(Children Process)
行程的結束(Process Termination)
終止自己
終止子行程 : 子行程已經使用超過配置的資源數量、不再需要派給子行程的工作
Cascading termination : 父行程結束,而作業系統不允許子行程在父行程結束之後繼續執行
例外狀況
程序終止
自動緩衝
無緩衝
傳送者可能被永遠封鎖 : 通知傳送者狀況
遺失訊息
程序偵錯或重新傳送訊息
通知傳送者
作業系統偵錯或重新傳送訊息