Contents ...
udn網路城邦
作業系統(15) 特定系統與未來發展
2020/12/04 11:54
瀏覽1,604
迴響0
推薦0
引用0

15

1. 作業系統的元件與架構

2. 硬體分散產生的影響

3. 作業系統的設計

4. 特定系統

作業系統設計的基本要求

可維護性maintainability: 作業系統要易於維護, 正確性correctness: 作業系統本身的功能要完整,且要避免有錯誤與漏洞, 效能performance: 各種功能的執行都要能滿足效能上的要求

從功能面看作業系統的設計

作業系統的領域發展出一些抽象化的概念,例如處理元、檔案、執行緒thread、訊號signal與記憶體的模型等。抽象化的概念可用資料結構來具體化,需要一些基本的操作primitive operations來處理資料結構,這些操作在實作上就是所謂的系統呼叫system calls. 由於多個使用者可以登入電腦系統,作業系統必須確保各使用者有各自的天地,不互相干擾。不管是處理元或是檔案,都要有區隔的機制,讓使用者只能對有權限接觸的資源進行有限制的操作。

影響未來作業系統的因素

作業系統的複雜性、同時性concurrency、保護的問題、軟體的生命週期、維持通用性generalilty、具有移植性portability、與之前版本的相容性backward conpatibility.

模組化設計modular design

依功能functionality來分割系統,模組之間介面的定義完整而清楚,choices作業系統是模組化設計的代表。

模組化設計 vs. 單一組合的結構

跟單一組合的結構比較起來,模組化的設計在實作上有很清楚的程式模組或是處理元,模組化的設計比較容易維護,因為清楚的介面把結構資料封裝起來,程式的更動可以不影響介面。不過在效能上可能會打折扣。商業化的作業系統並沒有採用純粹的模組化的設計方式。

擴充式核心的設計(1)

擴充式核心extensible nucleus的設計也叫做微核心microkernel的架構,採用模組化的設計,但是另外把一些骨架式的功能skeletal facilities獨立出來,原來的目標是要設計即時系統real-time system與分時系統。

作業系統的實作

與硬體有關的hardware dependent部分: 提供底層的虛擬機器,具有一些記憶體管理與處理元管理的功能。與硬體無關,但與政策有關policy-dependent的部分: 反映出特定作業系統的需求。

層次化的架構

層次化的架構將功能分割成抽象機器的架構abstract machine hierarchy. 上層的功能可建立在下層功能的基礎上,層次化可以簡單複雜的設計,很多領域都會運用層次化的方式來簡化複雜的觀念或是設計,重要的關鍵在於該如何區分各層次比較好, Dijkstras THE作業系統就是採用層次化的設計方法。

更詳細的層次劃分

在層次化的方法中,作業係蓊的功能必須先做清楚的區隔,然後針對底下的層次開始,確定其正確性,進行實作。接著使用所完成的層次來進行上面層次的設計與實作。在層次化的概念下,作業系統建立過程中可被證明為正確的,但是層次化的方法限制太多了,設計者運用層次化的方法時必須為所有的功能排序。

硬體分散產生的影響

基本觀念: 網路普及之後,電腦與各種硬體設備可以透過網路連結在一起,硬體的分散引發一些額外的需求,因為使用者需要管理與分享這些硬體。網路作業系統network operating system是傳統作業系統的延伸;分散式的作業系統distributing operating system有更高的目標,希望讓使用者輕鬆地使用分散的資源,不需要知道底下的通訊細節。

NOSDOS的差異

通訊的方法communication primitives(LAN vs. WAN)、網路資源的管理、容錯fault tolerance、提供的服務、命名與保護

最大的差異: 網路作業系統的使用者可以清楚地感受到網路的存在,多台主機與設備透過網路連結在一起,而網路作業系統幫助我們與這些網路節點溝通;分散式作業系統的使用者可以透過單一的介面來與網路上的節點溝通,而且不需要知道通訊的細節,所以比較不會感受到網路的隔閡。

作業系統的設計

基本原則: 定義抽象化的模型abstraction, 提供基礎的操作primitive operation, 分離孤立的特性isolation, 硬體的管理

分散式作業系統的基本設計原則: 透明化transparency、可靠性reliability、彈性flexibility、效能performance、可擴大性scalability、異質性hterogeneity、安全性security、模擬現有的作業系統

作業系統的介面

