---
# System prepended metadata

title: '大型機：多道程序系統(Mainframe: Multi-programming System)'

---

# 大型機：多道程序系統(Mainframe: Multi-programming System)
* 重疊作業的 I/O 和計算
    * 保持 CPU 和 I/O 設備
### 以更高的速率工作

* Spooling (Simultaneous Peripheral Operation On-Line)
    * I/O 在沒有 CPU 干預的情況下完成
    * 只需要在 I/O 完成時通知 CPU
![](https://hackmd.io/_uploads/HJF9NKAwh.png)

* （Pseudo-offline）：是指一種模擬脫機狀態的方式，即使在實際上仍處於聯網狀態下，系統可以模擬脫離網路的效果。
    * 這種模擬可以用於測試和模擬網路斷開連接的情況，以驗證系統在斷開連接狀態下的正常運作或故障恢復能力。

* （Offline Peripheral）：是指連接到電腦系統的外部設備或設備接口，這些設備可以在系統處於關機或脫機狀態時使用，不需要與計算機系統保持連接。
    * 線外圍通常包括儲存設備（如USB閃存驅動器）、印表機、掃描儀、攝像頭等。
    * 使用線外圍設備時，可以將其連接到計算機系統上，然後進行離線操作，不需要與系統保持連接或需要網絡連接。

* 總結來說，Spooling使用 disk 作為臨時存儲區域，用於暫存低速I/O設備的資料。
* CPU從disk的Spool區域讀取這些資料，進行處理和計算。
* disk 提供了高速的存取能力，以平衡低速I/O設備和CPU之間的速度差異。
* 透過Spooling，系統可以更有效地處理輸入和輸出操作，提高系統的效能。

![](https://hackmd.io/_uploads/HyYevFRD2.png)

多個作業同時保存在主存(main memory)中，CPU在其中復用

* 操作系統任務
    * Memory管理（第 9 章）——系統必須將Memory分配給多個作業
    * CPU 調度（第 6 章）——系統必須在幾個準備運行的作業中進行選擇。
    * I/O 系統（第 13 章）系統提供的 I/O 例程，設備分配
    
# 大型機：分時系統（多任務系統）Mainframe: Time-sharing System(Multi-tasking System)

將時間片段分配給不同的用戶。每個用戶在自己的時間片段內執行他們的程序或命令，這樣看起來就像是多個用戶在同一時間共享同一台計算機，就是所謂的Time-sharing

* 交互式系統提供用戶和系統之間的直接通信
    * CPU 在作業之間切換如此頻繁以至於用戶可能與程序交互
    * 用戶可以立即看到結果（響應時間 < 1s）
    * 通常，使用鍵盤/屏幕

* 多個用戶可以同時共享計算機
* 換工作的時候
    * 結束
    * 等待 I/O
    * 短時間

* 操作系統任務
    * 虛擬Memory（第 10 章）- 作業換入和換出Memory以獲得合理的響應時間
    * 文件系統和磁盤管理（第 11、12 章）- 管理用戶數據的文件和磁盤存儲
    * 進程同步與死鎖（chap7,8）——支持程序並發執行

## Mainframe System Summary(大型機系統總結)

| | Batch | Multi- programming|Time-sharing (Multi-tasking)|
| -------- | -------- | -------- |--------|
|系統模型(System Model)| 單用戶單作業     | 多作業     |多個用戶多作業。|
|目的(Purpose)|簡單的|資源利用率|交互響應時間|
|操作系統功能(OS features)|N.A|CPU調度Memory管理。 I/O系統|文件系統虛擬Memory同步死鎖|

## Multi-programming（多程序）是一種操作系統的技術，旨在最大化CPU利用率。
* 在Multi-programming中，多個程序（或作業）同時存在於記憶體中，並共享CPU的執行時間。
* 當一個程序正在等待I/O操作完成時，CPU可以立即切換到執行另一個程序，以充分利用CPU資源。這樣可以減少CPU的閒置時間，提高系統的效能。
* 然而，每個程序仍然是按照批處理（batch processing）的方式運行，即一個程序完成後，下一個程序才會執行。

## Multi-tasking（多任務）或Time Sharing則更加強調將CPU時間分割為較小的時間片（time slices），以輪流執行多個任務。
* 在Multi-tasking中，多個任務共享CPU的執行時間，每個任務被分配一小段時間來執行。
* 操作系統以非常快速的方式在各個任務之間進行切換，以營造出同時執行多個任務的感覺。這使得不同的應用程序或用戶可以同時執行，並共享系統資源。
* Multi-tasking更適合互動性的任務，例如在一個時間片內執行一個用戶輸入的指令，並且能夠快速響應。

# Memory訪問架構(Memory Access Architecture)

* 統一Memory訪問(Uniform Memory Access) (UMA)：
    * 如今最常見的是對稱多處理器 (SMP) 機器
    * 相同的處理器
        * Memory訪問時間相同示例：大多數商用計算機

UMA就是所有的CPU都用同樣的方式接到Memory上，他的特點是每個處理器核心在訪問共享記憶體時具有相同的存取時間。

* 這是因為主記憶體以單一統一的方式連接到所有處理器核心，並且所有核心之間的記憶體訪問速度相等。
* 這種平等的存取模型使得多個處理器核心可以共享資源並且互相協調工作。

![](https://hackmd.io/_uploads/HyVloR1_n.png)

* 非統一Memory訪問(Non-Uniform Memory Access) (NUMA)：
    * 通常通過物理連接兩個或多個 SMPS 來實現
    * 一個SMP可以直接訪問另一個SMP的Memory
    * 跨鏈接的Memory訪問速度較慢
    * 示例：IBM 刀片服務器

* NUMA 的設計目的是減少記憶體訪問的競爭和提高系統效能。
* 每個處理器核心可以更快地訪問本地記憶體，減少了對共享記憶體的需求和競爭。
* 同時，NUMA 也提供了一些機制，例如快取一致性協議，以確保共享數據的一致性。

* 每個處理器或核心具有本地記憶體，訪問本地記憶體的時間較快，因為記憶體與處理器之間的距離較近。
* 然而，當處理器或核心需要訪問遠程區域的記憶體時，需要透過連接網絡或共享匯流排進行遠程訪問，這會導致較高的訪問延遲。

![](https://hackmd.io/_uploads/Bkt3cR1u2.png)

## 分佈式系統(Distributed System)

由多個相互連接的計算機或節點組成的系統，這些節點通過網絡互相通信和協作，共同完成一個或多個任務。


* 每個處理器都有自己的本地Memory
* 處理器通過各種通信線路（I/O 總線或網絡）相互通信
* 易於擴展到大量節點（數十萬個，例如互聯網）
* 目的
    * 資源共享
    * 負荷分擔
    * 可靠性

## 主從式架構 (Client–server model)

客戶端通常是用戶端設備，如電腦、智慧手機或平板電腦，它與用戶互動並向伺服器發送請求。而伺服器則是一台強大的機器或一組機器，承載和管理客戶端請求的共享資源或服務。

* 更易於管理和控制資源
* 但是，服務器成為瓶頸和單一故障點

![](https://hackmd.io/_uploads/SylJCAJ_3.png)

## 點對點分佈式系統 (Peer-to-Peer Distributed System)

每個節點既是用戶端也是伺服器，可以提供和消耗資源。節點之間透過直接的通信協議來共享文件、數據或服務，並在需要時相互合作。

* 每台機器在分佈式系統中的角色都是相同的——去中心化
* 示例：ppStream、bitTorrent、互聯網

![](https://hackmd.io/_uploads/H1d7c_ru2.png)

## 集群系統（Cluster System Architecture）

集群系統架構是一種將多台計算機或伺服器組合成一個單一的系統來共同執行任務的架構。

集群系統的目標是提高系統的性能、可靠性和可擴展性。

* 非對稱集群(Asymmetric clustering)：一台服務器運行應用程序，而其他服務器備用
* 對稱集群(Symmetric clustering)：兩台或多台主機正在運行應用程序並相互監視

## 系統架構總結
![](https://hackmd.io/_uploads/B1AxrJldh.png)
* Tightly coupled 黃色
* Loosely coupled 藍色

## 實時操作系統(Real-Time Operating Systems)（第 19 章）
* 明確定義的固定時間約束
    * “實時”並不意味著速度，而是要守時
* 保證響應和反應時間
* 經常在專用應用中用作控制設備：
    * 科學實驗、醫學影像系統、工業控制系統、武器系統等

## 軟實時與硬實時(Soft vs. Hard Real-Time)

軟實時要求：
* 軟實時系統允許在特定情況下發生延遲，但要求在大多數情況下滿足即時性要求。
* 關鍵的實時任務優先於其他任務，並保持該優先級直到它完成
* 示例：多媒體流

硬實時要求：
* 錯過最後期限會導致根本失敗
* 輔助存儲有限或不存在，數據存儲在短期存儲器或只讀存儲器 (ROM) 中
* 示例：核電站控制器

## 多媒體系統(Multimedia Systems)（第 20 章）
* 應用範圍廣泛，包括音頻和視頻文件（例如 ppstream、在線電視）
* 問題：
    * 時序限制：24~30幀/秒
    * 點播/直播：媒體文件只播放，不存儲
    * 壓縮：由於多媒體系統的大小和速率

## 手持式/嵌入式系統(Handheld/Embedded Systems)
* 個人數字助理 (PDA)
* 移動電話
* 硬件專用操作系統
* 問題
    * Memory有限
    * 處理器慢
    * 電池消耗
    * 小顯示屏
