天天看點

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

  • 1. 多處理機簡介
  • 2. 多處理機硬體
    • 2.1. UMA(Uniform Memory Access)
      • 2.1.1. 基于總線的 UMA 多處理機體系結構
      • 2.1.2. 基于交叉開關的 UMA 多處理機
      • 2.1.3. 基于多級交換的 UMA 多處理機
    • 2.2. NUMA(nonuniform memory access)
    • 2.3. 多核晶片
  • 3. 多處理機作業系統類型
    • 3.1. 每個 CPU 都有自己的作業系統
    • 3.2. 主從多處理機
    • 3.3. 對稱多處理機 (Symmetric MultiProcessor, SMP)
  • 4. 多處理機排程
    • 4.1. 分時
    • 4.2. 空間共享
    • 4.3. 群排程 (Gang Scheduling)
      • 4.3.1. 基本思想
      • 4.3.2. 排程方法
  • 5. 參考資料

1. 多處理機簡介

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料
  • 共享存儲器多處理機

    每個 cpu 都可同樣通路

  • 消息傳遞多計算機

    通過某種高速網際網路絡連接配接在一起, 每個存儲器局部對應一個 cpu, 且隻能被該 cpu 通路, 這些 cpu 通過網際網路絡發送多字消息通信

    易于建構, 程式設計難

  • 廣域分布式系統

    通過廣域網連接配接, 如 Internet,

    多處理機是共享存儲器多處理機的簡稱, 多個 cpu 共享一個公用的 RAM.

2. 多處理機硬體

是以多處理機都具有每個 cpu 可通路全部存儲器的性質, 而有些多處理機有一些特性,

2.1. UMA(Uniform Memory Access)

讀出每個存儲器字的速度一樣快

2.1.1. 基于總線的 UMA 多處理機體系結構

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

2.1.2. 基于交叉開關的 UMA 多處理機

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

2.1.3. 基于多級交換的 UMA 多處理機

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料
[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

此開關檢查 module 域來決定連入哪個存儲器, 即連接配接 x 還是 y

例如

Omega網絡

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

n 個 cpu / 存儲器, 有 log2n 級, 每級隻需 n/2 個開關,

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

比較:

網絡 開關數 是否阻塞
交叉開關 n2 不阻塞
Omega 網絡 n/2*log2n 阻塞

2.2. NUMA(nonuniform memory access)

特性:

* 具有對所有 cpu 都可見的單個位址空間

* 通過 LOAD 和 STORE 指令來通路運程存儲器

* 通路遠端存儲器慢于通路本地存儲器

基于檔案的多處理機

基本思想: 維護一個資料庫來記錄告訴緩存行的位置及其狀态. 當一個高速緩存行被引用時, 就查詢資料庫找出高速緩存行的位置以及它的 dirty 記錄,(是否被修改過),

2.3. 多核晶片

每個核就是一個完整的 CPU , 可以共享記憶體, 但是 cache 不一定共享. 時常被成為 片級多處理機

(Chip-level MultiProcessors, CMP)

.

與基于總線的多處理機和使用交換網絡的多處理機的差别不大:

* 基于總線的 每個 CPU 都有自己的 cache

* CMP 容錯性低: 連接配接緊密, 一個共享子產品的失效可能導緻其他 CPU 出錯

片上系統 (system on a chip)

晶片包含多個核, 但是同時還包含若幹個專業核, 比如視訊與音頻解碼器, 加密晶片, 網絡接口等

3. 多處理機作業系統類型

3.1. 每個 CPU 都有自己的作業系統

優點: 共享作業系統代碼

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

注意

* 在一個程序進行系統調用時, 是在本機的 CPU 上被捕獲并處理的, 并使用作業系統表中的資料結構

* 因為每個作業系統都有自己的表, 那麼也有自己的程序集合, 通過自身排程這些程序, 而沒有程序共享. 如果一個使用者登陸到 CPU1 , 那麼他的程序全在 CPU1 上, 也就是可能導緻其他 CPU 空載

* 沒有頁面共享: 可能出現 CPU2 不斷進行頁面替換而 CPU1 卻有多餘的頁面

* cache 不一緻

3.2. 主從多處理機

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

問題

如果有很多 CPU , 主 CPU 會成為瓶頸, 速度慢

3.3. 對稱多處理機 (Symmetric MultiProcessor, SMP)

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

消除了主從處理機的不對稱性, 在存儲器中有作業系統的一個副本, 但任何 CPU 都可以運作它.

這個模型動态平衡程序和存儲器, 因為它隻有一套作業系統資料表.

它存在的問題: 當兩個或多個 CPU 同時運作作業系統代碼時, 如請求同一個空閑存儲器頁面, 這時應該使用互斥信号量 (鎖), 使整個系統成為一大臨界區. 這樣在任一時刻隻有一個 CPU 可運作作業系統

4. 多處理機排程

排程對象: 單程序還是多程序, 線程是核心程序還是使用者線程.

* 使用者線程: 對核心不可見, 那麼排程單個程序,.

* 核心線程: 排程單元是線程,

4.1. 分時

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

先讨論排程獨立線程的情況, 如果有 CPU 空閑則選擇優先級隊列中的最優先線程到此 CPU

缺點:

* 随着 CPU 數量增加引起對排程資料結構的潛在競争

* 當線程在 I/O 阻塞時引起上下文切換的開銷 (overhead)

親和排程: 基本思想, 盡量使一個線程在它前一次運作過的 CPU 上運作,

4.2. 空間共享

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

當線程之間以某種方式彼此相關時, 可以使用此方法. 假設一組相關的線程是一次性建立的, 建立時, 檢查是否有足夠的空閑 CPU, 有 則 各自獲得專用的 CPU, 否則等待,

優點: 消除了多道程式設計, 進而消除上下文切換開銷

缺點: 當 CPU 被阻塞或根本無事可做時時間被浪費了

4.3. 群排程 (Gang Scheduling)

[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

4.3.1. 基本思想

讓一個程序的所有線程一起運作, 這樣互相通信更友善, 在一個時間片内可以發送和接收大量的消息.

4.3.2. 排程方法

  • 把一組相關線程作為一個機關, 即一個群, 一起排程
  • 一個群中的所有成員在不同的分時 CPU 上同時運作
  • 群中的所有成員共同開始和結束其時間片
[現代作業系統] 多處理機系統1. 多處理機簡介2. 多處理機硬體3. 多處理機作業系統類型4. 多處理機排程5. 參考資料

5. 參考資料

  1. 現代作業系統
  2. Multi-Processor Systems | UCLA

繼續閱讀