iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 19
0
自我挑戰組

非本科系也能懂和該懂得作業系統系列 第 19

Day 19 - Computer-System Architecture

  • 分享至 

  • xImage
  •  

在理解完Process、Thread、Scheduling這些事情之後,讓我們回到一開始的初衷,作業系統搞得如此麻煩,又是Time-Sharing又是Scheduling,最重要的目的就是希望能夠提供使用者良好的『便利性』和『效能』,那我們前面已經說明了以軟體的方法是如此這般去使用CPU,去維護作業系統的效能,今天我想來講講硬體層面的發展。

Multi-core System

我剛開始使用電腦的時候,那個年代的CPU還是單核心的,但現今不管是桌電還是筆電、文書機還是電競主機,多核心的CPU已經算是基本款,我自己使用的CPU(i7-6700)就有4個核心(core)。

多個核心會使效能比較快速的原因,是因為這些核心可以同時地去執行獨立的instruction,換句話說,藉由multi-core的資源,能夠同時支援不同的Thread,達到平行處理的成效。

Multi Processor System

單一一個CPU,在核心的數量還是有所極限的,既然一個CPU不夠,就用兩個,兩個不夠,就用更多個,有一些伺服器用的主機板,就能同時支援好幾個CPU,每個CPU上面同時又有十幾個核心,為的就是在同一個時間處理大量的需求,讓來訪問的使用者不會有太長的等待時間。

依照記憶體讀取方法的不同,Multi Proessor又分為兩種

  • Uniform Memory Access (UMA):每一個CPU共用同一個記憶體空間,但可能會出現記憶體頻寬上的瓶頸(大家都在搶著讀取記憶體的I/O bound)
  • Non-Uniform Memory Access (NUMA):每個CPU會有Local的Memory,因此在記憶體讀取的速度取決於記憶體是屬於CPU自己的(local),還是屬於其他CPU的(remote)

Cluster System

講白話來說cluster(叢集)的概念就是區域網路,透過網路線把電腦連接在一起,這些電腦就能夠共享儲存空間與運算能力。

Distributed System

分散式的系統是透過網路串接電腦與電腦,透過這樣的方式也能夠共享運算資源與儲存資源。

其中有依照架構又分為兩類:

  • Client-Server:有一個主要的伺服器(master)在匯集、發送請求給底下連線的電腦(slave)。
  • Peer-to-Peer:每一台電腦都是平等的,過去傳說中的Foxy就是透過這種方法,在互相傳遞資料與分享儲存空間。

上一篇
Day 18 - Scheduling Algorithm 2
下一篇
Day 20 - Storage
系列文
非本科系也能懂和該懂得作業系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言