{%hackmd BJrTq20hE %} [<div class="big"><center>`回目錄`</center></div>](https://hackmd.io/@kirk3207/S1vNBbJ8D) <center><div class="title">作業系統CH1 導論</div></center> --- # <center><div class="subtitle">System types</div></center> * <div class="big">Multiprogramming system</div> 定義:==允許多個Process在Memory同時執行== 目的:提高CPU使用率 ※ Multiprogramming degree:待在系統內執行的process數目 * 是非題 (1) Multiprogramming 一定要 Multiprocessors 支持才行 Ans:False, single-cpu 也可以 (2) Multiprogramming 一定要 Multiusers 支持才行 Ans:False, single user 也可以 --- * <div class="big">Time-Sharing system (分時系統)</div> 定義:又叫 Multitasking 強調: 1. Response time要短 2. 對每個 user job 要公平對待 3. 讓每個 user 覺得有自己專屬的電腦 技術:==採 Round-Robin 做 CPU scheduling== --- * <div class="big">Multiprocessors system</div> 定義:又叫 Multiprocessing 或 ==**Tightly-coupled**== system 1. 所有 CPU 均共享此一機器內之 Memory, Bus, IO-Devices, power-supply, etc. 2. 通常,所有 CPU 均受同一 clock 之時脈控制 3. 這些 ==Processors 之間的溝通大都採 "shared memory"== 優點: 1. 產能增加:支持 parallel computing 2. 增加可靠度:萬一某一顆 CPU 壞了還可以正常運作 3. 運算能力之規模擴充比較具有經濟效益 子類型: 1. ASMP (ASymmetric MultiProcessors) → 每個 Processor 所負責的工作能力不盡相同 3. SMP (Symmetric MultiProcessors) --- * <div class="big">Distributed system (分散式系統)</div> 定義:又叫 ==**Loosly-coupled**== system 1. 多部機器彼此以 Network 相互串聯 2. 每部機器內之 CPU 有自己的 Memory, Bus, IO device 3. 各 CPU 之 Clock 控制不一定相同 4. 各 CPU 上之 OS 也不一定相同 5. ==process 之間之溝通採 "message passing"== 建構之理由: 1. 產能增加 2. 可靠性增加 3. 資源分享:支持 client-server system 4. 滿足遠端通訊需求 Note: * P2P 的每個節點既是 client 也是 server --- * <div class="big">Realtime system (即時系統)</div> * Hard Realtime system 定義:必須==保證工作可以在規定時間內完成==,否則失敗 例子:軍事防衛系統、核能安控 * 任何可能影響時間之因素皆須納入考量 →少用或排除造成時間過長或不可預期之設備 ex: virtual memory ∵ page fault 處理時間過長 * 盡量降低 kernel 之介入干預 * 不會和 Time-Sharing system 並存 * Soft Realtime system 定義:確保 realtime process 有最高優先權 例子:Multimedia system, VR, 科學模擬 * 提供 preemptive, prioriy rule * 不提供 aging * 可支持 virtual memory (只要求 realtime process 的 pages 皆須在 memory 中直到完工 <style> div.title { font-size: 35px; } div.subtitle { font-size: 30px; } div.big { font-size: 21px; } </style>