作業系統體系結構

晓梦ペ發表於2024-03-31

作業系統體系結構

image-20240316230420598

image-20240316230434959

時鐘管理:利用時鐘中斷實現計時功能

原語:原語是一種特殊的程式,具有原子性。也就是說,這段程式的執行必須一氣呵成,不可被“中斷”

非核心功能:Ubuntu、Centos 的開發團隊,其主要工作是實現非核心功能,而核心都是用了 Linux 核心

核心

核心是作業系統最基木,最核心的部分實現作業系統核心功能的那些程式就是核心程式。

注意:作業系統核心需要執行在核心態;作業系統的非核心功能執行在使用者態

根據作業系統不同:大核心,微核心

image-20240316230554876

一個故事:

現在,應用程式想要請求作業系統的服務,這個服務的處理同時涉及到程序管理、儲存管理、裝置管理

image-20240316230747172

注意:變態的過程是有成本的,要消耗不少時間,頻繁地變態會降低系統效能

大核心&微核心區別

image-20240316230831271

image-20240316230851316

分層結構

核心分多層,每層可單向呼叫更低一層提供的介面

image-20240316230942806

優點

  1. 便於除錯和驗證,自底向上逐層除錯驗證
  2. 易擴充和易維護,各層之間呼叫介面清晰固定

缺點

  1. 僅可呼叫相鄰低層,難以合理定義各層的邊界
  2. 效率低,不可跨層呼叫,系統呼叫執行時間長

模組化

將核心劃分為多個模組,各模組之間相互協作。

image-20240316231515887

核心=主模組+可載入核心模組

主模組:只負責核心功能,如程序排程、記憶體管理可載入

核心模組:可以動態載入新模組到核心,而無需重新編譯整個核心

image-20240316231458786

優點:

1,模組間邏輯清晰易於維護,確定模組間介面後即可多模組同時開發

2,支援動態載入新的核心模組(如:安裝裝置驅動程式、安裝新的檔案系統模組到核心) ,增強OS適應性

3,任何模組都可以直接呼叫其他模組,無需採用訊息傳遞進行通訊,效率高

缺點:

1.模組間的介面定義未必合理、實用

2.模組間相互依賴,更難除錯和驗證

大核心(單核心)

image-20240316231644807

所有的系統功能都放在核心裡(大核心結構的OS通常也採用了“模組化”的設計思想)

優點:

1.效能高,核心內部各種功能都可以直接相互呼叫

缺點:

1.核心龐大功能複雜,難以維護

2,大核心中某個功能模組出錯,就可能導致整個系統崩潰

微核心

image-20240316231909630

只把中斷、原語、程序通訊等最核心的功能放入核心,程序管理、檔案管理、裝置管理等功能以使用者程序的形式執行在使用者態

優點

1.核心小功能少、易於維護,核心可靠性高

2.核心外的某個功能模組出錯不會導致整個系統崩潰

缺點:

1.效能低,需要頻繁的切換使用者態/核心態。使用者態下的各功能模組不可以直接相互呼叫,只能透過核心的“訊息傳遞“來間接通訊

  1. 使用者態下的各功能模組不可以直接相互呼叫只能透過核心的“訊息傳遞”來間接通訊

外核

核心負責程序排程、程序通訊等功能,

外核負責為使用者程序分配未經抽象的硬體資源,且由外核負責保證資源使用安全

什麼叫未經抽象的硬體資源

磁碟/記憶體的儲存空間

普通作業系統,想要申請使用記憶體空間,希望一片連續的。但是需要經過虛擬的。實際上記憶體裡的東西是離散的,,,

但是,用外核的作業系統可以直接分配未經抽象的!

如果使用者知道這個東西需要頻繁的隨機訪問,可以申請連續的磁碟塊!!!或者連續的記憶體空間!!

效果就是右邊那個粉色箭頭。

image-20240316232513548

優點:

1,外核可直接給使用者程序分配"不虛擬、不抽象"的硬體資源,使使用者程序可以更靈活的使用硬體資源

2.減少了虛擬硬體資源的“對映層",提升效率

缺點:

  1. 降低了系統的一致性
  2. 使系統變得更復雜

相關文章