作業系統設計與實現


作業系統是一個允許使用者應用程式與系統硬體互動的結構。作業系統本身不提供任何功能,但它提供了一個環境,使不同的應用程式和程式能夠完成有用的工作。

在設計和實現作業系統時,可能會出現許多問題。這些問題在作業系統設計與實現中都有涉及。

Operating System Design

作業系統設計目標

在設計作業系統時,定義其所有目標和規範是相當複雜的。設計會根據作業系統的型別而變化,例如批處理系統、分時系統、單使用者系統、多使用者系統、分散式系統等。

在設計作業系統時,基本上有兩種型別的目標:

使用者目標

根據使用者的需求,作業系統應該方便、易用、可靠、安全和快速。然而,這些規範並不十分實用,因為沒有固定的方法來實現這些目標。

系統目標

作業系統應該易於設計、實現和維護。這些是建立、維護和操作作業系統的人員所需的規範。但是,也沒有具體的方法來實現這些目標。

作業系統機制與策略

由於設計作業系統是一項極具創造性的任務,因此沒有特定的方法。但是,有一些通用的軟體原則適用於所有作業系統。

機制和策略之間的一個微妙區別在於,機制展示瞭如何做某事,而策略展示了做什麼。策略可能會隨著時間的推移而改變,這將導致機制的改變。因此,最好有一個通用的機制,即使策略發生變化,也只需要很少的更改。

例如 - 如果機制和策略是獨立的,那麼如果策略發生變化,機制只需要很少的更改。如果一個策略偏向於 I/O 密集型程序而不是 CPU 密集型程序,那麼將策略更改為偏向於 CPU 密集型程序將不會改變機制。

作業系統實現

作業系統在設計完成後需要進行實現。早期的作業系統是用匯編語言編寫的,但現在使用高階語言。第一個不是用匯編語言編寫的系統是 Burroughs 計算機的主控程式 (MCP)。

高階語言的優勢

使用高階語言實現作業系統有多個優點,例如:程式碼編寫速度更快,程式碼更緊湊,也更容易除錯和理解。此外,如果作業系統是用高階語言編寫的,則可以輕鬆地將其從一個硬體平臺移植到另一個硬體平臺。

高階語言的劣勢

使用高階語言實現作業系統會導致速度下降和儲存需求增加。但是,在現代系統中,只有少量程式碼需要高效能,例如 CPU 排程程式和記憶體管理器。此外,如果需要,系統中的瓶頸例程可以用匯編語言等效項替換。

更新時間: 2020年6月22日

27K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.