# Mainframe Systems 大型電腦系統
世界最早電腦之一,擁有很大的體積
- I/O 慢、做的事情單一
- 提供較好的可靠性與安全性。
- 以下列的順序做進展:
- Batch 批次處理
- Multi-programming 多元程式系統
- Time-sharing 分時處理系統
# Batch 批次處理
- 運作方式:
- 電腦管理者 (operator) 必須親自決定執行順序
- 作業系統的角色很單純,只需要在一個工作完成後,切換到下一個工作
- 沒有複雜的排程或互動機制
- 特點:
- 一次只能處理一個程式
- 使用者在程式執行過程中無法做任何改變
- 適合單純、固定的工作流程,例如大量資料的批次計算
- 缺點:
- 沒有互動性:使用者只能等待程式執行完成,不能即時操作或修改
- I/O 非常慢:在早期電腦中,輸入輸出速度遠比 CPU 慢很多,造成 CPU 常常閒置而浪費資源

# Multi-programming 多元程式系統
在系統中同時放入多個程式,讓 CPU 與 I/O 可以 重疊 (overlap) 使用。
- 特點:
- 多個程式同時被 載入主記憶體 (main memory)
- 作業系統負責在程式之間切換,避免 CPU 因 I/O 延遲而浪費時間
- 優點:
- 減少 CPU 在 I/O 上的等待
- 提高系統整體效率,讓 CPU 專注在計算工作
- 缺點:
# Spooling (simultaneous peripheral operations on-line)
- 定義
一種 I/O 管理技術,讓 外部裝置的輸入輸出工作可以自動完成,不需要 CPU 全程干預。CPU 只需在 I/O 完成時被通知即可。常見於印表機、磁碟等裝置的排程- OS 的任務
1.Memory Management
2.CPU Scheduling
3.Job Management
4.I/O Management
印表機範例:
- 當有很多筆資料要交給印表機輸出時,CPU 會先把待印資料清單放到磁碟上的一個表格
- 印表機印完一筆資料後,會直接到表格中讀取下一筆,不需要 CPU 介入
- CPU 在放好清單後,就可以繼續做其他計算,而 I/O 也能持續執行
# 簡單比喻
可以把 Spooling 想成「餐廳點餐系統」:
- 顧客 (CPU) 把菜單 (待印清單) 交給廚房 (磁碟 buffer)
- 廚房 (I/O 裝置) 依照菜單一個一個完成,不需要顧客一直盯著
顧客交完菜單後就能去做別的事,等菜完成再被通知
# Time-sharing 分時處理系統
Time-sharing 是作業系統的一個重要演進階段,目的是讓多個使用者能同時與系統互動
- 特點:
- CPU 會不斷在不同程式之間快速切換
- 使用者能即時看到執行結果,感覺就像自己獨占電腦
- 支援多使用者同時操作,提升系統的互動性
# OS 的主要任務
- 虛擬記憶體 (Virtual Memory)
把 disk 當作 memory 解決 memory 不夠大到放下所有程式的問題 - 檔案系統與磁碟管理
提供多使用者同時存取檔案的能力 - 同步化 (Synchronization)、死結 (Deadlock)
當多個程式同時存取共享資源時,若同時修改可能導致資料不一致
# Mainframe System Summary
| - | Batch System | Multi-programming System | Time-sharing System |
|---|---|---|---|
| System Model | 單一使用者,單一工作 | 單一使用者,多重工作 | 多重使用者,多重工作 |
| Purpose | 提高 I/O 裝置使用率 | 提高 CPU 使用率 | 提供互動式使用者介面 |
| OS features | 簡單的工作排程 | 記憶體管理,CPU 排程 | 虛擬記憶體,檔案系統,同步化 |
# Computer-system architecture
# Desktop Systems: single processor
通常是單處理器電腦,不像大型主機或伺服器有多處理器架構,主要設計目標是提供個人使用者日常運算需求
- PC (Personal Computers)
桌面系統就是個人電腦 (PC),只給一位使用者使用 - GUI (Graphical User Interface)
- 強調使用者便利性與即時回應
- 提供圖形化介面 (GUI) 讓使用者能直覺操作,例如視窗、圖示、滑鼠點擊
- 相較於早期的命令列介面,大幅提升了易用性
- I/O Devices
支援多種輸入輸出裝置:鍵盤、滑鼠、顯示器、印表機、音效卡、網路卡等。作業系統必須管理這些裝置,確保使用者能即時互動。 - 常見作業系統
- Windows:最普及的桌面 OS,強調 GUI 與應用程式支援
- MacOS:蘋果電腦專用,設計美觀、整合度高
- Unix/Linux:雖然起源於多使用者系統,但也有桌面版本,提供彈性與開放性

