---
# System prepended metadata

title: <center><div class="subtitle">System types</div></center>

---

{%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>