日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【操作系统 · 调度】多处理器 实时调度

發布時間:2023/12/14 windows 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【操作系统 · 调度】多处理器 实时调度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 多處理器調度

多處理器系統分為以下幾類:

  • 松耦合、分布式多處理器、集群 : 由一些列相對自治的系統組成,每個處理器都有自身的內存和I/O通道。
  • 專用處理器 :I/O處理器最為經典。此時,有一個通用的主處理器,專用處理器由主處理器控制 ,并為其服務。
  • 緊耦合多處理器 :由一系列共享同一個內存并受操作系統完全控制的處理器組成。

1.1 粒度

粒度大小說明同步間隔(指令)
單指令流中固有的并行< 20
中等一個單獨應用中的并行處理/多任務處理20 ~ 200
多道程序環境中并發進程的處理器200 ~ 2000
極粗在網絡節點上進行分布式處理,形成一個計算環境2000 ~ 1M
無約束多個無關進程不適用

無約束并行性

對于無約束并行(independent parallelism),進程間沒有顯式的同步。每個進程都代表獨立的應用/作業(典型為分時應用)。

粗粒度、極粗粒度并行性

粗粒度(coarse)、極粗粒度(very coarse)并行,指在進程間存在同步,但這種同步的級別極粗??梢院唵蔚靥幚頌橐唤M運行在多道程序單處理器上的并發進程。

中粒度并行性

典型情況下,為了達到中粒度并行性(medium-grain)的同步,在應用程序的線程之間,需要更高程度的合作、交互。

細粒度并行性

細粒度(fine-grain)并行性表示與線程中并行相比,更為復雜的使用情況。

1.2 設計問題

三個相互關聯的設計問題:把進程分配到處理器、在單處理器上使用多道程序設計、一個進程的實際分派。所用的方法,通常取決于應用程序的粒度級和可用處理器的數量。

把進程分配到處理器

若假設多處理器結構統一(各性能基本持平),最簡單的調度方法是把處理器視為一個資源池,并按照要求把進程分配到相應的處理器。

靜態分配 :一個進程從被激活到完成,一直被分配給同一個處理器(需要為每個處理器維護一個專門的短程隊列)

動態負載平衡 :該策略中,線程能在不同處理器對應的隊列間轉移

在單處理器上使用多道程序設計

如果每個進程在其生命周期中都被靜態地分配給一個處理器,就應考慮處理器是否支持都到程序。

進程分派

與多處理器調度相關的最后一個設計問題是選擇哪個進程運行。

1.3 進程調度

在大多傳統的多處理器系統中,進程并不指定到一個專用的處理器。并非所有處理器都只有一個隊列,或只使用某種類型的優先級方案,而是有多個基于優先級的隊列,都送入相同的處理器池中。在任何情況下,都可把系統視為多服務器排隊結構。

一般結論,對于雙處理器,調度原則的選擇不如在單處理器中重要。因此,在多處理器系統中使用簡單的FCFS原則,或在靜態優先級方案中使用FCFS就已足夠。

1.4 線程調度

在多處理器線程調度和處理器分配的各種方案中,有四種重要方法:負載分配、組調度專用處理器分配、動態調度 。

負載分配

進程不分配到某個特定的處理器。系統維護一個就緒隊列的全局隊列,每個處理器只要空閑就從隊列中選擇一個線程。

三種不同的負載分配方案:

  • 先來先服務(FCFS)

  • 最少線程數優先

  • 可搶占的最少線程數優先

優點:

  • 負載在各處理器均勻分布,沒有處理器空閑。
  • 無需集中調度程序,處理器可用,由操作系統為其選擇下一個線程。

缺點:

  • 中心隊列必須占據互斥訪問的存儲器區域(成百上千個處理器可能出現瓶頸)
  • 被搶占的線程可能不在同一個處理器上恢復執行,每個處理器配置Cache時,Cache效率很低
  • 如果所有處線程被視為公共的線程池,當一個程序的線程需要高度合作、無法同時訪問處理器時,會嚴重影響性能

組調度

一組相關的線程基于一對一的原則,同時調度到一組處理器上運行。

優點:

  • 組內的進程相關/大致平等時,同步阻塞減少、只需要很少的進程切換,性能提高
  • 調度開銷減少,一個決策影響許多處理器、進程

組分配與 & 加權組分配:

專用處理器分配

