2017年8月7日 星期一

OS - Ch1 作業系統簡介 與 常見系統類型

 

資工核心科目總是實用,自己複習之餘又把筆記重構了一番,可讀性應該提升很多:)第一章介紹各種常見的電腦系統。


2015.1.13 出版
2017.8.7 二版




一、OS 簡介


作業系統(Operating system, OS)是管理電腦硬體與軟體資源的電腦程式,同時也是電腦系統的核心與基石。OS 主要有以下兩個功能:

  • 資源分配者
  • 監控使用者程式的執行,以防止不正常的運作造成對系統的危害 

一個標準PC的作業系統應該提供以下的功能:

  • 行程管理(Processing management)
  • 記憶體管理(Memory management)
  • 檔案系統(File system)
  • 網路通訊(Networking)
  • 安全機制(Security)
  • 使用者介面(User interface)
  • 驅動程式(Device drivers)

OS 系統大小來區分 :

  • 大型電腦 : IBM OS/360
  • 個人電腦 : Windows、Linux、BSD、Mac OS X
  • 嵌入式 : VxWorks、eCos、Symbian OS及Palm OS

按照信仰(?)來區分 :

  • 類 Unix 家族 : 包含 System V、BSD與Linux。(和自由軟體淵源匪淺)
  • 微軟 Windows : Windows NT核心,包含 Windows 2000、Windows XP。(90% 市佔率!)
  • 蘋果 mac OS : 執行於蘋果 Macintosh 系列電腦上的作業系統。
  • Chrome OS : 基於 Google 的瀏覽器 Google Chrome 的 Linux 核心。

[murmur] 後面兩個列舉考試不太會考,但不知道滿誇張的,還是列一下XD



OS 示意圖。


Linux 架構圖。





二、常見系統類型


1. Multiprogramming System


系統中存在多組行程同時(concurrent)執行,避免 CPU 閒置,提升 CPU 利用度。(注意,不是並行執行(parallel))。

Multiprogramming Degree : 指系統內所存在的等待執行 process 的數目,Multiprogramming Degree 愈高,則 CPU 使用度可能愈高(非必定的原因是可能產生 Thrashing 現象)。 


2. 分時系統(Time Sharing System)


Multiprogramming System 的一種,OS 透過資源分享,使得每個使用者都認為有一套專屬的系統存在,反應時間(Response Time)通常是一秒內。

常見配置:

  • 行程排程採用 RR 排程
  • 記憶體空間所有使用者共享
  • 使用虛擬記憶體技術
  • I/O Device 透過 Spooling 技術(把磁碟當成一個巨大緩衝區使用)共享。



3. 分散式系統(Distributed System)


須符合兩個條件,硬體上每台電腦都是自主的,軟體上用戶將整個系統看做是一臺電腦。一般分為兩類,分別是 Client-Server System 和 Peer-to-peer。

舉例:志願計算,使用志願者電腦的閒置計算能力,通過網際網路進行資料傳輸(如 Folding@home 蛋白質摺疊研究計畫)。

構建分散式系統的好處:

  • 資源共享 (Resource Sharing) 
  • 加快計算速度 (Speed Up)
  • 可靠性 (Reliability)
  • 通訊需求 (Communication Need) 

[murmur] 很多教材把 Multiprocessor 歸類在分散式系統看起來很怪,現在很少這樣用了。

[補記] Multiprocessor System and Parallel System 
  • Symmetric Multiprocessing (SMP) : 對稱式多元處理,每一個處理器具有相同的功能,可靠度較高,強調負載平衡。
  • Asymmetric Multiprocessing (ASMP) : 非對稱式多元處理,Master/Slave 架構。 



4. 即時系統 (Real Time System)


定義嚴謹的固定時間限制,電腦在處理工作時必須在這個定義的時間內完成,否則工作就算失效。

硬性即時系統(Hard Real Time System):對於完成工作的時間有極嚴格的限制。若 Process 未能於規定的時間內完成,則 Process 即屬失效。(意義同即時系統之定義) 

  • 工廠自動化系統、軍事系統、核能安控等。
  • Application Program 設計上非常重要。 
  • Data 及 Program 皆存在ROM或RAM中。
  • 不使用虛擬記憶體,因為 Page Fault 的處理時間過長。 
  • 減少 OS 的干預以降低 Dispatch Latency

軟性即時系統 (Soft Real Time System):保証高優先權的Process必須先於所有低優先權的Process完成。 

  • Multimedia System、Virtual Reality等
  • CPU 的 Scheduling 應能支援 Priority Scheduling 且不能提供類似 Aging 技術。
  • 可和分時系統、virtual memory 並存。


5. 叢集系統(Clustered System)


叢集系統共享儲存裝置,集合許多 CPU 並且經由 LAN 連線緊密地連結以完成工作。叢集系統主要是利用多台獨立的的電腦系統或是工作站來共同完成大型數值的平行計算。 





References


swanky - Operating System Study Guide
http://www.csie.ntnu.edu.tw/~swanky/os/chap1.htm#BareMachineandExtendedMachine

Abraham Silberschatz, Peter B. Galvin, Greg Gagne - Operating System Concepts 8th Edition
https://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720

聯合大學陳士杰教授課程教材
http://web.nuu.edu.tw/~sjchen/

洪逸 - 作業系統金寶典
http://m.sanmin.com.tw/product/index/001601057






技術提供:Blogger.