# Computer-System Architecture
[TOC]
## Desktop System: single processor
* Personal Computers(PC) - computer system dedicated to a single user
* User convenience and responsiveness - GUI
* I/O devices - keyboards, mice, screens, printers
* Several different types of operating systems
> Windows, MacOS, Unix, Linux
* Lack of file and OS protection from users
> Worm, Virus
## Parallel System: tightly coupled
* 定義:又稱 **Multiprocessing、Parallel、Tighty-coupled system**
* 主要 features:
* 一部機器內有多顆 processors(或 CPU)存在
* 這些 processors 彼此共享 memory、I/O Devices、Bus、power-supply 等
* 通常,由一個 clock 做時脈控制
* 通常,受同一個 OS 管空
* Processors 之間的溝通,大都採 **shared memory** 形式
* 好處:
1. Increased Throughput(產能):
因為可以支持多個 processes 在不同的 CPU 上平行執行(parallel execution),所以產能提升
> n 顆 CPU 的產能必定小於 「1 顆 CPU 產能 \* n」 倍
> 原因:
> 1. processors 之間的溝通
> 2. 資源競爭~(因共享資源)~ ,會抵銷掉產能
2. Increased Reliability(可靠度):
當某個 processor 壞了,則系統其他 processors 仍可運作,所以系統仍保有持續運作的能力,可靠度提升
> 額外補充:
> 1. graceful degradation(漸進式毀損損)
> 系統不會因為某些 hardware 或 software 元件故障而停頓,而仍保有持續運作的能力,又可稱為 Fail-Soft
>
> 2. Fault-Tolerant system
> 具有 graceful degradation 能力的 system
> 作法:hardware 及 software 是有多套 backup 機制設計~(主要用在高度安全要求等級的需求,例如:飛機導航、核安、軍事、交易系統;多套是由不同設計團隊設計而成)~
3. Economy of scale(省成本):
因為 processors 彼此共享 memory、I/O device 等,所以成本相對較低~(與~ ~n~ ~部機器相比)~
* Multiprocessors system 可再分為兩種類型:
1. SMP:Symmetric Multiprocessors~(對稱)~
* 定義:每個 processor 的工作能力是相同的,每個 processor 都有對等權利去存取資源及 data structure
* 設計重點:**Load Balancing**~(大家的負擔差不多)~
* 優點(和 ASMP 相比):
1. reliability 較高
2. throughput 較高
* 缺點:OS 的設計、開發較為複雜(因為需要針對共享的 resource 和 data 提供嚴謹的互斥存取及控制)
> 因為沒有班長,自然比較亂,運算比較複雜,core 比較沒辦法很大
2. ASMP:Asymmetric Multiprocessors~(非對稱)~
* 定義:每個 processor 的工作能力不一定相同,通常採 **Master-Slave** 架構。會有一個 master processor 負責工作的分派 及 資源分配,其餘 processor 為 slave processor
* 優點:OS 設計開發較 SMP 簡單(因為比較容易從 single CPU 的 OS 版本修改而得)
* 缺點:
1. reliability 較 SMP 低(因為每個 CPU 工作能力不一定相同)
2. throughtput 較低(因為 master processor 是效能瓶頸)
### Multi-Core Processor(單一 CPU 有好幾個 core)
![](https://i.imgur.com/bLC9uBc.jpg)
* A CPU with **multiple cores on the same chip**
* On-chip communication is **faster** than between-chip communication
* One chip with multiple cores uses significantly **less power** than multiple single-core chips
## Distributed System: loosely coupled
* 定義:又稱 Loosely-Coupled system~(鬆散耦合)~
* 主要 features 如下:
1. 每部機器有各自的 processor、memory、bus、I/O device 等,即 processor 非共享上述 resource
2. 每個 processor 的時脈控制~(clock)~不一定相同
3. 每個 processor 上的 OS 也不一定相同
4. 機器之間彼此是透過 Network~(LAN、MAN、WAN)~ 相互連接
5. processor 之間的溝通大都採 **message passing**
* 好處:
1. throughput 提升
2. reliability 提升
3. resource sharing → 支援 client-server model
只要有某些 server 擁有某些能力或資源,則其他可以不需要提供或擁有,共享即可~(向~ ~server~ ~申請、使用,所以~ ~costdown)~
ex: computing server、file server、mail server、printer server、DNS 等
4. communication needs(遠端通訊需求之滿足)
ex: internet, email
### Client-Server Distributed System
* easier to manage and control resources
* But, server becomes the bottleneck and single failure point
### Peer-to-Peer Distributed System
* Every machine is identical in its role in the distributed system - decentralized
> ex: ppStream, butTorrent, Internet
### Clustered System
> 分散式系統,但算是個特殊的 subset,網路的連接是 local,傳輸速度可以再更快一點
* Definition: Cluster computers **share storage** and are closely **linked via a local area network**(LAN) or a **faster interconnect**, such as InfiniBand(up to 300Gb/s)
* Asymmetric clustering: one server runs the application while other servers standby
* Symmetric clustering: two or more hosts are running application and are monitoring each other
### Memory Access Architecture
* Uniform Memory Access(UMA):
![](https://i.imgur.com/zfTBoix.jpg)
> Uniform: memory access time 都一樣
* Most commonly represented today by Symmetric Multiprocessor (**SMP**) machines
* **Identical processors**
* **Equal access times** to memory
> ex: most commodity computers
>
* Non-Uniform Memory Access(NUMA):
![](https://i.imgur.com/duzaVh0.jpg)
> 連自己的 memory 快,連到其他的 memory 較慢
* Often made by physically **linking two or more SMPs**
* One SMP can directly access memory of another SMP
* **Memory access aross link is slower**
> ex: IBM Blade server
>
## System Architecture Summary
![](https://i.imgur.com/8zv4guf.png)
## Compare Tightly vs. Loosely-Coupled System
| | Tightly-Coupled System | Loosely-Coupled System |
| -------- | -------- | -------- |
| 別名 | Multiprocessors System | Distributed System |
| 資源 | 共享(memory, Bus, ...) | 各 processor 有獨立資源 |
| Clock | 由一個 clock 做時脈控制 | 不一樣相同 |
| OS | 受一個 OS 管控 | 多個 OS 各自管理 |
| 溝通 | 大都採 **shared memory** | 大都採 **message passing** |
| features | 一部 machine 有多 processors 存在 | Processors 間用 network 連接 |
| 優點 | 1. Increased throughput<br> 2. Increased Repliability<br> 3. Economy of scale | 1. Computation speedup<br> 2. Reliability<br> 3. Resource sharing<br> 4. communication needs |
* Multiprocessor System 下又分 SMP 和 ASMP:
| | SMP | ASMP |
| -------- | -------- | -------- |
| 定義 | 每個 processor 的工作能力相同,有相等權利存取資源 | 暪個 processor 工作能力不完全相同,通常採 Master-Slave 架構 |
| 優點 | 效能佳<br>→reliability 高<br>→throughput 高 | OS 設計簡單 |
| 缺點 | OS 設計開發較複雜 | 效能差<br>→reliability 低<br>→throughput 低(Master processor 為瓶頸) |
## Compare Hard & Soft Real-Time System
| | Hard real-time system | Soft real-time system |
| -------- | -------- | -------- |
| 定義 | 對 job 的 finish time 有極嚴格的限制要求,未在時間內<br>完成,即失效。 | 必須確保 real time process 能取到最高 priority 且保持權值,不得衰退,直到工作完成 |
| 設計考量 | 1.全部造成時間延遲的因素皆須納入考量<br>2. 任何會造成時間過長或無法預測的<br>設備或機制,少用或不用<br>3. 減少 kernel 干預介入時間<br>4. 現形商用 OS 不支援 | 1. 盡量降低 kernel 的 dispatch latency time,以便 real-time process 及早開工<br>2.可支援 virtual memory,條件式 all pages of the real-time process 不可被 swap 到 disk 去,直到 real-time process 完工<br>3. 現行 OS 皆支援 |
|| 無法與 time-sharing 並存 | 可與 time-sharing 並存 |
| CPU 排班 | 1. 是否 schedulable?<br> 2. 是否滿足 deadline 要求? | 1. 支援 preemptive priority 排班<br> 2. 不可提供 aging 技術 |
###### tags: `OS` `共筆`