它與負載分配相反,它通過把線程指定到處理器來定義隱式的調度。采用池化思想,維護處理器池,每個程序開始執行時都分配給其與線程數等同數量的處理器,終止時,向處理器池交還資源。

一種極端形式的組調度:在一個應用程序執行期間,把一組處理器專門分配給這個應用程序。即當每個線程都被分配給一個處理器,相應的處理器專門用于處理對應的線程,直到應用程序運行結束。

動態調度

在執行期間,進程中線程數量可以改變。

當一個作業請求一個/多個處理器時:

  • 如果有空閑的處理器,則使用它們來滿足請求。
  • 否則,如果發請求的作業都是新到達的,則從當前已分配了多個處理器的作業中分出一個處理器給這個作業。
  • 如果這個請求的任務分配都不能得到滿足,則它保持未完成狀態,直到一個處理器可用 / 該作業取消了請求。
  • 釋放了一個/多個處理器時(包括作業離開):

  • 為這些處理器掃描當前未得到滿足的請求隊列。給表中每個還沒有處理器的作業(即所有處于等待專改的新到達的作業)分配一個處理器。然后再次掃描表,按FCFS原則分配剩下的處理器。
  • 1.5 多核線程調度

    隨著單個芯片上的內核數量的增加,最小化訪問片外存儲器比最大化處理器利用率更優先。在最小化訪問片外存儲器方面,傳統且主流的方法是利用局部緩存。

    例如,AMD推土機芯片,在這種芯片的架構中,每個內核擁有一個獨立的一級緩存,每對內核共享一個二級緩存,所有內核共享三級緩存。

    當部分單非全部內核共享緩存時,調度期間線程分配給內核的方式對性能會有顯著的影響。

    我們假定共享共享二級緩存的兩個內核相鄰。最好的情況是:

    • 若兩個線程要 共享 內存資源,則應將其分配給 相鄰 的內核來 提高性能
    • 若兩個線程 不共享 內存資源,則應將其分配到 不相鄰 內核以實現 負載均衡

    緩存共享需要考慮兩方面的因素:

    • 合作共享資源:使得多個線程可以訪問相同的內存區域(多線程應用、生產者-消費者線程交互)
    • 資源搶占:線程在相鄰的內核上競爭緩存內存地址

    2. 實時調度

    兩種實時調度方法:

    • 限時調度
    • 速率單調調度

    2.1 背景

    硬實時任務(hard real-time task) :必須滿足最后期限的任務,否則會給系統帶來不可接受的破壞 / 致命的錯誤。

    軟實時任務(soft real-time task) :有一個與之關聯的最后期限,希望能滿足這一期限,但并不強制。

    非周期任務(aperiodic task) :有一個必須結束/開始的最后期限,或有一個關于開始時間、結束時間的約束條件。

    周期任務(periodic task) :每隔周期T一次

    2.2 特點

    實時操作系統5方面需求表征:可確定性、可響應性、用戶控制、可靠性、故障弱化操作。

    可確定性(deterministic)

    在某種程度上是指它可以按照固定的、預先確定的時間/時間間隔執行操作。多個進程競爭使用資源、處理器時間時,沒有哪個系統是完全可確定的。可確定性關注操作系統獲知有一個中斷之前的延遲。

    可響應性(responsiveness)

    可響應性關注在知道中斷之后,操作系統為中斷提供服務的時間。

    用戶控制(user control)

    在實時系統中,允許用戶細粒度地控制任務優先級必不可少。用戶應能區分硬實時任務、軟實時任務,并在每類中確定相對優先級。

    可靠性(reliability)

    在實時系統中比在非實時系統中更重要。實時系統是實時響應、控制事件的,性能的損失/降低可能產生災難性的后果。

    故障弱化操作(fail-soft operation)

    指系統在故障時盡可能多地保存其性能和數據的能力。

    故障弱化運行的一個重要特征:穩定性

    • 如果當它不可能滿足所有任務的最后期限時,及時總是不能滿足一些不太重要任務的最后期限,系統也將首先滿足最重要的、優先級最高的任務的最后期限。

    實時系統 常見功能:

    • 使用更為嚴格的優先級,以搶占式調度滿足實時性要求
    • 中斷延遲(運行 → 中斷 時間)有界且相對較短
    • 有更精確、更可預測的時序特征

    實時系統的核心是短任務調度程序。在設計這種調度程序時,公平性、最小平均響應時間不是最重要的,最重要的是所有硬實時任務都能在最后期限內完成,且盡可能多的軟實時任務也能在最后期限內完成。

    2.3 實時調度

    靜態表調度法(static table-driven scheduling)

    執行關于可行調度的靜態分析。分析的結果是一個調度,它確定在運行時一個任務何時須開始執行。

    適用于周期性任務,輸入為周期性到達時間、執行時間、周期性的最后結束期限、每個任務的相對優先級。

    靜態優先級搶占調度法(static priority-driven preemptive scheduling)

    執行一個靜態分析,但未指定制度,而是通過給任務指定優先級,使得可以使用傳統的基于優先級的搶占式調度程序。

    基于動態規劃的調度法(dynamic planning-based scheduling)

    在運行時動態地確定可行性,而非開始運行前離線地確定。到達任務僅能滿足其他時間約束才能被接受、執行??尚行苑治鼋Y果是一個調度/規劃,用于確定何時分配任務。

    動態盡力調度法(dynamic best effort scheduling)

    不執行可行性分析。系統試圖滿足最后期限,并終止已經開始運行但錯過最后期限的進程。

    當前許多商用實時系統使用的方法,一個任務到達時,根據任務特性賦予其優先級,并通常使用某種形式的 時限調度(deadline scheduling),如最早最后期限調度。

    2.4 限期調度

    大多數當代實時操作系統的設計目標是盡快啟動實時任務,因此強調快速中斷處理、任務分派。實時應用程序本身并不關注絕對速度,二負按住在最優價值的時間內完成任務,它按照優先級來提供依據,而并不以最有價值的時間來完成需求。

    實時任務調度的方法,所需最常見的信息:

    • 就緒時間 :任務開始準備執行的時間。
    • 啟動最后期限 :任務必須開始的時間。
    • 完成最后期限 :任務必須完成的時間。
    • 處理時間 :從執行任務直到完成任務所需的時間。
    • 資源需求 :任務在執行過程中所需的資源集(處理器以外的資源)。
    • 優先級 :度量任務的相對重要性。
    • 子任務結構 :一個任務可分解為一個必須執行的子任務、一個可選執行的子任務。

    2.5 速率單調調度

    速率單調調度(Rate Monotonic Scheduling, RMS),可解決周期性任務多任務調度沖突。

    RMS基于任務的周期給它們指定優先級。在RMS中,最短周期的任務具有最高優先級,依次遞減。

    若將任務優先級視為速率的函數,則它是一個單調遞增函數,“速率單調調度” 因此得名。

    2.6 優先級反轉

    **優先級反轉(priority inversion)**是在任何基于優先級的可搶占調度方案中都會出現的現象。

    當一個低優先級任務被某個資源(設備/信號量)所阻塞,且一個高優先級的任務也要被同一個資源阻塞,就會發生優先級反轉。高優先級任務被置為阻塞態,低優先級任務使用、釋放資源后,高優先級任務才會被喚醒。

    無界限優先級反轉(unbounded priority inversion):這種情況下,優先級反轉的持續時間不僅取決于處理共享資源的時間,還卻決于其他不相關任務的不可預測行為。

    優先級繼承(priority inheritance):優先級較低的任務繼承任何與其共享同一個資源的優先級較高的任務的優先級。當高優先級任務在資源上阻塞時,立即改變優先級。資源被低優先級任務釋放,這一改變結束。

    優先級置頂(priority ceililng):優先級與每個資源相關聯,資源的優先級:比使用該資源的具有最高優先級的用戶的優先級
    務也要被同一個資源阻塞,就會發生優先級反轉。高優先級任務被置為阻塞態,低優先級任務使用、釋放資源后,高優先級任務才會被喚醒。

    無界限優先級反轉(unbounded priority inversion):這種情況下,優先級反轉的持續時間不僅取決于處理共享資源的時間,還卻決于其他不相關任務的不可預測行為。

    優先級繼承(priority inheritance):優先級較低的任務繼承任何與其共享同一個資源的優先級較高的任務的優先級。當高優先級任務在資源上阻塞時,立即改變優先級。資源被低優先級任務釋放,這一改變結束。

    優先級置頂(priority ceililng):優先級與每個資源相關聯,資源的優先級:比使用該資源的具有最高優先級的用戶的優先級

    總結

    以上是生活随笔為你收集整理的【操作系统 · 调度】多处理器 实时调度的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。