操做系統結構

如下討論操做系統的五種不一樣的結構:java

1.總體結構

最經常使用的一種組織方式。它的結構實際上就是「無結構」,整個操做系統是一組函數的集合,每一個函數能夠去調用任何其餘的函數。服務器

  操做系統提供的服務(系統調用)的請求過程:分佈式

  1. 將參數放入預先肯定的位置,如寄存器或棧
  2. 執行一條特殊的陷阱指令(訪管程序調用指令或內核調用指令)
  3. CPU從用戶態切換到內核態,並將控制權交給操做系統。

  

這種模型中,每一個系統調用都由一個服務列程來完成。而工具函數則負責一些輔助性的工做,如從用戶程序獲取數據。函數

    

  1. 一個主程序,用來調用被請求的服務例程
  2. 一組服務例程,用來實現相應的系統調用
  3. 一組工具函數,用來幫助服務例程的實現

2.分層結構

  在總體結構模型的基礎上進一步推廣獲得分層結構。工具

  

  分層方案只是在設計上提供一些方便,系統的各個部分最終仍然被連接成一個完整且單一的目標程序。操作系統

 

3.虛擬機

  VM/370系統設計

  java虛擬機JVM3d

4.外核

  在內核下運行的最底層軟件是一個稱爲外核的程序,其任務是爲虛擬機分配資源並確保資源的使用不會發生衝突。blog

  外核方案的優勢在於它省去了一個映射層。進程

5.客戶-服務器模型

  將大多數操做系統功能由用戶進程來實現,只保留一個最小的內核。

  爲了獲取某項服務,用戶進程(客戶進程),將此請求發送給一個服務器進程,服務器進程隨後完成此操做並將應答信息送回。

  

此模型還適用於分佈式系統:

  

相關文章
相關標籤/搜索