Dynamic memory allocation
- 在 Multiprogramming 之下,記憶體內存在有多個 Process 執行,且各個 Process 的
size並不相同,進入系統及完成工作的時間也不盡相同 - OS 採用
“Contiguous Allocation”的方式,依據各個 Process 的大小,找到一塊夠大的連續可用空間,配置給該 Process 使用
size 並不相同,進入系統及完成工作的時間也不盡相同“Contiguous Allocation” 的方式,依據各個 Process 的大小,找到一塊夠大的連續可用空間,配置給該 Process 使用
Def: 決定程式執行的起始位址
Def: 令 G = (V, E) 為一有向圖,其中
V (頂點集合) 可分成兩類:

“•” 表示該資源的數量。E (邊集合)也可分成兩類:


若 Dead Lock Prevention 與 Avoidance 都不用,則系統中可能存在 DeadLock。 ∴ 有必要提供下列機制:
偵測死結是否存在若死結存在,則必須打破死結,恢復正常
優點:
Resource Utilization 較高Throughput 提升缺點:
Cost 太高Dead Lock Detection 與 Dead Lock Recovery 是一體的
當 Process 提出對資源的申請時,O.S. 會根據以下資訊執行銀行家演算法 (Banker’s Algo., 內含 Safety Algo.),來判斷系統在假設 核准申請後是否處於 Safe State。若是,則真的核准其請求;否則否決此次申請,Process 須再等待一段時間,下一次再提出申請。
概念: 打破四個必要條件其中之一,就可以保証死結永不發生。
系統中存在一組 Processes 陷入 “互相等待對方所擁有之資源” 的情況 (即: Circular Waiting) ,造成所有 Processes 皆無法往下執行,使得 CPU 利用度及産能大幅降低。
Example:
Divide and conquer 是一種由上而下 ( top-down ) 的解題方式