# Parallel Systems: tightly coupled
又稱為 Multiprocessor or tightly coupled system
多個 CPU 緊密連接在一起,共用同一個主記憶體 (shared memory),這種架構強調 CPU 之間的協作與資源共享
- 目的與優點
- Throughput:提升整體計算量,增加系統效能
- Economical:多個 CPU 可共用記憶體、I/O 裝置、主機板,降低成本
- Reliability:若其中一個 CPU 故障,其他 CPU 仍能繼續工作,系統不會完全停擺
- 幾乎所有現代系統都是這種架構
# Symmetric multiprocessor system (SMP)
- 每個 CPU 地位平等:所有處理器都能直接執行程式,沒有「Master CPU」需要專門管理
- 同一個 OS 控制:作業系統統一管理所有核心,行程可以在不同核心之間自由移動
- 我們日常使用的 PC、伺服器,幾乎都是 SMP 架構。
- 因為多個 CPU 同時存取共享資源,必須進行大量的同步化 (synchronization)
- 目的在於保持資料的一致性與完整性
- 同步化會帶來額外的 overhead
# Asymmetric multiprocessor system (AMP)
- 有一個 Master CPU,專門負責管理其他 CPU
- Master CPU 不參與計算,只負責分派工作
- 其他 CPU 專注於計算,因此可以擴充更多核心
- 常見於超級電腦或需要大量計算的系統
# Multi-Core Processor
- 在 單一 CPU 晶片中整合多個核心 (Core)
- 每個核心都能獨立執行程式,提升效能
- 同一塊晶片內溝通,並行處理能力佳
- 節省空間與功耗
- 幾乎所有現代 PC、筆電、手機都使用多核心處理器

# Many-Core Processor
- 指擁有 數十到上千個核心的處理器,常用於 高效能計算 (HPC) 或 圖形處理 (GPGPU)
- 採用 SIMD (Single Instruction Multiple Data) 操作:同一指令同時處理大量資料
- 代表例子
- Intel Xeon Phi:專為 HPC 設計的多核心協處理器
- TILE64:64 核心處理器,用於高效能嵌入式系統
- GPGPU:圖形處理器 (GPU) 用於通用計算,上千核心並行

# Memory Access Architecture
# 1. UMA (Uniform Memory Access)
- 每個 CPU 存取記憶體的速度相同
- 使用者不需要在乎程式在哪個 CPU 上執行
缺點:當 CPU 數量增加時,記憶體可能成為 瓶頸 (bottleneck)

# 2. NUMA (Non-Uniform Memory Access)
- 每個 CPU 存取記憶體的速度不同,取決於記憶體的「距離」
- 採用 階層式架構 (hierarchy),能建構更大型的系統
- 幾乎所有 高效能計算系統 (HPC) 都採用 NUMA
![]()
# Distributed Systems: loosely coupled
- 須符合兩個條件
- 硬體上每台電腦都是自主的
- 軟體上用戶將整個系統看做是一臺電腦
- 優點
- 資源共享 (Resource Sharing)
- 加快計算速度 (Speed Up)
- 可靠性 (Reliability)
- 通訊需求 (Communication Need)
一般分為兩類,分別是 Client-Server System 和 Peer-to-peer。
# Client-Server
- 資源集中在 Server,Client 負責請求服務
- 管理與控制資源方便
- 缺點:Server 可能成為 瓶頸 (bottleneck) 或 單一失敗點 (single failure point)
- 例子:FTP (檔案傳輸協定)
# Peer-to-Peer (P2P)
- Decentralized:每個系統的角色相同,沒有固定的 Server
- 所有節點都能同時是 Client 也是 Server
- 例子:ppStream、BitTorrent、Internet
# Clustered Systems
- 共享儲存,用 Local Area Network (LAN) 去連接
- 通常會有一個 node 作為入口,對外提供 IP,外部使用者必須先連到這個節點,才能進入內部網路
- Asymmetric clustering:一台 server 負責執行應用程式,其他節點處於 standby 狀態。只有在主要 server 故障時才接手。
- Symmetric clustering:多個 host 同時執行應用程式。節點之間會 互相監視,確保系統穩定
# Special-purpose Systems
# Real-Time Operating Systems
一句話:Well-defined fixed-time contraints
- Real-time 代表會在 deadlines 之前做完
- 不介意速度
# Soft real-time
- 盡量不 miss deadline
- 很重要的工作會保持它的優先權直到完成
- 例子:多媒體系統
# Hard real-time
- 沒有在期限內完成會有嚴重的後果
- 系統通常不依賴 secondary storage (磁碟),因為斷電後資料不能消失,必須存在於 短期記憶體 (short term memory)。
- 例子:核能電廠控制器若反應延遲,可能造成災難性後果。
# Multimedia Systems
涵蓋各種 音訊與視訊檔案,例如音樂播放、影片播放、串流服務
- Timing constraints:屬於 soft real-time,必須盡量在時間限制內完成避免延遲
- On-demand / Live streaming:支援即時播放或隨選串流,要求系統能快速反應
- Compression:多媒體檔案通常很大,需要各種壓縮技術 (如 MP3、H.264、HEVC) 來降低儲存與傳輸成本
# Handheld/Embedded Systems
使用 專門化硬體與專門化作業系統,例如手機、智慧手錶、嵌入式控制器。強調小型化與低功耗
- Limited memory:記憶體容量有限,必須精簡程式與資料。
- Slow processors:處理器效能相對較低,無法像桌面電腦一樣快速。
- Battery consumption:必須控制耗電
- Small display screens:螢幕尺寸小介面設計需要簡潔直觀。
# Ref:
- Mr. Opengate
- 陳品媛
