第二章 操做系統結構java
在具備多個命令解釋程序選擇的系統中,解釋程序被稱爲外殼(shell)程序員
命令解釋程序的主要做用是獲取並執行用戶指定的下一條命令。shell
有三種應用程序員經常使用的API,適用於windows系統的win32API,適用於POSIX系統的POSIX API,以及用於設計運行於JAVA虛擬機程序的JAVA API。windows
操做系統傳遞參數有三種方法:安全
2.4系統調用類型框架
系統調用可分紅五大類:進程控制,文件管理,設備管理,信息維護和通訊。模塊化
控制卡:一個批處理系統概念,一個管理進程執行的命令。當出現一個錯誤的時候,有的程序容許控制卡指出一個具體的恢復動做。工具
許多操做系統都提供程序的時間表,以表示一個程序在某個位置或某些位置執行所花的時間。時間表要求具備跟蹤功能或定時時間中斷。操作系統
有兩種通訊模型:消息傳遞模型和共享內存模型。命令行
每一個進程也有進程名,它一般轉換成標識符以便操做系統引用。
共享內存要求兩個甚至多個進程都贊成取消內存訪問限制。這樣它們就能夠經過讀寫公共區域來交換信息。進程負責確保它們不會同時向同一個地方寫。
一個重要原理是策略和機制的區分,機制決定如何作,策略決定作什麼。
在MS-DOS系統中,並無很好地區分接口和功能層次。
UNIX是另外一個最初受到硬件功能限制的系統,它由內核和系統程序兩個獨立的部分組成,內核進一步分紅一系列接口和驅動程序。內核經過系統調用以提供文件系統,CPU調度,內存管理和其餘操做系統功能,這一層組合了大量的功能,這種單一式的結構使得UNIX難以加強。
系統模塊化有許多方法,一種方法是分層法。
分層的方法主要有點在於構造和調試的簡單化。
微內核:包括最小的進程和內存管理以及通訊功能,主要功能是使客戶程序和運行在用戶空間的各類服務之間進行通訊。通訊以消息傳遞形式提供。微內核方法的好處之一在於便於擴充操做系統,全部新服務能夠在用戶空間增長,絕大多數服務是做爲用戶而不是做爲內核進程來運行,所以微內核也就提供了更好的安全性和可靠性。
也許最新的操做系統設計方法是用面向對象變成技術來生成模塊化的內核。這種方法更爲高校,由於模塊不須要調用消息傳遞來通訊。
蘋果Mac OS X操做系統採用一種混合結構。採用分層技術構建操做系統,其中一層包括Mach微內核。
Mach提供內存管理,支持遠程程序調用和進程間通訊工具,包括消息傳遞和線程調度。而BSD提供了BSD命令行接口,以及POSIX API的實現。
虛擬機軟件能夠運行在內核模式,由於它就是操做系統,虛擬機自己只能運行在用戶模式。
JVM是一個抽象計算機的規範,它包括類加載器和執行與平臺無關的字節碼的JAVA解釋器。
類加載器從java程序和java API中加載編譯過的.class文件,以便爲java解釋器所執行。
若是在軟件上實現JVM,JAVA解釋程序一次只能執行一個字節代碼,一種更快的軟件技術是採用JIT(just-in-time)編譯器。第一次調用JAVA方法時,該方法的字節碼被轉換成主機的本地機器語言,而後,這些操做被隱藏起來,以使隨後的調用經過採用本地機器指令和字節碼操做來完成。而再也不須要所有從新解釋一次。
.NET框架是一套包含了類庫集合,執行環境和軟件開發平臺的技術。
.NET框架的核心是公共語言運行時間(CLR),CLR是.NET虛擬機的實現。
可擦鞋制度存儲器(EPROM)
全部形式的ROM都是固件,由於它們的特徵介於硬件和軟件之間。