# Mainframe Systems 大型電腦系統

世界最早電腦之一,擁有很大的體積

  • I/O 慢、做的事情單一
  • 提供較好的可靠性安全性
  • 以下列的順序做進展:
    1. Batch 批次處理
    2. Multi-programming 多元程式系統
    3. 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


印表機範例:

  1. 當有很多筆資料要交給印表機輸出時,CPU 會先把待印資料清單放到磁碟上的一個表格
  2. 印表機印完一筆資料後,會直接到表格中讀取下一筆,不需要 CPU 介入
  3. 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

  • 須符合兩個條件
    1. 硬體上每台電腦都是自主的
    2. 軟體上用戶將整個系統看做是一臺電腦
  • 優點
    • 資源共享 (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:

  1. Mr. Opengate
  2. 陳品媛