系統設計的首要問題是定義目標和規範。
從高層來說,系統設計取決於所選硬體和系統型別:批處理、分時、單使用者、多使用者、分布式、實時或通用。
除了最高設計層外,需求可能很難說清,但需求可以分為兩類:使用者目標和系統目標。
使用者要求系統具有一定的優良效能:系統應該易於學習和使用、可靠、安全和快速。
研發人員為設計、建立、維護、執行作業系統,也可以定義一組相似要求:系統應該易於設計、實現和維護,也應該靈活、可靠、正確且高效。
作業系統的分析與設計是乙個很有創意的工作,軟體工程裡的軟體需求分析與系統設計的基本理論對此會有一些啟發。
機制決定如何做,策略決定做什麼。
os設計的乙個重要原則是機制與策略分離,這對系統的靈活性很重要。
微核心os通過實現一組基本且簡單的模組,將機制與策略的分離用到了機制。
對於所有的資源分配,策略決定非常重要。只要決定是否分配資源,就應該做出策略決定。只要問題是怎麼做而不是做什麼,就要由機制來決定。
在os被設計以後,就應該被實現。
os由很多程式構成,且由許多程式設計師在很長時間內編寫,因此很難形成通用原則。
早期的os是用組合語言寫的,現在大多都用c/c++配組合語言寫的。
實際上,os可用多種語言編寫:核心底層可以用組合語言寫而高層函式用c,應用程式可以用c/c++或者解釋性指令碼語言如python甚至shell指令碼。
使用高階語言或至少系統實現語言來實現os的優勢在於
作業系統設計與實現
額,沒有看完,但是 目前看得還是沒有壓力就是 好奇心和問題都太多,丟下一段 對於如下一條命令 cp file1 file2 其功能是為檔案file1作乙個拷貝file2,在shell建立乙個子程序後,子程序執行程式cp,同時向該程式傳遞執行的引數 源檔名和目標檔名。cp程式的主函式格式如下 main...
作業系統設計與實現 系統呼叫
當前系統呼叫都採用的是posix標準,posix標準以其簡潔易用在類unix作業系統中流行,以至於linux從一開始就遵從posix標準。本節介紹應用程式和作業系統之間的介面系統呼叫。採用的是 posix 這個介面被 minix3,unix,linux 等許多現代作業系統所遵循。系統呼叫以 c 語言...
《作業系統 精髓與設計原理》 作業系統概述
作業系統為應用程式提供與硬體互動的介面,它的主要功能是為執行中的程式動態地分配可共享的系統資源,與之相關的研究主要涉及記憶體 程序及外設的管理和排程。相鄰層次間的介面不斷改變。一方面,原來由作業系統負責的功能被遷移到硬體中,另一方面,一些與應用程式解決的問題無關的程式化函式也被加入作業系統中 作業系...