定義
系統處理器即完成執行系統軟體的工作,也同時起目標處理器的作用。因為僅包含了一個處理器,所以沒更換一種被仿真處理器,系統軟體也必須隨之改寫。因為系統軟體必須駐留在仿真器所使用的同一存儲器中,因為不可能將整個存儲器用於仿真過程,這對大型樣機的開發可能就是一個缺點。
因為單處理器系統所需要的硬體較少,所以價格較低,但只有僅僅需要簡單開發功能時,價格才是需要考慮的因素。
區別
早期的計算機系統是基於單個處理器的順序處理機器。程式設計師編寫串列執行的代碼,讓其在CPU上串列執行,甚至每一條指令的執行也是串列的(取指令、取運算元、執行操作、存儲結果)。為提高計算機處理的速度,首先發展起來的是聯想存儲器系統和流水線系統,ghostwin7前者提出了數據驅動的思想,後者解決了指令串列執行的問題,這兩者都是最初計算機並行化發展的例子。隨著硬體技術的進步,並行處理技術得到了迅猛的發展,計算機系統不再局限於單處理器和單數據流,各種各樣的並行結構得到了套用。目前計算機系統可以分為以下4類。
(1)單指令流單數據流(SISD)。一個處理器在一個存儲器中的數據上執行單條指令流。
(2)單指令流多數據流(SIMD)。單條指令流控制多個處理單元同時執行,每個處理單元包括處理器和相關的數據存儲,一條指令事實上控制了不同的處理器對不同的數據進行操作。向量機和陣列機是這類計算機系統的代表。
(3)多指令流肀數據流(MISD)。一個數據流被傳送給一組處理器通過這一組處理器卜的不同指令操作最終得到處理結果。該類計算機系統的研究尚在實驗室階段。
(4)多指令流多數據流(MIMD)。多個處理器對各自不同的數據集同時執行不同的指令流。可以把MIMD系統劃分為共享記憶體的緊密耦合MIMD系統和記憶體分布的鬆散耦合MIMD系統兩大類。
調度
許多調度問題有時間限制,特別是在實時系統中。實時系統是快速和可預計的。可預計表示當任務激活時就能夠以某種確定度決定它的完成時間。例如,典型問題是,任務T滿足它的時間要求嗎?有多少任務將在期限以前完成?最大利用程度是多少?
單處理器上多個定期任務的這兩種調度算法是許多實時調度算法的基礎。它假設所有任務有確定的運行時間,而且兩次運行請求之間有恆定的時間間隔。例如,任務丁,要求以周期£,和運行時間“調度運行,也就是任務T,每隔周期,:出現一次,並且必須在下一次調度請求前結束。所有任務是獨立的。相互之間沒有通信。
速率單調優先算法和期限驅動算法都是有優先權和強占式的,前者分配固定優先權,後者使用動態優先權(即運行時優先權會改變)。對速率單調優先算法來說,有高速率要求的任務有高優先權.也就是周期£,越小,被調度的速率就越高,優先權越大;對期限驅動算法來說,離結束期限最近的任務有最高優先權。
如果一個定期任務集合中每個任務的所有期限都符合要求,那么這些任務是可調度的。能夠證明:一個任務集對期限驅動算法是可調度的,其條件是它滿足:
式中,行為任務集中的任務數。只要總的利用率小於1,任務集就是可調度的。對速率單調調度算法,任務集可調度的條件如下:
也就是說,對n=1限度是1,對n=2限度是0.828,對n=3限度是0.779,等等。注意:當上麵條件不滿足但整體利用率仍小於1時,它的可調度性是不確定的。然而如果有基於固定優先權的可行調度,速率單調優先算法總能夠找到其中的一個。