操作系統設計與實現(一)


本人寫於2015年5月6日,恰逢人生第一個操作系統完成(類Linux)完成,感謝給過我幫助的人!

以此紀念我將開寫操作系統方面的博客,本次博客借鑒了《現代操作系統》和《操作系統概念》《LInux內核設計與實現》這三本書,共需要60章

本人剛剛初中畢業,學識水平有限,不足之處有望專業人士點評

-------------------------------------------------------------------------------------------------------------------------------------分割線-------------------------------------------------------------------------------------------------------------------------------------

2019年1/10由github搬運(本人的)

操作系統導論概念

一 操作系統的功能

計算機系統可分成四個組件:硬件、操作系統、應用程序和用戶

硬件:為系統提供基本的計算資源

應用程序:規定了用戶解決計算問題而使用這些資源的方式

操作系統控制硬件,並協調各個用戶應用程序的使用

以下我通過兩個視角來討論操作系統--------用戶視角和系統視角

 

 

 

1.1.1 用戶視角

個人PC方面:主要注重使用方便,次要的是性能,而不太在乎資源利用

與大型機和小型機的終端方面:由於用戶通過終端訪問同一計算機,這些用戶共享資源並且可以交換信息,這種操作系統的設計目標是資源利用率

工作站方面:這類工作站與其他工作站和服務器相連,這類操作系統設計需要兼顧使用方便性和資源利用率

1.1.2 系統視角

對於系統方面可將操作系統視作資源分配器,對於多個用戶訪問或微型計算機,資源分配是特別重要的,操作系統的另一個不同的視角是:強調控制各種I/O設備和用戶程序的需求

操作系統可看作一個控制程序,控制程序管理用戶程序的執行,以防止計算機資源的錯誤或不當使用,其特別注重I/O設備的運行和控制

補充知識點:

摩爾定律:集成電路可容納元器件的數且每隔18個月便會翻倍

操作系統的定義

操作系統的存在是因為它們提供了合理方式來解決可用計算機系統的問題。而對於操作系統並沒有廣泛和准確的定義,較為公認的是:操作系統是一直運行在計算機上的程序(通常稱為內核(kernel)),對於移動操作系統ios android等,除了內核,還有中間件等等

二 計算機系統的組成

1 計算機系統的運行

當計算機開啟時,它需要一個初始程序,該初始程序或引導程序通常一般很簡單,通常位於只讀內存(ROM)或電可擦可編程內存(EEPROM),它初始化各個組件,引導程序必須知道如何加載操作系統並且執行系統,所以,引導程序必須定位操作系統內核

並且它加載到內存,一旦內核加載到內存並執行,則內核就開始提供服務,系統程序也提供一些服務,它們在啟動時加載到內存而成為系統進程

事件發生通常通過硬件或軟件的中斷來通知,軟件也可以執行特別操作即系統調用(也稱為監督程序調用),以觸發中斷

當CPU被中斷時,它停止正在做的事情,並立即轉到固定位置再繼續執行,該固定位置通常包含中斷服務程序的開始地址,中斷服務程序開始執行,在執行完后,CPU重新執行被中斷的計算

中斷是計算機體系結構的重要部分,中斷應將控制轉移到合適的中斷服務程序,處理這一轉移的直接方法是,調用一個通用程序以檢查中斷信息,該程序會調用特定的中斷處理程序,由於只有少量預先定義的中斷,所以可以通過中斷處理程序的指針表來提高速度,這樣通過指針表可以間接調用中斷處理程序,指針表通常位於低地址內存(前100左右),這些位置包含各種設備的中斷處理程序的地址,這種地址的數組或中間向量,對於任意給定的中斷請求,可以通過唯一的索引號來索引,進而提供設備的中斷處理程序的地址

中斷體系結構也應該保存中斷指令的地址,現代體系結構將返回地址保存在系統堆棧上,如果中斷程序需要修改處理器狀態,如修改寄存器的值,則應明確保存當前的狀態,並在返回之前恢復該狀態,在處理完中斷之后,保存的返回地址會加載到程序計數器,被中斷的計算重新開始

 

 

 

I/O結構

三 計算機系統的體系結構

單處理器系統

單處理器系統只有一個CPU以便執行一個通用指令集,該指令集包括執行用戶進程的指令

多處理器系統

多處理器系統也稱為並行系統或多核系統,這類系統有兩個或多個緊密通信的CPU,它們共享計算機總線,有時還共享時鍾,內存和外設

多處理器系統有以下三個優勢:

增加吞吐量:增加處理器數量,以期能在更短時間完成更多工作

規模經濟:多處理器系統的價格要低於相同功能的多個單處理器系統的價格

增加可靠性:如果將功能分布在多個處理器上,那么單個處理器的失靈不會使得整個系統停止,而只會使它變慢

一般多處理器系統分為兩種非對稱多處理和對稱多處理

非對稱多處理:每個處理器你都有各自特定的任務,一個主處理器控制系統,其他處理器或者向主處理器要任務要么做預先規定的任務,這種方案被稱為主從關系

對稱多處理(SMP):每個處理器參與完成操作系統的所有任何,SMP表示所有處理器對等,處理器之間沒有主從關系,每個處理器都有自己的寄存器集,也有私有或本地緩存,不過所有的處理器都共享物理內存

多處理可使系統的內存訪問模型從均勻內存訪問(UMA)改成非均勻內存訪問(NUMA),UMA下,CPU訪問RAM的所需時間相同,NUMA時間會更多,這會降低性能,不過操作系統可以通過資源管理來改善NUMA問題

注意:多核系統稱為多處理器系統,但不是所有的多處理器系統都是多核的。多核指多個計算核到單個芯片,這種多處理器叫做多核

 

 

 

 

集群系統

系統將多個CPU組合在一起,這與多處理器不同,它由兩個或多個獨立系統組成,這種結構是松耦合的。

集群具有高可用性即集群中的一個或多個系統出錯,仍可繼續使用。

集群出對稱的也可以是非對稱的,對於非對稱集群一台機器處於熱備份狀態,熱備份主機只監視活的機器,如果活的機器失效,則熱備份機器會變成活的機器,對於對稱集群,兩個或多個主機都運行程序,並且互相監視,由於充分使用現有硬件,所有更為有效。

每個集群的所有計算機可以並發執行一個應用程序,即將一個程序分成多個部分,而每個部分可以並行運行在計算機和集群計算機上的各個核上(類似於微服務),這叫做並行計算,提供了高性能計算

同時還有並行集群,並行集群允許多個主機訪問共享存儲的同一數據,有時候需要針對文件訪問加以加鎖或控制,則需要分布式鎖管理器(DLM)。

例子:

Beowulf集群

Beowulf集群的設計用於解決高性能的計算任務,每個Beowulf由商用硬件通過LAN連在一起,這種集群無需特定的軟件包,每個節點采用開源軟件庫來通信,每個節點采用LInux操作系統。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM