操做系統的目標與應用環境有關。例如在查詢系統中所用的OS,但願能提供良好的人—機交互性;對於應用於工業控制、武器控制以及多媒體環境下的OS,要求其具備實時性;而對於微機上配置的OS,則更看重的是其使用的方便性。程序員
1. 方便性 2. 有效性 3. 可擴充性 4. 開放性算法
1. OS做爲用戶與計算機硬件系統之間的接口 安全
OS做爲用戶與計算機硬件系統之間接口的含義是:OS處於用戶與計算機硬件系統之間,用戶經過OS來使用計算機系統。或者說,用戶在OS幫助下可以方便、快捷、可靠地操縱計算機硬件和運行本身的程序。圖1-1是OS做爲接口的示意圖。 服務器
圖1-1 OS做爲接口的示意圖網絡
2. OS做爲計算機系統資源的管理者 數據結構
在一個計算機系統中,一般都含有多種硬件和軟件資源。概括起來可將這些資源分爲四類:處理機、存儲器、I/O設備以及文件(數據和程序)。多線程
相應地,OS的主要功能也正是對這四類資源進行有效的管理。處理機管理是用於分配和控制處理機;存儲器管理主要負責內存的分配與回收;I/O設備管理是負責I/O設備的分配(回收)與操縱;文件管理是用於實現對文件的存取、共享和保護。可見,OS的確是計算機系統資源的管理者。併發
3. OS實現了對計算機資源的抽象 異步
對於一臺徹底無軟件的計算機系統(即裸機),因爲它向用戶提供的僅是硬件接口(物理接口),所以,用戶必須對物理接口的實現細節有充分的瞭解,這就導致該物理機器難於普遍使用。爲了方便用戶使用I/O設備,人們在裸機上覆蓋上一層I/O設備管理軟件,如圖1-2所示,由它來實現對I/O設備操做的細節,並向上將I/O設備抽象爲一組數據結構以及一組I/O操做命令,如read和write命令,這樣用戶便可利用這些數據結構及操做命令來進行數據輸入或輸出,而無需關心I/O是如何具體實現的。 分佈式
圖1-2 I/O軟件隱藏了I/O操做實現的細節
1.不斷提升計算機資源利用率
2. 方便用戶
3. 器件的不斷更新換代
4. 計算機體系結構的不斷髮展
5. 不斷提出新的應用需求
在20世紀50年代中期,出現了第一個簡單的批處理OS;
60年代中期開發出多道程序批處理系統;
不久又推出分時系統,
與此同時,用於工業和武器控制的實時OS也相繼問世。
20世紀70到90年代,是VLSI和計算機體系結構大發展的年代,致使了微型機、多處理機和計算機網絡的誕生和發展,與此相應地,也相繼開發出了微機OS、多處理機OS和網絡OS,並獲得極爲迅猛的發展。
1. 人工操做方式
早期的操做方式是由程序員將事先已穿孔的紙帶(或卡片),裝入紙帶輸入機(或卡片輸入機),再啓動它們將紙帶(或卡片)上的程序和數據輸入計算機,而後啓動計算機運行。僅當程序運行完畢並取走計算結果後,才容許下一個用戶上機。這種人工操做方式有如下兩方面的缺點:
(1) 用戶獨佔全機,即一臺計算機的所有資源由上機用戶所獨佔。
(2) CPU等待人工操做。當用戶進行裝帶(卡)、卸帶(卡)等人工操做時,CPU及內存等資源是空閒的。
2. 脫機輸入/輸出(Off-Line I/O)方式
爲了解決人機矛盾及CPU和I/O設備之間速度不匹配的矛盾,20世紀50年代末出現了脫機I/O技術。該技術是事先將裝有用戶程序和數據的紙帶裝入紙帶輸入機,在一臺外圍機的控制下,把紙帶(卡片)上的數據(程序)輸入到磁帶上。當CPU須要這些程序和數據時,再從磁帶上高速地調入內存。
圖1-3 脫機I/O示意圖
1. 單道批處理系統(Simple Batch Processing System)的處理過程
爲實現對做業的連續處理,須要先把一批做業以脫機方式輸入到磁帶上,並在系統中配上監督程序(Monitor),在它的控制下,使這批做業能一個接一個地連續處理。
圖1-4 單道批處理系統的處理流程
2. 單道批處理系統的缺點
單道批處理系統最主要的缺點是,系統中的資源得不到充分的利用。這是由於在內存中僅有一道程序,每逢該程序在運行中發出I/O請求後,CPU便處於等待狀態,必須在其I/O完成後才繼續運行。又因I/O設備的低速性,更使CPU的利用率顯著下降。圖1-5示出了單道程序的運行狀況,從圖能夠看出:在t2~t三、t6~t7時間間隔內CPU空閒。
圖1-5 單道程序的運行狀況
(Multiprogrammed Batch Processing System)
爲了進一步提升資源的利用率和系統吞吐量,在20世紀60年代中期引入了多道程序設計技術,由此造成了多道批處理系統。圖1-6示出了四道程序時的運行狀況。
圖1-6 多道程序的運行狀況
多道批處理系統的優缺點以下:
(1) 資源利用率高。引入多道批處理能使多道程序交替運行,以保持CPU處於忙碌狀態;在內存中裝入多道程序可提升內存的利用率;此外還能夠提升I/O設備的利用率。
(2) 系統吞吐量大。能提升系統吞吐量的主要緣由可歸結爲:① CPU和其它資源保持「忙碌」狀態;② 僅看成業完成時或運行不下去時才進行切換,系統開銷小。
(3) 平均週轉時間長。因爲做業要排隊依次進行處理,於是做業的週轉時間較長,一般需幾個小時,甚至幾天。
(4) 無交互能力。用戶一旦把做業提交給系統後,直至做業完成,用戶都不能與本身的做業進行交互,修改和調試程序極不方便。
多道批處理系統是一種十分有效,但又很是複雜的系統,爲使系統中的多道程序間能協調地運行,系統必須解決下述一系列問題:
(1) 處理機爭用問題。既要能知足各道程序運行的須要,又要能提升處理機的利用率。
(2) 內存分配和保護問題。系統應能爲每道程序分配必要的內存空間,使它們「各得其所」,且不會因某道程序出現異常狀況而破壞其它程序。
(3) I/O設備分配問題。系統應採起適當的策略來分配系統中的I/O設備,以達到既能方便用戶對設備的使用,又能提升設備利用率的目的。
(4) 文件的組織和管理問題。系統應能有效地組織存放在系統中的大量的程序和數據,使它們既便於用戶使用,又能保證數據的安全性。
(5) 做業管理問題。系統中存在着各類做業(應用程序),系統應能對系統中全部的做業進行合理的組織,以知足這些做業用戶的不一樣要求。
(6) 用戶與系統的接口問題。爲使用戶能方便的使用操做系統,OS還應提供用戶與OS之間的接口。
(Time Sharing System)
若是說推進多道批處理系統造成和發展的主要動力是提升資源利用率和系統吞吐量,那麼,推進分時系統造成和發展的主要動力,則是爲了知足用戶對人—機交互的需求,由此造成了一種新型OS。用戶的需求具體表如今如下幾個方面:
(1) 人—機交互。
(2) 共享主機。
在多道批處理系統中,用戶沒法與本身的做業進行交互的主要緣由是:做業都先駐留在外存上,即便之後被調入內存,也要通過較長時間的等待後方能運行,用戶沒法與本身的做業進行交互。
1) 及時接收
2) 及時處理
分時系統與多道批處理系統相比,具備很是明顯的不一樣特性,能夠概括成如下四個方面:
(1) 多路性。
(2) 獨立性。
(3) 及時性。
(4) 交互性。
(Real Time System)
隨着計算機應用的普及,實時系統的類型也相應增多,下面列出當前常見的幾種:
(1) 工業(武器)控制系統。
(2) 信息查詢系統。
(3) 多媒體系統。
(4) 嵌入式系統。
(1) 週期性實時任務和非週期性實時任務。
(2) 硬實時任務和軟實時任務。
(1) 多路性。
(2) 獨立性。
(3) 及時性。
(4) 交互性。
(5) 可靠性。
1. 什麼是實時操做系統? 規定時間,立馬響應 實時操做系統(RTOS)是指當外界事件或數據產生時,可以接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間以內來控制生產過程或對處理系統做出快速響應,並控制全部實時任務協調一致運行的操做系統。其特色是及時響應和高可靠性。實時系統又分爲硬實時系統和軟實時系統,硬實時系統要求在規定的時間內必須完成操做,這是在操做系統設計時保證的;軟實時則只要按照任務的優先級,儘量快地完成操做便可。 2. 什麼是分時操做系統? 快速切換,好像獨佔 使一臺計算機同時爲幾個、幾十個甚至幾百個用戶服務的一種操做系統。把計算機與許多終端用戶鏈接起來,分時操做系統將系統處理機時間與內存空間按必定的時間間隔,輪流地切換給各終端用戶的程序使用(時間片的概念)。因爲時間間隔很短,每一個用戶的感受就像他獨佔計算機同樣。 3. 實時操做系統須要知足哪些特徵? 多任務:因爲真實世界的事件的異步性,可以運行許多併發進程或任務是很重要的。多任務提供了一個較好的對真實世界的匹配,由於它容許對應於許多外部事件的多線程執行。系統內核分配CPU給這些任務來得到併發性。 搶佔調度:真實世界的事件具備繼承的優先級,在分配CPU的時候要注意到這些優先級。基於優先級的搶佔調度,任務都被指定了優先級,在可以執行的任務(沒有被掛起或正在等待資源)中,優先級最高的任務被分配CPU資源。換句話說,當一個高優先級的任務變爲可執行態,它會當即搶佔當前正在運行的較低優先級的任務。 任務間的通信與同步:在一個實時系統中,可能有許多任務做爲一個應用的一部分執行。系統必須提供這些任務間的快速且功能強大的通訊機制。內核也要提供爲了有效地共享不可搶佔的資源或臨界區所需的同步機制。 任務與中斷之間的通訊:儘管真實世界的事件一般做爲中斷方式到來,但爲了提供有效的排隊、優先化和減小中斷延時,咱們一般但願在任務級處理相應的工做。因此須要在任務級和中斷級之間存在通訊。 4. 分時操做系統須要知足哪些特徵? 交互性:用戶與系統進行人機對話。 5. 實時操做系統主要應用領域 主要應用於過程控制、數據採集、通訊、多媒體信息處理等對時間敏感的場合。例如:機器人的運動控制、無人駕駛等。 6. 分時操做系統主要應用領域 如今流行的PC,服務器都是採用這種運行模式,即把CPU的運行分紅若干時間片分別處理不一樣的運算請求。 |
1) CP/M
2) MS-DOS
單用戶多任務操做系統的含義是,只容許一個用戶上機,但容許用戶把程序分爲若干個任務,使它們併發執行,從而有效地改善了系統的性能。
多用戶多任務操做系統的含義是,容許多個用戶經過各自的終端,使用同一臺機器,共享主機系統中的各類資源,而每一個用戶程序又可進一步分爲幾個任務,使它們能併發執行,從而可進一步提升資源利用率和系統吞吐量。在大、中和小型機中所配置的大可能是多用戶多任務操做系統,而在32位微機上,也有很多配置的是多用戶多任務操做系統,其中最有表明性的是UNIX OS。
前面所介紹的多道批處理系統、分時系統和實時系統這三種基本操做系統都具備各自不一樣的特徵,如批處理系統有着高的資源利用率和系統吞吐量;分時系統能得到及時響應;實時系統具備實時特徵。除此以外,它們還共同具備併發、共享、虛擬和異步四個基本特徵。
正是系統中的程序能併發執行這一特徵,才使得OS能有效地提升系統中的資源利用率,增長系統的吞吐量。
1. 並行與併發
並行性和併發性是既類似又有區別的兩個概念。並行性是指兩個或多個事件在同一時刻發生。而併發性是指兩個或多個事件在同一時間間隔內發生。
2. 引入進程
在一個未引入進程的系統中,在屬於同一個應用程序的計算程序和I/O程序之間只能是順序執行,即只有在計算程序執行告一段落後,才容許I/O程序執行;反之,在程序執行I/O操做時,計算程序也不能執行。但在爲計算程序和I/O程序分別創建一個進程(Process)後,這兩個進程即可併發執行。若對內存中的多個程序都分別創建一個進程,它們就能夠併發執行,這樣便能極大地提升系統資源的利用率,增長系統的吞吐量。
通常狀況下的共享與操做系統環境下的共享其含義並不徹底相同。
1. 互斥共享方式
系統中的某些資源,如打印機、磁帶機等,雖然能夠提供給多個進程(線程)使用,但應規定在一段時間內,只容許一個進程訪問該資源。爲此,在系統中應創建一種機制,以保證多個進程對這類資源的互斥訪問。
2. 同時訪問方式
系統中還有另外一類資源,容許在一段時間內由多個進程「同時」對它們進行訪問。這裏所謂的「同時」,在單處理機環境下是宏觀意義上的,而在微觀上,這些進程對該資源的訪問是交替進行的。典型的可供多個進程「同時」訪問的資源是磁盤設備。一些用重入碼編寫的文件也能夠被「同時」共享,即容許若干個用戶同時訪問該文件。
1. 時分複用技術
(1) 虛擬處理機技術。
(2) 虛擬設備技術。
2. 空分複用技術
20世紀初,電信業中就已使用頻分複用技術來提升信道的利用率。它是指將一個頻率範圍比較寬的信道劃分紅多個頻率範圍較窄的信道(稱爲頻帶),其中的任何一個頻帶都僅供一對用戶通話。早期的頻分複用技術只能將一條物理信道劃分爲幾條到幾十條話路,後來又很快發展到成千上萬條話路,每條話路供一對用戶通話。再後來在計算機中也把空分複用技術用於對存儲空間的管理,用以提升存儲空間的利用率。
在多道程序環境下,系統容許多個進程併發執行。在單處理機環境下,因爲系統中只有一臺處理機,於是每次只容許一個進程執行,其他進程只能等待。當正在執行的進程提出某種資源要求時,如打印請求,而此時打印機正在爲其它進程打印,因爲打印機屬於臨界資源,所以正在執行的進程必須等待,並釋放出處理機,直到打印機空閒,並再次得到處理機時,該進程方能繼續執行。可見,因爲資源等因素的限制,使進程的執行一般都不可能「一鼓作氣」,而是以「停停走走」的方式運行。
引入OS的主要目的是,爲多道程序的運行提供良好的運行環境,以保證多道程序能有條不紊地、高效地運行,並能最大程度地提升系統中各類資源的利用率,方便用戶的使用。爲此,在傳統的OS中應具備處理機管理、存儲器管理、設備管理和文件管理等基本功能。此外,爲了方便用戶使用OS,還需向用戶提供方便的用戶接口。
1. 進程控制
2. 進程同步
3. 進程通訊
4. 調度
(1) 做業調度。
(2) 進程調度。
內存分配的主要任務是:
(1) 爲每道程序分配內存空間,使它們「各得其所」。
(2) 提升存儲器的利用率,儘可能減小不可用的內存空間(碎片)。
(3) 容許正在運行的程序申請附加的內存空間,以適應程序和數據動態增加的須要。
OS在實現內存分配時,可採起靜態和動態兩種方式:
(1) 靜態分配方式。每一個做業的內存空間是在做業裝入時肯定的,在做業裝入後的整個運行期間不容許該做業再申請新的內存空間,也不容許做業在內存中「移動」。
(2) 動態分配方式。每一個做業所要求的基本內存空間雖然也是在裝入時肯定的,但容許做業在運行過程當中繼續申請新的附加內存空間,以適應程序和數據的動態增加,也容許做業在內存中「移動」。
內存保護的主要任務是:
① 確保每道用戶程序都僅在本身的內存空間內運行,彼此互不干擾。
② 毫不容許用戶程序訪問操做系統的程序和數據,也不容許用戶程序轉移到非共享的其它用戶程序中去執行。
在多道程序環境下,因爲每道程序經編譯和連接後所造成的可裝入程序其地址都是從0開始的,但不可能將它們從「0」地址(物理)開始裝入內存,導致(各程序段的)地址空間內的邏輯地址與其在內存空間中的物理地址並不相一致。爲保證程序能正確運行,存儲器管理必須提供地址映射功能,即可以將地址空間中的邏輯地址轉換爲內存空間中與之對應的物理地址。該功能應在硬件的支持下完成。
內存擴充並不是是從物理上去擴大內存的容量,而是藉助於虛擬存儲技術,從邏輯上擴充內存容量,使用戶所感受到的內存容量比實際內存容量大得多,以便讓更多的用戶程序能併發運行。這樣既知足了用戶的須要,又改善了系統的性能。爲了能在邏輯上擴充內存,系統必須設置內存擴充機制(包含少許的硬件),用於實現下述各功能:
(1) 請求調入功能。
(2) 置換功能。
設備管理的主要任務以下:
(1) 完成用戶進程提出的I/O請求,爲用戶進程分配所需的I/O設備,並完成指定的I/O操做。
(2) 提升CPU和I/O設備的利用率,提升I/O速度,方便用戶使用I/O設備。
爲實現上述任務,設備管理應具備緩衝管理、設備分配和設備處理以及虛擬設備等功能。
1. 緩衝管理 2. 設備分配 3. 設備處理
1. 文件存儲空間的管理
2. 目錄管理
3. 文件的讀/寫管理和保護
(1) 文件的讀/寫管理。 (2) 文件保護。
(1) 聯機用戶接口。 (2) 脫機用戶接口。 (3) 圖形用戶接口。
程序接口是爲用戶程序在執行中訪問系統資源而設置的,是用戶程序取得操做系統服務的惟一途徑。它是由一組系統調用組成的,每個系統調用都是一個能完成特定功能的子程序。每當應用程序要求OS提供某種服務(功能)時,便調用具備相應功能的系統調用(子程序)。早期的系統調用都是用匯編語言提供的,只有在用匯編語言書寫的程序中才能直接使用系統調用。
現代操做系統是在傳統操做系統基礎上發展起來的,它除了具備傳統操做系統的功能外,還增長了面向安全、面向網絡和麪向多媒體等功能。
1. 系統安全
(1) 認證技術。 (2) 密碼技術。 (3) 訪問控制技術。 (4) 反病毒技術。
2. 網絡的功能和服務
(1) 網絡通訊。 (2) 資源管理。 (3) 應用互操做。
3. 支持多媒體
(1) 接納控制功能。 (2) 實時調度。 (3) 多媒體文件的存儲。
早期OS的規模很小,如只有幾十KB,徹底能夠由一我的以手工方式,用幾個月的時間編制出來。此時,編制程序基本上是一種技巧,OS是不是有結構的並不那麼重要,重要的是程序員的程序設計技巧。但隨着OS規模的越來越大,其所具備的代碼也越來越多,每每須要由數十人或數百人甚至更多的人蔘與,分工合做,共同來完成操做系統的設計。這意味着,應採用工程化的開發方法對大型軟件進行開發。由此產生了「軟件工程學」。
在早期開發操做系統時,設計者只是把他的注意力放在功能的實現和得到高的效率上,缺少首尾一致的設計思想。此時的OS是爲數衆多的一組過程的集合,每一個過程能夠任意地相互調用其它過程,導致操做系統內部既複雜又混亂,所以,這種OS是無結構的,也有人把它稱爲總體系統結構。
1) 模塊化程序設計技術的基本概念
模塊化程序設計技術是20世紀60年代出現的一種結構化程序設計技術。該技術基於「分解」和「模塊化」的原則來控制大型軟件的複雜度。爲使OS具備較清晰的結構,OS再也不是由衆多的過程直接構成的,而是按其功能精心地劃分爲若干個具備必定獨立性和大小的模塊。圖1-7示出了由模塊、子模塊等組成的模塊化OS結構。
圖1-7 模塊化結構的操做系統
2) 模塊獨立性
在模塊-接口法中,關鍵問題是模塊的劃分和規定好模塊之間的接口。若是咱們在劃分模塊時將模塊劃分得過小,雖然能夠下降模塊自己的複雜性,但會引發模塊之間的聯繫過多,從而會形成系統比較混亂;若是將模塊劃分得過大,又會增長模塊內部的複雜性,使內部的聯繫增長,所以在劃分模塊時,應在二者間進行權衡。
3) 模塊接口法的優缺點
利用模塊-接口法開發的OS,較之無結構OS具備如下明顯的優勢:
(1) 提升OS設計的正確性、可理解性和可維護性。
(2) 加強OS的可適應性。
(3) 加速OS的開發過程。
模塊化結構設計仍存在下述問題:
(1) 在OS設計時,對各模塊間的接口規定很難知足在模塊設計完成後對接口的實際需求。
(2) 在OS設計階段,設計者必須作出一系列的決定(決策),每個決定必須創建在上一個決定的基礎上,但模塊化結構設計中,各模塊的設計齊頭並進,沒法尋找一個可靠的決定順序,形成各類決定的「無序性」,這將使程序人員很難作到「設計中的每一步決定」都是創建在可靠的基礎上,所以模塊-接口法又被稱爲「無序模塊法」。
1) 分層式結構的基本概念
爲了將模塊-接口法中「決定順序」的無序性變爲有序性,引入了有序分層法,分層法的設計任務是,在目標系統An和裸機系統(又稱宿主系統)A0之間,鋪設若干個層次的軟件A一、A二、A三、…、An-1,使An經過An-一、An-二、…、A二、A1層,最終能在A0上運行。在操做系統中,常採用自底向上法來鋪設這些中間層。
2) 分層結構的優缺點
分層結構的主要優勢有:
(1) 易保證系統的正確性。
(2) 易擴充和易維護性。
分層結構的主要缺點是系統效率下降。因爲層次結構是分層單向依賴的,必須在每層之間都創建層次間的通訊機制,OS每執行一個功能,一般要自上而下地穿越多個層次,這無疑會增長系統的通訊開銷,從而致使系統效率的下降。
1. 客戶/服務器模式的由來、組成和類型
客戶/服務器系統主要由三部分組成。
(1) 客戶機:
(2) 服務器:
(3) 網絡系統:
2. 客戶/服務器之間的交互
(1) 客戶發送請求消息。
(2) 服務器接收消息。
(3) 服務器回送消息。
(4) 客戶機接收消息。
3. 客戶/服務器模式的優勢
(1) 數據的分佈處理和存儲。
(2) 便於集中管理。
(3) 靈活性和可擴充性。
(4) 易於改編應用軟件。
面向對象技術是20世紀80年代初提出並很快流行起來的。
1) 對象 在面嚮對象的技術中,是利用被封裝的數據結構(變量)和一組對它進行操做的過程(方法)來表示系統中的某個對象的,如圖1-8所示。對象中的變量(數據)也稱爲屬性,它能夠是單個標量或一張表。面向對象中的方法是用於執行某種功能的過程,它能夠改變對象的狀態,更新對象中的某些數據值或做用於對象所要訪問的外部資源。若是把一個文件做爲一個對象(見圖1-9),該對象的變量即是文件類型、文件大小、文件的建立者等。對象中的方法包含對文件的操做,如建立文件、打開文件、讀文件、寫文件、關閉文件等。
圖1-8 一個對象的示意圖
圖1-9 類和對象的關係
2) 對象類
在實踐中,有許多對象可能表示的是同一類事物,每一個對象具備本身的變量集合,而它們所具備的方法是相同的。若是爲每個類似的對象都定義一組變量和方法,顯然是低效的,由此產生了「對象類」的概念,利用「對象類」來定義一組大致類似的對象。一個類一樣定義了一組變量和針對該變量的一組方法,用它們來描述一組對象的共同屬性和行爲。類是在對象上的抽象,對象則是類的實例。對象類中所定義的變量在實例中均有具體的值。
3) 繼承
在面嚮對象的技術中,能夠根據已有類來定義一個新的類,新類被稱爲子類(B),原來的類被稱爲父類(A),見圖1-10所示。
圖1-10 類的繼承關係
在操做系統設計時,將計算機中的實體做爲對象來處理,可帶來以下好處:
(1) 經過「重用」提升產品質量和生產率。
(2) 使系統具備更好的易修改性和易擴展性。
(3) 更易於保證系統的「正確性」和「可靠性」。
1) 足夠小的內核
在微內核操做系統中,內核是指精心設計的、能實現現代OS最基本核心功能的小型內核,微內核並不是是一個完整的OS,而只是將操做系統中最基本的部分放入微內核,一般包含有:① 與硬件處理緊密相關的部分;② 一些較基本的功能;③ 客戶和服務器之間的通訊。這些OS最基本的部分只是爲構建通用OS提供一個重要基礎,這樣就能夠確保把操做系統內核作得很小。
2) 基於客戶/服務器模式
因爲客戶/服務器模式具備很是多的優勢,故在單機微內核操做系統中幾乎無一例外地都採用客戶/服務器模式,將操做系統中最基本的部分放入內核中,而把操做系統的絕大部分功能都放在微內核外面的一組服務器(進程)中實現,如用於提供對進程(線程)進行管理的進程(線程)服務器、提供虛擬存儲器管理功能的虛擬存儲器服務器、提供I/O設備管理的I/O設備管理服務器等,它們都是被做爲進程來實現的,運行在用戶態,客戶與服務器之間是藉助微內核提供的消息傳遞機制來實現信息交互的。圖1-11示出了在單機環境下的客戶/服務器模式。
圖1-11 在單機環境下的客戶/服務器模式
3) 應用「機制與策略分離」原理
在如今操做系統的結構設計中,常常利用「機制與策略分離」的原理來構造OS結構。所謂機制,是指實現某一功能的具體執行機構。而策略,則是在機制的基礎上藉助於某些參數和算法來實現該功能的優化,或達到不一樣的功能目標。
4) 採用面向對象技術
操做系統是一個極其複雜的大型軟件系統,咱們不只能夠經過結構設計來分解操做系統的複雜度,還能夠基於面向對象技術中的「抽象」和「隱蔽」原則控制系統的複雜性,再進一步利用「對象」、「封裝」和「繼承」等概念來確保操做系統的「正確性」、「可靠性」、「易修改性」、「易擴展性」等,並提升操做系統的設計速度。正由於面向對象技術能帶來如此多的好處,故面向對象技術被普遍應用於現代操做系統的設計中。
微內核應具備哪些功能,或者說哪些功能應放在微內核內,哪些應放在微內核外,目前尚無明確的規定。如今通常都採用「機制與策略分離」的原理,將機制部分以及與硬件緊密相關的部分放入微內核中。由此可知微內核一般具備以下幾方面的功能:
1) 進程(線程)管理
2) 低級存儲器管理
3) 中斷和陷入處理
因爲微內核OS結構是創建在模塊化、層次化結構的基礎上的,並採用了客戶/服務器模式和麪向對象的程序設計技術,所以,微內核結構的操做系統是集各類技術優勢之大成,於是使之具備以下優勢:
(1) 提升了系統的可擴展性。
(2) 加強了系統的可靠性。
(3) 可移植性強。
(4) 提供了對分佈式系統的支持。
(5) 融入了面向對象技術。
4. 微內核操做系統存在的問題
應當指出,在微內核操做系統中,因爲採用了很是小的內核,客戶/服務器模式和消息傳遞機制雖給微內核操做系統帶來了許多優勢,但由此也使微內核OS存在着潛在缺點,其中最主要的是,較之早期的操做系統,微內核操做系統的運行效率有所下降。
實際狀況是每每還會引發更多的上下文切換。例如,當某個服務器自身尚無能力完成客戶請求而須要其它服務器的幫助時,如圖1-12所示,其中的文件服務器還須要磁盤服務器的幫助,這時就須要進行8次上下文的切換。
圖1-12 在傳統OS和微內核OS中的上下文切換
習 題
1. 設計現代OS的主要目標是什麼?
2. OS的做用可表如今哪幾個方面?
3. 爲何說操做系統實現了對計算機資源的抽象?
4. 試說明推進多道批處理系統造成和發展的主要動力是什麼。
5. 何謂脫機I/O和聯機I/O?
6. 試說明推進分時系統造成和發展的主要動力是什麼。
7. 實現分時系統的關鍵問題是什麼? 應如何解決?
8. 爲何要引入實時操做系統?
9. 什麼是硬實時任務和軟實時任務? 試舉例說明。
10. 試從交互性、及時性以及可靠性方面將分時系統與實時系統進行比較。
11. OS有哪幾大特徵? 其最基本的特徵是什麼?
12. 在多道程序技術的OS環境下的資源共享與通常狀況下的資源共享有何不一樣? 對獨佔資源應採起何種共享方式?
13. 什麼是時分複用技術? 舉例說明它能提升資源利用率的根本緣由是什麼。
14. 是什麼緣由使操做系統具備異步性特徵?
15. 處理機管理有哪些主要功能? 其主要任務是什麼?
16. 內存管理有哪些主要功能? 其主要任務是什麼?
17. 設備管理有哪些主要功能? 其主要任務是什麼?
18. 文件管理有哪些主要功能? 其主要任務是什麼?
19. 試說明推進傳統OS演變爲現代OS的主要因素是什麼?
20. 什麼是微內核OS?
21. 微內核操做系統具備哪些優勢? 它爲什麼能有這些優勢?
22. 現代操做系統較之傳統操做系統又增長了哪些功能和特徵?
23. 在微內核OS中,爲何要採用客戶/服務器模式?
24. 在基於微內核結構的OS中,應用了哪些新技術?
25. 何謂微內核技術? 在微內核中一般提供了哪些功能?
實時分時:https://blog.csdn.net/m0_37765662/article/details/83018523