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 ) 的解題方式