作業系統提供了服務與一些作業,例如檔案服務以及對檔案的操作,這些服務與作業形成了作業系統與使用者之間的介面,這裡的使用者偏向於運用作業系統來寫程式的人,有別於一般的應用系統使用者;常見的介面包括系統呼叫system calls與驅動程式device drivers,在介面的設計上通常會要求簡易、完整與效率,讓使用者能很容易又很快地完成工作。

作業系統的層次化結構: 在製作之初要確定作業系統的結構,層次化的系統設計是比較多人認同的製作方式,使用層次化的方法時必須謹慎地定義出各層次,同時將作業系統的功能適當地分配到每一層中。

主從模型client-server model式的作業系統架構: 作業系統的一大部分以使用者模式來執行,這種架構有模組化的特性,也很有設計上的彈性flexibility. 最好是讓驅動程式也能以使用者模式來執行,這樣作業系統的可靠性reliability會大幅改善。

作業系統發展的趨勢

大位置空間的作業系統large address space operating systems: 電腦的位置空間已經逐漸地從32位元進步到64位元,2⁶⁴來說,大約是2∙10¹⁹,這是以bytes為單位,以作業系統的設計來說,這種改變使得設計的彈性更大,簡單的說,在這麼大的位址空間下,物件可以一直放在address space,等沒有程式引用到時才移出去。

網路化: 網路已經非常普及,大多數的電腦都與網路相連,而網路的資料傳輸速率也不斷地提升,未來可能跟電腦系統的內部匯流排bus不相上下,這個事實所代表的意義深遠,因為很可能有一天,我們的電腦所使用的大部分的資源會來自網路。

平行與分散式系統: 平行系統與分散式系統的發展仍然是相當重要的領域,以硬體來說,多處理器multiprocessors與多電腦multicomputers的架構會越來越普遍,目前的作業系統對於這些架構並沒有很完整的支援;而分散式系統則多半以中介軟體middleware的方式來建立,未來在建立作業系統的時候可能會直接將分散式系統加進來。

多媒體的需求: 多媒體系統的應用是相當重要的領域,很多生活化的應用都跟多媒體有關,作業系統必須對於多媒體資料的處理與傳送提供更完善的支援,這是從作業系統的功能來觀察的,若是從作業系統的介面來看,更親和的使用者介面可以結合多媒體的技術來達成。

低功率電腦與嵌入式系統: 所謂的低功率電腦事只使用電池的電腦,例如可攜式電腦laptop或是平板電腦,目前使用者的成長速度很快,這些硬體設備對於作業系統的需求跟一般的傳統電腦平台不同,通常低功率電腦使用的作業系統必須小型、快速、有彈性、而且可靠,因此微核心與可擴充式的作業系統架構倒是很適合這樣的需求,作業系統本身要處理電源管理power management的問題,而且要讓應用系統也了解電源的狀況,由於低功率電腦的顯示螢幕小,介面的設計有不同的限制與規矩。

開放原始碼的雲端作業系統: 雲端整合了許多運算資源,這些資源並不專屬於一台電腦,往往涵蓋了大量的運算設施,因此需要完整的管理功能與管理的平台,這些軟體同樣有開放原始碼的選擇。Openstack是一種開放原始碼的雲端作業系統,提供用戶管理大量運算、儲存與網路資源功能。一般的電腦作業系統讓使用者管理與使用電腦的資源;雲端作業系統則是擴大到整個雲端架構中的資源。Openstack本身提供了web介面給使用者與管理者,開發者則有應用程式介面API可以使用。

即時系統real-time system: 即時系統不僅要求運算的結果要正確,而且要在特定的時限中完成才能滿足要求,即時系統的應用包括軍事武器系統、汽車的反煞車鎖死系統ABS, antilock brake system、航站管理系統、以及醫療用的心律調整器pacemaker等。多數的即時系統的特性是功能單純、設備體積小、價格便宜到能大量製,同時有特定的時限要求。

單一晶片系統SOC, System-on -chip的技術

即時系統常見於即時系統家電與消費性電子設備中,需要大量製造、降低價格。在製造上常採用所謂的單一晶片系統SOC的技術,也就是將處理器、記憶體以及一些周邊裝置的介面都設計在一個積體電路中,這樣就可以大幅降低體積與成本。

多媒體系統multimedia system

多媒體系統處理的是多媒體性質的資料,跟傳統的資料在特性上不同,所以處理的方式不一樣,再運用的要求上也比較特別,因為像視訊串流這一類的媒體在傳送時有嚴格的要求,若有延誤往往無法滿足接收端的要求,所以多媒體系統在設計上也會跟傳統一般化的作業系統不同。

發表迴響

會員登入