通用作業系統

通用作業系統

通用作業系統:具有多種類型操作特徵的作業系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。

基本介紹

  • 中文名:通用作業系統
  • 外文名:general purpose operating systems
  • 定義:具有多種類型操作特徵的作業系統
  • 功能:多道批處理、分時、實時處理
  • 例如:UNIX作業系統
概述,缺陷,實時擴展方法,

概述

通用作業系統是具有多種類型操作特徵的作業系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。
例如:實時處理+批處理=實時批處理系統。首先保證優先處理實時任務,插空進行批處理作業。常把實時任務稱為前台作業,批作業稱為後台作業。
再如:分時處理+批處理=分時批處理系統。即:時間要求不強的作業放入“後台”(批處理)處理,需頻繁互動的作業在“前台”(分時)處理,處理機優先運行“前台”作業。
從上世紀60年代中期,國際上開始研製一些大型的通用作業系統。這些系統試圖達到功能齊全、可適應各種套用範圍和操作方式變化多端的環境的目標。但是,這些系統過於複雜和龐大,不僅付出了巨大的代價,且在解決其可靠性、可維護性和可理解性方面都遇到很大的困難。
相比之下,UNIX作業系統卻是一個例外。這是一個通用的多用戶分時互動型的作業系統。它首先建立的是一個精幹的核心,而其功能卻足以與許多大型的作業系統相媲美,在核心層以外,可以支持龐大的軟體系統。它很快得到套用和推廣,並不斷完善,對現代作業系統有著重大的影響。

缺陷

中斷
對於當前正在運行的任務而言,中斷是一種並發事件,並且在某種程度上表現出極大的隨機性,因而無法很好預測中斷在何時會發生。在GPOS中,中斷的優先權要高於任務執行的優先權,故由於中斷髮生具有不確定性,導致被中斷任務的執行時間也變得不確定了。這種不確定性對於具有時間約束的實時系統可能是致命的。
多任務及任務調度
GPOS普遍採用基於round-robin優先權的調度算法,其核心是一組優先權可調整的佇列。每一個佇列維護一組優先權相同的任務。調度算法為優先權最高佇列的每個任務分配一個時間片,任務按時間片分時復用CPU。調度算法會逐漸調整各個佇列的優先權,使得低優先權佇列中的任務最終也能被執行。在這種調度算法中,由於無法準確地預測一個任務需要等待多長時間才能被執行,以及多長時間能夠執行完畢,因此這種調度算法是無法滿足對實時任務調度的。
虛擬存儲
目前幾乎所有的GPOS都使用了基於頁面的虛擬存儲器技術。在虛存機制中,當頁面失效後,必然伴隨換頁操作,這給任務的實時性能帶來了負面影響。一方面,如果當前任務發生頁面失效,則任務被中斷,系統進行換頁操作;另一方面,如果多個任務共享物理頁面,則會存在頁面顛簸。頁面失效的處理過程是非常複雜的,涉及眾多因素,如失效中斷、磁碟操作、系統存儲容量等。在基於頁面的GPOS中,頻繁的頁面失效會導致無法準確預測一個任務的執行時間。
DMA
DMA技術大大提高了系統的整體吞吐率,有效減少處理器對I/O設備操作的干預,提高了處理器利用率。但由於DMA必須訪問主存儲器,因此在DMA傳輸期間,I/O設備和CPU是分時爭用主存儲器的。在DMA傳輸占用存儲匯流排時,處理器無法讀寫主存儲器。雖然在目前很多系統中,處理器是通過Cache讀寫存儲器而不是直接讀寫主存儲器,但是當Cache失效並且系統正在進行DMA傳輸時,Cache仍然無法立即讀寫主存儲器。DMA傳輸方式為準確預測CPU完成一個任務的時間增加了不確定因素。

實時擴展方法

(1)集成調度
集成調度是一種概念,指在同一作業系統中同時使用了實時調度算法和非實時調度算法,以分別用於調度實時任務和非實時任務。在集成調度方案中,由於實時任務都被指派截止時間,因此實時任務和非實時任務被調度器公平調度,系統沒有賦予實時任務更高的優先權。調度器首先將處理器時間片分配給實時任務,分配算法是按結束截止時間的早晚進行的。根據實時任務對處理器時間片的要求和非實時任務的工作負載,調度算法在實時任務和非實時任務之間維護公平的分配方案。對於非實時任務,調度器採用round-robin調度算法進行調度。雖然集成調度可以給實時任務和非實時任務公平分配處理器時間片,但是實驗數據顯示實時任務的完成時間隨系統負載的不同而呈現較大的波動。當波動過大時,使得對整個系統的性能預測失之準確,其結果是或者大幅降低了處理器利用率或者使得其它實時任務無法執行。
(2)處理器資源預留
處理器資源預留(PCR)是一種抽象的機制。PCR允許用戶控制處理器周期的分配,跟蹤預留資源並度量任務已使用的處理器資源,解決了實時任務和非實時任務的調度問題。在PCR中,實時任務模型是周期模型。在PCR方案中,幾乎作業系統的所有功能部件都需要修改或重新設計。
(3)實時Mach
實時Mach項目希望能開發一個實時版的Mach核心。在實時Mach中,所有的原有Mach核心的各個子部分均被重新設計。實時Mach在原有核心基礎之上增加了實時執行緒管理、集成時間驅動調度器、實時同步和記憶體駐留對象。在實時Mach中,進程可以創建實時和非實時兩種執行緒。在創建實時執行緒時,用戶需要提供一些關於執行緒時間特性方面的參數,如周期、最大開銷、截止時間、以及截止時間是硬截止時間還是軟截止時間。實時Mach通過優先權繼承實現了實時同步機制以解決GPOS中的優先權反轉問題。通過實時同步機制,使得當高優先權任務因為共享資源被低優先權任務鎖定而被掛起時,其掛起等待時間具有上限。

相關詞條

熱門詞條

聯絡我們