# 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` `共筆`