第一章:操作系統(tǒng)引論
計(jì)算機(jī)系統(tǒng)是由硬件和軟件兩部分組成雹顺。操作系統(tǒng)是配置在計(jì)算機(jī)硬件上的第一層軟件吗购,是對(duì)硬件系統(tǒng)的首次擴(kuò)充亭枷。
操作系統(tǒng)是一組控制和管理計(jì)算機(jī)的硬件和軟件資源,合理的對(duì)各類作業(yè)進(jìn)行調(diào)度庸诱,以方便用戶使用的程序的集合捻浦。
1.1操作系統(tǒng)的目標(biāo)和作用
1.1.1 操作系統(tǒng)的目標(biāo):
1)有效性:提高系統(tǒng)資源利用率;提高系統(tǒng)的吞吐量桥爽。
2)方便性:
3)可擴(kuò)充性:
4)開放性:開放性是指操作系統(tǒng)能遵循世界標(biāo)準(zhǔn)規(guī)范朱灿,特別是遵循開放系統(tǒng)互聯(lián)(OSI) 國際標(biāo)準(zhǔn)。凡遵循國際標(biāo)準(zhǔn)所開放的硬件和軟件钠四,均能彼此兼容盗扒,可方便的實(shí)現(xiàn)互連。
1.1.2 操作系統(tǒng)的作用:
1)OS 作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口:OS 處于用戶與計(jì)算機(jī)硬件系統(tǒng)之間缀去,用戶通過 OS 來使用計(jì)算機(jī)系統(tǒng)侣灶。
①命令方式:這是指由OS 提供了一組聯(lián)機(jī)命令接口,以允許用戶通過鍵盤輸入有關(guān)命令來取得操作系統(tǒng)的服務(wù)缕碎,并控制用戶程序的運(yùn)行褥影。
②系統(tǒng)調(diào)用方式:OS 提供了一組系統(tǒng)調(diào)用,用戶可在自己的應(yīng)用程序中通過相應(yīng)的系統(tǒng)調(diào)用咏雌,來實(shí)現(xiàn)與操作系統(tǒng)的通信凡怎,并取得它的服務(wù)。
③圖形赊抖、窗口方式:這是當(dāng)前使用最為方便统倒、最為廣泛的接口,它允許用戶通過屏幕上的窗口和圖標(biāo)來實(shí)現(xiàn)與操作系統(tǒng)的通信熏迹,并取得它的服務(wù)檐薯。
2)OS 作為計(jì)算機(jī)系統(tǒng)資源的管理者
系統(tǒng)資源分為四類:處理器、存儲(chǔ)器注暗、I/O設(shè)備坛缕、信息(數(shù)據(jù)和程序)。OS 的主要功能也正是針對(duì)這四類資源進(jìn)行有效的管理捆昏,即:處理機(jī)管理赚楚,用于分配和控制處理機(jī);存儲(chǔ)器管理骗卜,主要負(fù)責(zé)內(nèi)存的分配與回收宠页;I/O 設(shè)備管理,負(fù)責(zé) I/O設(shè)備的分配與操縱寇仓;文件管理举户,負(fù)責(zé)文件的存取、共享和保護(hù)遍烦。
當(dāng)一個(gè)計(jì)算機(jī)系統(tǒng)同時(shí)供多個(gè)用戶使用時(shí)俭嘁,用戶對(duì)系統(tǒng)中共享資源的需求(包括數(shù)量和時(shí)間)可能發(fā)生沖突,為了更好的管理好這些共享資源(包括硬件和信息)的使用服猪,操作系統(tǒng)必須記錄下各種資源的使用情況供填,對(duì)使用資源的請(qǐng)求進(jìn)行授權(quán)拐云,協(xié)調(diào)諸用戶對(duì)共享資源的使用,避免發(fā)生沖突近她,并計(jì)算使用資源的費(fèi)用等叉瘩。
3)OS 實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象
對(duì)于一個(gè)完全無軟件的計(jì)算機(jī)系統(tǒng)(即裸機(jī)),它向用戶提供的是實(shí)際硬件接口(物理接口)粘捎,用戶必須對(duì)物理接口的實(shí)現(xiàn)細(xì)節(jié)有充分的了解薇缅,并利用機(jī)器指令進(jìn)行編程,因此該物理機(jī)器必定是難以使用的晌端。
在裸機(jī)上鋪設(shè)的 I/O軟件隱藏了對(duì) I/O 設(shè)備操作的具體細(xì)節(jié)捅暴,向上提供了一組抽象的 I/O 設(shè)備。
OS 是鋪設(shè)在計(jì)算機(jī)硬件上的多層系統(tǒng)軟件咧纠,它們不僅增強(qiáng)了系統(tǒng)的功能蓬痒,而且還隱藏了對(duì)硬件操作的細(xì)節(jié),由它們實(shí)現(xiàn)了對(duì)計(jì)算機(jī)硬件操作的多個(gè)層次的抽象漆羔。
1.1.3 推動(dòng)操作系統(tǒng)發(fā)展的主要?jiǎng)恿?/strong>
1梧奢、不斷提高計(jì)算機(jī)資源的利用率
在計(jì)算機(jī)發(fā)展的初期,計(jì)算機(jī)系統(tǒng)特別昂貴演痒,人們必須千方百計(jì)地提高計(jì)算機(jī)系統(tǒng)中各種資源的利用率亲轨,這就是 OS 最初發(fā)展的推動(dòng)力。由此形成了能自動(dòng)地對(duì)一批作業(yè)進(jìn)行處理的多道批處理系統(tǒng)鸟顺。
2惦蚊、方便用戶
為了解決用戶在上機(jī)、調(diào)試程序時(shí)的不方便等問題讯嫂,便形成了允許進(jìn)行人機(jī)交互的分時(shí)系統(tǒng)蹦锋,或稱為多用戶系統(tǒng)。極大地方便了用戶使用計(jì)算機(jī)欧芽。
3莉掂、器件的不斷更新?lián)Q代
4、計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展
單處理機(jī)系統(tǒng)發(fā)展為多處理機(jī)系統(tǒng)千扔,相應(yīng)的憎妙,操作系統(tǒng)也就由單處理機(jī) OS 發(fā)展為多處理 OS。
當(dāng)出現(xiàn)了計(jì)算機(jī)網(wǎng)絡(luò)后曲楚,配置在計(jì)算機(jī)網(wǎng)絡(luò)上的網(wǎng)絡(luò)操作系統(tǒng)應(yīng)運(yùn)而生厘唾,它不僅能有效地管理好網(wǎng)絡(luò)中的共享資源,而且還向用戶提供了許多網(wǎng)絡(luò)服務(wù)龙誊。
1.2 操作系統(tǒng)的發(fā)展過程
1.2.1 無操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)
1抚垃、人工操作方式
由程序員將事先已穿孔(對(duì)應(yīng)于程序和數(shù)據(jù))的紙帶(或卡片)裝入紙帶輸入機(jī)(或卡片輸入機(jī)),再啟動(dòng)它們將程序和數(shù)據(jù)輸入計(jì)算機(jī),然后啟動(dòng)計(jì)
算機(jī)運(yùn)行讯柔。當(dāng)程序運(yùn)行完畢并取走計(jì)算結(jié)果之后,才讓下一個(gè)用戶上機(jī)护昧。
缺點(diǎn):1)用戶獨(dú)占全機(jī)魂迄。2)CPU 等待人工操作。
人工操作方式嚴(yán)重降低了計(jì)算機(jī)資源的利用率惋耙,此即所謂的人機(jī)矛盾捣炬。為了緩和此矛盾,曾先后出現(xiàn)了通道技術(shù)绽榛,緩沖技術(shù)湿酸,但都未能很好地解決上述矛盾,直至后來引入了脫機(jī)輸入/輸出技術(shù)灭美,才獲得了較為令人滿意的結(jié)果推溃。
2、脫機(jī)輸入/輸出方式
該技術(shù)是事先將裝有用戶程序和數(shù)據(jù)的紙帶(或卡片)裝入紙帶輸入機(jī)(或卡片機(jī))届腐,在一臺(tái)外圍機(jī)的控制下铁坎,把紙帶(卡片)上的數(shù)據(jù)(程序)輸入到磁帶上。當(dāng)CPU需要這些程序和數(shù)據(jù)時(shí)犁苏,再從磁帶上將其高速地調(diào)入內(nèi)存硬萍。
類似地,當(dāng)CPU需要輸出時(shí)围详,可由CPU直接高速地把數(shù)據(jù)從內(nèi)存送到磁帶上朴乖,然后再在另一臺(tái)外圍機(jī)的控制下,將磁帶上的結(jié)果通過相應(yīng)的輸出設(shè)備輸出助赞。圖1-3示出了脫機(jī)輸入/輸出過程买羞。由于程序和數(shù)據(jù)的輸入和輸出都是在外圍機(jī)的控制下完成的,或者說嫉拐,它們是在脫離主機(jī)的情況下進(jìn)行的哩都,故稱為脫機(jī)輸入/輸出方式;反之,在主機(jī)的直接控制下進(jìn)行輸入/輸出的方式稱為聯(lián)機(jī)輸入/輸出(On-Line I/O)方式婉徘。
[圖片上傳失敗...(image-8a792e-1538016970342)]
優(yōu)點(diǎn):
1)減少了 CPU 的空閑時(shí)間漠嵌。裝帶卸帶以及將數(shù)據(jù)從低速 I/O設(shè)備送到高速磁帶上,都是在脫機(jī)情況下進(jìn)行的盖呼,并不占用主機(jī)時(shí)間儒鹿,從而有效地減少了 CPU 的空閑時(shí)間,緩和了人機(jī)矛盾几晤。
2)提高了 I/O 速度约炎。當(dāng) CPU 在運(yùn)行中需要數(shù)據(jù)時(shí),是直接從高速的磁帶上將數(shù)據(jù)調(diào)入內(nèi)存的,不再是低速 I/O 設(shè)備上輸入圾浅,極大地提高了 I/O 速度掠手,從而緩和了 CPU 和 I/O 設(shè)備速度不匹配的矛盾狸捕,進(jìn)一步減少了 CPU 的空閑時(shí)間。
1.2.2 單批道處理系統(tǒng)
1.單批道處理系統(tǒng)的處理過程
把一批作業(yè)以脫機(jī)方式輸入到磁帶上做祝,并在系統(tǒng)中配上監(jiān)督程序(Monitor),在它的控制下使這批作業(yè)能一個(gè)接一個(gè)地連續(xù)處理鸡岗。
[圖片上傳失敗...(image-c3c72-1538016970342)]
單道批處理系統(tǒng)是在解決人機(jī)矛盾以及 CPU 與 I/O 設(shè)備速度不匹配問題的過程中形成的轩性。批處理系統(tǒng)旨在提高系統(tǒng)資源的利用率和系統(tǒng)吞吐量声登。
2、單道批處理系統(tǒng)的特征
1)自動(dòng)性揣苏。在順利情況下舒岸,在磁帶上的一批作業(yè)能自動(dòng)地逐個(gè)地依次運(yùn)行,而無需人工干預(yù)俄认。
2)順序性洪乍。在磁帶上的各道作業(yè)是順序地進(jìn)入內(nèi)存壳澳,各道作業(yè)的完成順序與它們進(jìn)入內(nèi)存的順序,在正常情況下完全相同萎津,亦即先調(diào)入內(nèi)存的作業(yè)先完成锉屈。
3)單道性垮耳。內(nèi)存中僅有一道程序運(yùn)行,即監(jiān)督程序每次從磁帶上只調(diào)入一道程序進(jìn)入內(nèi)存運(yùn)行雾家,當(dāng)該程序完成或發(fā)生異常情況時(shí)绍豁,才換入其后繼程序進(jìn)入內(nèi)存運(yùn)行。
1.2.3 多道批處理系統(tǒng)
1、多道批處理系統(tǒng)的基本概念
在該系統(tǒng)中鬼佣,用戶所提交的作業(yè)都先存放在外村上并排成一個(gè)隊(duì)列霜浴,稱為“后備隊(duì)列”;然后晌纫,由作業(yè)調(diào)度程序按一定的算法從后備隊(duì)列中選擇若干個(gè)作業(yè)調(diào)入內(nèi)存锹漱,使它們共享 CPU 和系統(tǒng)中的各種資源慕嚷。
在 OS 中引入多道批處理系統(tǒng)有以下好處:
1)提高 CPU 的利用率喝检。2)可提高內(nèi)存和 I/O 設(shè)備利用率。3)增加系統(tǒng)吞吐量澡谭。
2损俭、多道批處理系統(tǒng)的優(yōu)缺點(diǎn)
1)資源利用率高。由于在內(nèi)存中駐留了多道程序外永,它們共享資源伯顶,可保持資源處于忙碌狀態(tài),從而使各種資源得以充分利用祭衩。
2)系統(tǒng)吞吐量大掐暮。系統(tǒng)吞吐量是指系統(tǒng)在單位時(shí)間內(nèi)所完成的總工作量路克。能提高系統(tǒng)吞吐量的主要原因可歸結(jié)為:第一精算,CPU和其它資源保持“忙碌”狀態(tài);第二,僅當(dāng)作業(yè)完成時(shí)或運(yùn)行不下去時(shí)才進(jìn)行切換驮履,系統(tǒng)開銷小玫镐。
3)平均周轉(zhuǎn)時(shí)間長恐似。作業(yè)的周轉(zhuǎn)時(shí)間是指從作業(yè)進(jìn)入系統(tǒng)開始蹂喻,直至其完成并退出系統(tǒng)為止所經(jīng)歷的時(shí)間捂寿。在批處理系統(tǒng)中秦陋,由于作業(yè)要排隊(duì)驳概,依次進(jìn)行處理顺又,因而作業(yè)的周轉(zhuǎn)時(shí)間較長,通常需幾個(gè)小時(shí)蹂空,甚至幾天上枕。
4)無交互能力辨萍。用戶一旦把作業(yè)提交給系統(tǒng)后锈玉,直至作業(yè)完成,用戶都不能與自己的作業(yè)進(jìn)行交互师崎,這對(duì)修改和調(diào)試程序是極不方便的。
3土陪、多道批處理系統(tǒng)需要解決的問題鬼雀。
1)處理機(jī)管理問題
2)內(nèi)存管理問題
3)I/O 設(shè)備管理問題
4)文件管理問題
5)作業(yè)管理問題
1.2.4 分時(shí)系統(tǒng)
1.分時(shí)系統(tǒng)的產(chǎn)生
1)便于人-機(jī)交互源哩。 2)可以共享主機(jī)励烦。 3)便于用戶上機(jī)坛掠。
定義:分時(shí)系統(tǒng)是指 在一臺(tái)主機(jī)上連接了多個(gè)帶有顯示器和鍵盤的終端治筒,同事允許多個(gè)用戶通過自己的終端耸袜,以交互方式使用計(jì)算機(jī)堤框,共享主機(jī)中的資源。
2藐窄、分時(shí)系統(tǒng)實(shí)現(xiàn)中的關(guān)鍵問題
1)及時(shí)接收荆忍。要及時(shí)接收用戶鍵入的命令刹枉,只需在系統(tǒng)中配置一個(gè)多路卡屈呕。多路卡的作用是是主機(jī)能同事接收各用戶從終端上輸入的數(shù)據(jù)虎眨。
2)及時(shí)處理嗽桩。人機(jī)交互的關(guān)鍵碌冶,是使用戶鍵入命令后能及時(shí)地控制自己作業(yè)的運(yùn)行扑庞,或修改自己的作業(yè)罐氨。
3栅隐、分時(shí)系統(tǒng)的特征
1)多路性约啊。允許在一臺(tái)主機(jī)上同時(shí)連接多臺(tái)聯(lián)機(jī)終端,系統(tǒng)按分時(shí)原則為每個(gè)用戶服務(wù)记盒。多路性即同時(shí)性纪吮,它提高了資源利用率碾盟,降低了使用費(fèi)用冰肴,從而促進(jìn)了計(jì)算機(jī)更廣泛的使用熙尉。
2)獨(dú)立性检痰。每個(gè)用戶各占一個(gè)終端铅歼,彼此獨(dú)立操作椎椰,互不干擾俭识。
3)及時(shí)性套媚。用戶的請(qǐng)求能在很短的時(shí)間內(nèi)獲得響應(yīng)堤瘤。
4)交互性本辐。用戶可通過終端與系統(tǒng)進(jìn)行廣泛的人機(jī)對(duì)話慎皱。其廣泛性表現(xiàn)在:用戶可以請(qǐng)求系統(tǒng)提供多方面的服務(wù)茫多,如:文件編輯天揖,數(shù)據(jù)處理和資源共享等今膊。
1.2.5 實(shí)時(shí)系統(tǒng)
實(shí)時(shí)系統(tǒng)是指系統(tǒng)能及時(shí)響應(yīng)外部事件的請(qǐng)求斑唬,在規(guī)定的事件內(nèi)完成對(duì)該事件的處理赖钞,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致的運(yùn)行雪营。
1献起、應(yīng)用需求
1)實(shí)時(shí)控制谴餐。2)實(shí)時(shí)信息處理岂嗓。
2厌殉、實(shí)時(shí)任務(wù)
1)按任務(wù)執(zhí)行時(shí)是否呈現(xiàn)周期性來劃分
①周期性實(shí)時(shí)任務(wù)公罕。外部設(shè)備周期性地發(fā)出激勵(lì)信號(hào)給計(jì)算機(jī)楼眷,要求它按指定周期循環(huán)執(zhí)行罐柳,以便周期性地控制某外部設(shè)備张吉。
②非周期性實(shí)時(shí)任務(wù)芦拿。外部設(shè)備發(fā)出的激勵(lì)信號(hào)并無明顯周期,但都聯(lián)系著一個(gè)截止時(shí)間扰藕。它又可分為開始截止時(shí)間(某任務(wù)在某時(shí)間以前必須開始執(zhí)行)和完成截止時(shí)間(某任務(wù)在某時(shí)間以前必須完成)兩部分邓深。
2)根據(jù)對(duì)截止時(shí)間的要求來劃分
①硬實(shí)時(shí)任務(wù)芥备。系統(tǒng)必須滿足對(duì)截止時(shí)間的要求萌壳,否則可能出現(xiàn)難以預(yù)測(cè)的結(jié)果袱瓮。
②軟實(shí)時(shí)任務(wù)尺借。它也聯(lián)系著一個(gè)截止時(shí)間燎斩,但并不嚴(yán)格栅表,若偶爾錯(cuò)過了任務(wù)的截止時(shí)間局装,對(duì)系統(tǒng)產(chǎn)生的影響也不會(huì)很大铐尚。
3宣增、實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)特征的比較
1)多路性爹脾。實(shí)時(shí)控制系統(tǒng)的多路性主要表現(xiàn)在系統(tǒng)周期性地對(duì)多路現(xiàn)場(chǎng)信息進(jìn)行采集,以及對(duì)多個(gè)對(duì)象或多個(gè)執(zhí)行機(jī)構(gòu)進(jìn)行控制落竹。而分時(shí)系統(tǒng)中的多路性則與用戶情況有關(guān)述召,時(shí)多時(shí)少积暖。
2)獨(dú)立性夺刑。實(shí)時(shí)信息處理系統(tǒng)中的每個(gè)終端用戶在向shishixitong 提出服務(wù)請(qǐng)求時(shí)性誉,是彼此獨(dú)立地操作错览,互不干擾倾哺;而實(shí)時(shí)控制系統(tǒng)中羞海,對(duì)信息的采集和對(duì)對(duì)象的控制也都是彼此互不干擾却邓。
3)及時(shí)性腊徙。實(shí)時(shí)信息處理系統(tǒng)對(duì)實(shí)時(shí)性的要求與分時(shí)系統(tǒng)類似,都是以人所能接受的等待時(shí)間來確定的;而實(shí)時(shí)控制系統(tǒng)的及時(shí)性民傻,則是以控制對(duì)象所要求的開始截止時(shí)間或完成截止時(shí)間來確定的漓踢,一般為秒級(jí)到毫秒級(jí)牵署,甚至有的要低于100微秒。
4)交互性喧半。實(shí)時(shí)信息處理系統(tǒng)雖然也具有交互性碟刺,但這里人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某些特定的專用服務(wù)程序。它不像分時(shí)系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)處理和資源共享等服務(wù)薯酝。
5)可靠性半沽。分時(shí)系統(tǒng)雖然也要求系統(tǒng)可靠吴菠,但相比之下者填,實(shí)時(shí)系統(tǒng)則要求系統(tǒng)具有高度的可靠性。因?yàn)槿魏尾铄e(cuò)都可能帶來巨大的經(jīng)濟(jì)損失做葵,甚至是無法預(yù)料的災(zāi)難性后果占哟,所以在實(shí)時(shí)系統(tǒng)中,往往都采取了多級(jí)容錯(cuò)措施來保障系統(tǒng)的安全性及數(shù)據(jù)的安全性酿矢。
1.2.6 微機(jī)操作系統(tǒng)的發(fā)展
1榨乎、單用戶單任務(wù)操作系統(tǒng)
2、單用戶多任務(wù)操作系統(tǒng)
3瘫筐、多用戶多任務(wù)操作系統(tǒng)
1.3 操作系統(tǒng)的基本特性
并發(fā)蜜暑、共享、虛擬策肝、異步肛捍。
并發(fā)特征是操作系統(tǒng)最重要的特征,其他三個(gè)特征都是以并發(fā)特征為前提的之众。
1.3.1 并發(fā)性
1拙毫、并行與并發(fā)
并行性是指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生;并發(fā)性是指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生棺禾。
2缀蹄、引入進(jìn)程
進(jìn)程是指在系統(tǒng)中能獨(dú)立運(yùn)行并作為資源分配的基本單位,它是由一組機(jī)器指令膘婶、數(shù)據(jù)和堆棧等組成的缺前。是一個(gè)能獨(dú)立運(yùn)行的活動(dòng)實(shí)體。
通常的程序是靜態(tài)實(shí)體竣付,在多道程序系統(tǒng)中诡延,它們是不能獨(dú)立運(yùn)行的滞欠,更不能和其它程序并發(fā)執(zhí)行古胆。在操作系統(tǒng)中引入進(jìn)程的目的,就是為了使多個(gè)程序能并發(fā)執(zhí)行。
引入進(jìn)程事實(shí)上可以在內(nèi)存中存放多個(gè)用戶程序逸绎,分別為它們建立進(jìn)程后惹恃,這些程序可以并發(fā)執(zhí)行,亦即實(shí)現(xiàn)多道程序運(yùn)行棺牧。這樣能極大提高系統(tǒng)資源的利用率巫糙,增加系統(tǒng)的吞吐量。
3颊乘、引入線程
通常在一個(gè)進(jìn)程中可以包含若干個(gè)線程参淹,它們可以利用進(jìn)程所擁有的資源。在引入線程的 OS 中乏悄,通常都是把進(jìn)程作為分配資源的基本單位浙值,而把線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。
1.3.2 共享性
在操作系統(tǒng)環(huán)境下檩小,共享 是指系統(tǒng)中的資源可供內(nèi)存中多個(gè)并發(fā)的進(jìn)程功能使用开呐,相應(yīng)地,把這種資源共同使用成為資源共享规求,或成為資源復(fù)用筐付。
目前主要實(shí)現(xiàn)資源復(fù)用的方式有:
1)互斥共享方式
2)同時(shí)訪問方式
1.3.3 虛擬技術(shù)
操作系統(tǒng)中的所謂“虛擬”,是指通過某種技術(shù)把一個(gè)物理實(shí)體變?yōu)槿舾蓚€(gè)邏輯上的對(duì)應(yīng)物阻肿。物理實(shí)體是實(shí)的瓦戚,即實(shí)際存在的,而后者是虛的丛塌,近視用戶感受上的東西伤极。相應(yīng)的,用于實(shí)現(xiàn)虛擬的技術(shù)成為虛擬技術(shù)姨伤。在操作系統(tǒng)中利用了兩種方式實(shí)現(xiàn)虛擬技術(shù)哨坪,即時(shí)分復(fù)用技術(shù)和空分復(fù)用技術(shù)。
1乍楚、時(shí)分復(fù)用技術(shù)
時(shí)分復(fù)用当编,亦即分時(shí)使用方式
1)虛擬處理機(jī)技術(shù)
2)虛擬設(shè)備技術(shù)
2、空分復(fù)用技術(shù)
1)虛擬磁盤技術(shù)
2)虛擬存儲(chǔ)器技術(shù)
1.3.4 異步性
進(jìn)程是以人們不可預(yù)知的速度向前推進(jìn)徒溪,此即進(jìn)程的異步性忿偷。但只要在操作系統(tǒng)中配置有完善的進(jìn)程同步機(jī)制,且運(yùn)行環(huán)境相同臊泌,作業(yè)經(jīng)多次運(yùn)行都會(huì)獲得完全相同的結(jié)果鲤桥。因此,異步運(yùn)行方式是允許的渠概,而且是操作系統(tǒng)的一個(gè)重要特征茶凳。
1.4 操作系統(tǒng)的主要功能
操作系統(tǒng)的主要任務(wù)嫂拴,是為多道程序的運(yùn)行提供良好的運(yùn)行環(huán)境,以保證多道程序能有條不紊的贮喧、高效的運(yùn)行筒狠,并能最大限度的提高系統(tǒng)中各種資源的利用率和方便用戶的使用。為實(shí)現(xiàn)上述任務(wù)箱沦,操作系統(tǒng)應(yīng)具有以下功能:處理機(jī)管理辩恼,存儲(chǔ)器管理,設(shè)備管理和文件管理谓形。
1.4.1 處理機(jī)管理功能
處理機(jī)管理的主要功能是創(chuàng)建和撤銷進(jìn)程灶伊,對(duì)諸進(jìn)程的運(yùn)行進(jìn)行協(xié)調(diào),實(shí)現(xiàn)進(jìn)程之間的信息交換寒跳,以及按照一定的算法把處理及分配給進(jìn)程谁帕。
1、進(jìn)程控制
進(jìn)程控制的主要功能是為作業(yè)創(chuàng)建進(jìn)程冯袍,撤銷已結(jié)束的進(jìn)程匈挖,以及控制進(jìn)程在運(yùn)行過程中的狀態(tài)轉(zhuǎn)換。
2康愤、進(jìn)程同步
進(jìn)程同步的主要任務(wù)是為多個(gè)進(jìn)程的運(yùn)行進(jìn)行協(xié)調(diào)儡循。有兩種協(xié)調(diào)方式:
1)進(jìn)程互斥方式:這是指諸進(jìn)程在對(duì)臨界資源進(jìn)行訪問時(shí),應(yīng)采用互斥方式征冷;
2)進(jìn)程同步方式:這是指在相互合作去完成功能任務(wù)的諸進(jìn)程間择膝,由同步機(jī)構(gòu)對(duì)他們的執(zhí)行次序加以協(xié)調(diào)。
3检激、進(jìn)程通信
在多道程序環(huán)境下肴捉,為了加速應(yīng)用程序的運(yùn)行,應(yīng)在系統(tǒng)中建立多個(gè)進(jìn)程叔收,并且再為一個(gè)進(jìn)程建立若干個(gè)線程齿穗,由這些進(jìn)程(線程)相互合作去完成一個(gè)共同的任務(wù)。
4饺律、調(diào)度
1)作業(yè)調(diào)度
作業(yè)調(diào)度的基本任務(wù)是從后備隊(duì)列中按照一定的算法窃页,選擇出若干個(gè)作業(yè),為他們分配運(yùn)行所需的資源复濒。在將他們調(diào)入內(nèi)存后脖卖,便分別為他們建立進(jìn)程,使他們都成為可能獲得處理機(jī)的就緒進(jìn)程巧颈,并按照一定的算法將他們插入就緒隊(duì)列畦木。
2)進(jìn)程調(diào)度
進(jìn)程調(diào)度的任務(wù)是從進(jìn)程的就緒隊(duì)列中,按照一定的算法選出一個(gè)進(jìn)程砸泛,把處理機(jī)分配給它十籍,并為它設(shè)置運(yùn)行現(xiàn)場(chǎng)蛆封,使進(jìn)程投入執(zhí)行。值得提出的是妓雾,在多線程OS中娶吞,通常是把線程作為獨(dú)立運(yùn)行和分配處理機(jī)的基本單位垒迂,為此械姻,須把就緒線程排成一個(gè)隊(duì)列,每次調(diào)度時(shí)机断,是從就緒線程隊(duì)列中選出一個(gè)線程楷拳,把處理機(jī)分配給它。
1.4.2 存儲(chǔ)器管理功能
存儲(chǔ)器的主要任務(wù)是為多道程序的運(yùn)行提供良好的環(huán)境吏奸,方便用戶使用存儲(chǔ)器欢揖,提高存儲(chǔ)器的利用率以及能從邏輯上擴(kuò)充內(nèi)存。
1奋蔚、內(nèi)存分配
內(nèi)存分配的主要任務(wù)是為每道程序分配內(nèi)存空間她混,使它們“各得其所”;提高存儲(chǔ)器的利用率泊碑,以減少不可用的內(nèi)存空間坤按;允許正在運(yùn)行的程序申請(qǐng)附加的內(nèi)存空間,以適應(yīng)程序和數(shù)據(jù)動(dòng)態(tài)增長的需要馒过。
為了實(shí)現(xiàn)內(nèi)存分配臭脓,在內(nèi)存分配的機(jī)制中應(yīng)具有這樣的結(jié)構(gòu)功能:
1)內(nèi)存分配數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)用于記錄內(nèi)存空間的使用情況腹忽,作為內(nèi)存分配的依據(jù)来累。
2)內(nèi)存分配功能。系統(tǒng)按照一定的內(nèi)存分配算法為用戶程序分配內(nèi)存空間窘奏。
3)內(nèi)存回收功能嘹锁。系統(tǒng)對(duì)用用戶不再需要的內(nèi)存,通過用戶的釋放請(qǐng)求去完成系統(tǒng)的回收功能着裹。
2兼耀、內(nèi)存保護(hù)
內(nèi)存保護(hù)的主要任務(wù)是確保每道用戶程序都只在自己的內(nèi)存空間內(nèi)運(yùn)行,彼此互不干擾求冷;決不允許用戶程序訪問操作系統(tǒng)的程序和數(shù)據(jù)瘤运;也決不允許用戶程序轉(zhuǎn)移到非共享的其他用戶程序中去執(zhí)行。
3匠题、地址映射
4拯坟、內(nèi)存擴(kuò)充
為了能在邏輯上擴(kuò)充內(nèi)存,系統(tǒng)必須具有內(nèi)存擴(kuò)充機(jī)制韭山,用于實(shí)現(xiàn)下述各功能:
1)請(qǐng)求調(diào)入功能郁季。
允許在裝入一部分用戶程序和數(shù)據(jù)的情況下冷溃,便能啟動(dòng)該程序運(yùn)行。在程序運(yùn)行過程中梦裂,若發(fā)現(xiàn)要繼續(xù)運(yùn)行時(shí)所需的程序和數(shù)據(jù)尚未裝入內(nèi)存似枕,可向OS發(fā)出請(qǐng)求,由OS從磁盤中將所需部分調(diào)入內(nèi)存年柠,以便繼續(xù)運(yùn)行凿歼。
2)置換功能。
若發(fā)現(xiàn)在內(nèi)存中已無足夠的空間來裝入需要調(diào)入的程序和數(shù)據(jù)時(shí)冗恨,系統(tǒng)應(yīng)能將內(nèi)存中的一部分暫時(shí)不用的程序和數(shù)據(jù)調(diào)至盤上答憔,以騰出內(nèi)存空間,然后再將所需調(diào)入的部分裝入內(nèi)存掀抹。
1.4.3 設(shè)備管理功能
完成用戶進(jìn)程提出的 I/O 請(qǐng)求虐拓;為用戶進(jìn)程分配所需的 I/O 設(shè)備;提高 I/O 設(shè)備和 CPU 的利用率傲武;提高 I/O 速度蓉驹;方便用戶使用 I/O 設(shè)備。
設(shè)備管理應(yīng)具有:緩沖管理揪利,設(shè)備分配态兴,設(shè)備處理以及虛擬設(shè)備等功能。
1土童、緩沖管理:
2诗茎、設(shè)備分配:
設(shè)備分配的基本任務(wù)是根據(jù)用戶進(jìn)程的 I/O 請(qǐng)求、系統(tǒng)的現(xiàn)有資源情況以及按某種設(shè)備的分配策略献汗,為之分配其所需的設(shè)備敢订。
3、設(shè)備處理:
設(shè)備處理的基本任務(wù)是用于實(shí)現(xiàn) CPU 和設(shè)備控制之間的通信罢吃。
4楚午、虛擬設(shè)備:
1.4.4 文件管理功能
文件管理的主要任務(wù)是對(duì)用戶文件和系統(tǒng)文件進(jìn)行管理,以方便用戶使用尿招,并保證文件的安全性矾柜。
為此,文件管理應(yīng)具有對(duì)文件存儲(chǔ)空間的管理就谜、目錄管理怪蔑、文件的讀/寫管理,以及文件的共享與保護(hù)等功能丧荐。
1缆瓣、文件存儲(chǔ)空間的管理
為每個(gè)文件分配必要的外存空間,提高外存利用率虹统,并能有助于提高文件系統(tǒng)的存弓坞、取速度隧甚。
2、目錄管理
為每個(gè)文件建立其目錄項(xiàng)渡冻,并對(duì)眾多的目錄項(xiàng)加以有效的組織戚扳,以實(shí)現(xiàn)方便的按名存取,即用戶只需提供文件名便可對(duì)該文件進(jìn)行存取族吻。
3帽借、文件的讀/寫管理和保護(hù)
1)文件的讀、寫管理
根據(jù)用戶的請(qǐng)求呼奢,從外存中讀取數(shù)據(jù)宜雀,或?qū)?shù)據(jù)寫入外存切平。
2)文件保護(hù)
①防止未經(jīng)核準(zhǔn)的用戶存取文件
②防止冒名頂替存取文件
③防止以不正確的方式使用文件
1.4.5 操作系統(tǒng)與用戶之間的接口
用戶與操作系統(tǒng)的接口:
1、用戶接口
它是提供給用戶使用的接口,用戶可通過該接口取得操作系統(tǒng)的服務(wù)伐坏。
1)聯(lián)機(jī)用戶接口
為聯(lián)機(jī)用戶提供掠廓,它由一組鍵盤操作命令及命令解釋程序所組成。
2)脫機(jī)用戶接口
為批處理作業(yè)的用戶提供的苔严,故也稱批處理用戶接口定枷。該接口由一組作業(yè)控制語言(JCL)組成。批處理作業(yè)的用戶不能直接與自己的作業(yè)交互作用届氢,只能委托系統(tǒng)代替用戶對(duì)作業(yè)進(jìn)行干預(yù)和控制欠窒。這里的作業(yè)控制語言 JCL 便是把需要對(duì)作業(yè)進(jìn)行的控制和干預(yù)事先寫在作業(yè)說明書上,然后將作業(yè)和作業(yè)說明書一起提供給系統(tǒng)退子。
3)圖形用戶接口
圖形用戶接口采用了圖形化的操作界面岖妄,用非常容易識(shí)別的各種圖標(biāo)將系統(tǒng)的各項(xiàng)功能、各種應(yīng)用程序和文件寂祥,直觀荐虐、逼真的表示出來。
2丸凭、程序接口
是為用戶程序在執(zhí)行中訪問系統(tǒng)資源而設(shè)置的福扬,是用戶程序取得操作系統(tǒng)服務(wù)的唯一途徑。
1.5 OS 結(jié)構(gòu)設(shè)計(jì)
1.5.1 傳統(tǒng)的操作系統(tǒng)結(jié)構(gòu)
1惜犀、無結(jié)構(gòu)操作系統(tǒng)
早起開發(fā)系統(tǒng)時(shí)铛碑,設(shè)計(jì)者只是把注意力放在功能的實(shí)現(xiàn)和獲得高的效率上,缺乏首尾一致的設(shè)計(jì)思想虽界,此時(shí)的 OS 是為數(shù)眾多的一組過程的集合汽烦,每個(gè)過程可以任意的相互調(diào)用其他過程,致使操作系統(tǒng)內(nèi)部既復(fù)雜又混亂浓恳,因此刹缝,這種 OS 是無結(jié)構(gòu)的碗暗,也有人把它稱為整體系統(tǒng)結(jié)構(gòu)。
2梢夯、模塊化結(jié)構(gòu) OS
1)基本概念:該技術(shù)是基于“分解”和“模塊化”原則來控制大型軟件的復(fù)雜度言疗。為使 OS 具有較清晰的結(jié)構(gòu),按其功能劃分為若干個(gè)具有一定獨(dú)立性和大小的模塊颂砸;每個(gè)模塊具有某方面的功能噪奄,并仔細(xì)規(guī)定好各模塊間的接口。若子模塊過大人乓,可以再進(jìn)一步進(jìn)行細(xì)分勤篮。這種設(shè)計(jì)方法稱為模塊-接口法,由此構(gòu)成的操作系統(tǒng)就是具有模塊化結(jié)構(gòu)的操作系統(tǒng)色罚。如圖1-6:
[圖片上傳失敗...(image-3d6675-1538016970342)]
2)模塊的獨(dú)立性:如果再劃分模塊時(shí)碰缔,將模塊劃分的太小,雖然可以降低模塊本身的復(fù)雜性戳护,但會(huì)引起模塊之間的聯(lián)系過多金抡,而會(huì)造成系統(tǒng)混亂;如果模塊劃分的過大腌且,又會(huì)增加模塊內(nèi)部的復(fù)雜性梗肝,使內(nèi)部的聯(lián)系增加。因此在劃分模塊時(shí)铺董,應(yīng)在兩者間進(jìn)行權(quán)衡:
①內(nèi)聚性:指模塊內(nèi)部各部分之間的緊密程度巫击,內(nèi)聚性越高,模塊的獨(dú)立性越強(qiáng)精续。
②耦合度:指模塊間相互聯(lián)系和相互影響的程度坝锰,耦合度越低、模塊化的獨(dú)立性越好驻右。
3)模塊接口法的優(yōu)缺點(diǎn):
①提高 OS 設(shè)計(jì)的正確性什黑、可理解性和可維護(hù)性。
②增強(qiáng) OS 的適應(yīng)性堪夭。
③加速 OS 的開發(fā)過程愕把。
模塊化結(jié)構(gòu)存在的問題:
①在OS 設(shè)計(jì)時(shí),對(duì)各模塊間的接口規(guī)定很難滿足在模塊完成后對(duì)接口的實(shí)際需求森爽。
②在模塊化結(jié)構(gòu)設(shè)計(jì)中恨豁,各模塊的設(shè)計(jì)齊頭并進(jìn),無法尋找到一個(gè)可靠的決定順序爬迟,造成各種無法決定的“無序性”橘蜜,使設(shè)計(jì)人員很難做到“設(shè)計(jì)中的每一步?jīng)Q定都是建立在可靠地基礎(chǔ)上”,故模塊-接口法又被稱為“無序模塊法”。
3计福、分層式結(jié)構(gòu) OS
1)基本概念:為了將模塊―接口法中“決定順序”的無序性變?yōu)橛行蛐缘Γ肓擞行蚍謱臃ā7謱臃ǖ脑O(shè)計(jì)任務(wù)是象颖,在目標(biāo)系統(tǒng)An和裸機(jī)系統(tǒng)(又稱宿主系統(tǒng))A0之間佩厚,鋪設(shè)若干個(gè)層次的軟件A1、A2说订、A3抄瓦、...、An-1陶冷,使An通過An-1钙姊、An-2、...埂伦、A2煞额、A1層,最終能在A0上運(yùn)行赤屋。在操作系統(tǒng)中立镶,常采用自底向上法來鋪設(shè)這些中間層壁袄。
自底向上的分層設(shè)計(jì)的基本原則是:每一步設(shè)計(jì)都是建立在可靠的基礎(chǔ)上类早。為此規(guī)定,每一層僅能使用其底層所提供的功能和服務(wù)嗜逻。
2)分層結(jié)構(gòu)的主要優(yōu)點(diǎn):
①易保證系統(tǒng)的正確性涩僻。自上而下的設(shè)計(jì)方式,是所有的設(shè)計(jì)中的決定都是有序的栈顷,或者說是建立在較為可靠的基礎(chǔ)上逆日,這樣比較容易保證整個(gè)系統(tǒng)的正確性。
②易擴(kuò)充和易維護(hù)性萄凤。在系統(tǒng)中增加室抽、修改或替換一個(gè)層次中的模塊或整個(gè)層次,只要不改變相應(yīng)層次間的接口靡努,就不會(huì)影響其它層次坪圾,這必將使系統(tǒng)維護(hù)和擴(kuò)充變得更加容易。
分層結(jié)構(gòu)的主要缺點(diǎn):系統(tǒng)效率降低了惑朦。由于層次結(jié)構(gòu)是分層單向依賴的兽泄,因此必須在相鄰層之間都要建立層次間的通信機(jī)制,OS 每執(zhí)行一個(gè)功能漾月,通常要自上而下地穿越多個(gè)層次病梢,這無疑會(huì)增加系統(tǒng)的通信開銷,從而導(dǎo)致系統(tǒng)效率的降低梁肿。
1.5.2 客戶/服務(wù)器模式
客戶/服務(wù)器(Client/Server)模式可簡稱為 C/S 模式蜓陌,在20世紀(jì)90年代已風(fēng)靡全球觅彰,不論是LAN,還是企業(yè)網(wǎng)钮热,以及Internet所提供的多種服務(wù)缔莲,都廣泛采用了客戶/服務(wù)器模式。
1霉旗、客戶/服務(wù)器模式的組成
客戶/服務(wù)器系統(tǒng)主要由客戶機(jī)痴奏、服務(wù)器和網(wǎng)絡(luò)系統(tǒng)三個(gè)部分組成。
1)客戶機(jī):通常在一個(gè)LAN網(wǎng)絡(luò)上連接有多臺(tái)網(wǎng)絡(luò)工作站(簡稱客戶機(jī))厌秒,每臺(tái)客戶機(jī)都是一個(gè)自主計(jì)算機(jī)读拆,具有一定的處理能力,客戶進(jìn)程在其上運(yùn)行鸵闪,平時(shí)它處理一些本地業(yè)務(wù)檐晕,也可發(fā)送一個(gè)消息給服務(wù)器,以請(qǐng)求某項(xiàng)服務(wù)蚌讼。
2)服務(wù)器:通常是一臺(tái)規(guī)模較大的機(jī)器辟灰,在其上駐留有網(wǎng)絡(luò)文件系統(tǒng)或數(shù)據(jù)庫系統(tǒng)等,它應(yīng)能為網(wǎng)上所有的用戶提供一種或多種服務(wù)篡石。
3)網(wǎng)絡(luò)系統(tǒng):用于連接所有客戶機(jī)和服務(wù)器芥喇,實(shí)現(xiàn)它們之間通信和網(wǎng)絡(luò)資源共享的系統(tǒng)。
2凰萨、客戶/服務(wù)器之間的交互
1)客戶發(fā)送請(qǐng)求消息
2)服務(wù)器接收消息
3)服務(wù)器回送消息
4)客戶機(jī)接收消息
3继控、客戶/服務(wù)器模式的優(yōu)點(diǎn)
1)數(shù)據(jù)的分布處理和存儲(chǔ)
2)便于集中管理
3)靈活性和可擴(kuò)充性
4)易于改編的應(yīng)用軟件
1.5.3 面向?qū)ο蟮某绦蛟O(shè)計(jì)
1、面向?qū)ο蠹夹g(shù)的基本概念
所謂對(duì)象胖眷,是指在現(xiàn)實(shí)世界中具有相同屬性武通、服從相同規(guī)則的一系列事物的抽象,而把其中的具體事物稱為對(duì)象的實(shí)例珊搀。
1)對(duì)象
在面向?qū)ο蟮募夹g(shù)中冶忱,是利用被封裝的數(shù)據(jù)結(jié)構(gòu)(變量)和一組對(duì)它進(jìn)行操作的過程(方法),來表示系統(tǒng)中的某個(gè)對(duì)象的境析。面向?qū)ο笾械姆椒ㄊ怯糜趫?zhí)行某種功能的過程囚枪,它可以改變對(duì)象的狀態(tài),更新對(duì)象中的某些數(shù)據(jù)值或作用于對(duì)象所要訪問的外部資源簿晓。
對(duì)象中的變量(數(shù)據(jù))對(duì)外是隱蔽的眶拉,因而外界不能對(duì)它直接進(jìn)行訪問,必須通過該對(duì)象中的一組方法(操作函數(shù))對(duì)它進(jìn)行訪問憔儿。同樣對(duì)象中的一組方法實(shí)現(xiàn)細(xì)節(jié)也是隱蔽的忆植,所以對(duì)象中的變量可以得到很好的保護(hù),而不會(huì)允許未經(jīng)授權(quán)者使用和不正確的操作。
2)對(duì)象類
定義了一組變量和針對(duì)該變量的一組方法朝刊,用它們來描述一組對(duì)象的功能屬性和行為耀里。類是在對(duì)象上的抽象,對(duì)象則是類的實(shí)例拾氓。對(duì)象類中所定義的變量在實(shí)例中均有具體的值冯挎。
3)繼承 在面向?qū)ο蟮募夹g(shù)中,可以根據(jù)已有的類來定義一個(gè)新的類咙鞍,新的類被稱為子類(B)房官,原來的類被稱為父類(A)。如圖1-9:
[圖片上傳失敗...(image-de78be-1538016970342)]
繼承是父類和子類之間共享變量和方法的機(jī)制续滋,該機(jī)制規(guī)定翰守,子類自動(dòng)繼承父類中定義的變量和方法,并允許子類在增加新的內(nèi)容疲酌。一個(gè)父類可以定義多個(gè)子類蜡峰,它們分別是父類的某種特例,父類描述了子類的公共變量和方法朗恳,這些子類又可以定義自己的子類湿颅,通過此途徑可以生成一個(gè)繼承的層次。另外粥诫,也允許一個(gè)子類有兩個(gè)父類或者多個(gè)父類油航,它可以從多個(gè)父類獲得繼承,此時(shí)成為“多重繼承”臀脏。
2劝堪、面向?qū)ο蠹夹g(shù)的優(yōu)點(diǎn)
1)通過“重用”提高產(chǎn)品質(zhì)量和生產(chǎn)率
2)使系統(tǒng)具有更好的易修改性和易擴(kuò)展性
通過封裝,可隱蔽對(duì)象中的變量和方法揉稚,因而當(dāng)改變對(duì)象中的變量和方法時(shí),不會(huì)影響到其他部分熬粗,從而可方便地修改老的對(duì)象類搀玖。另外,繼承是面向?qū)ο蠹夹g(shù)的重要特性驻呐,在創(chuàng)建一個(gè)新對(duì)象類時(shí)灌诅,通過利用繼承特性,可顯著地減少開發(fā)的時(shí)空開銷含末,使系統(tǒng)具有更好的易擴(kuò)展性和靈活性猜拾。
3)更易于保證系統(tǒng)的“正確性”和“可靠性”
對(duì)象是構(gòu)成操作系統(tǒng)的基本單元,由于可以獨(dú)立的對(duì)它進(jìn)行測(cè)試佣盒,易于保證每個(gè)對(duì)象的正確性和可靠性挎袜,因此也就別叫容易保證整個(gè)系統(tǒng)的正確性和可靠性。此外,封裝對(duì)對(duì)象類中的信息進(jìn)行了隱蔽盯仪,可以有效地防止對(duì)未經(jīng)授權(quán)者的訪問和用戶不正確的使用紊搪,有助于構(gòu)建更為安全的系統(tǒng)。
1.5.4 微內(nèi)核 OS 結(jié)構(gòu)
1全景、微內(nèi)核操作系統(tǒng)的基本概念
1)足夠小的內(nèi)核
在微內(nèi)核操作系統(tǒng)中耀石,內(nèi)核是精心設(shè)計(jì)的、能實(shí)現(xiàn)現(xiàn)代 OS 最基本的核心功能部分爸黄。微內(nèi)核并非是一個(gè)完整的 OS滞伟,而只是操作系統(tǒng)中最基本的部分,它通常用于:①實(shí)現(xiàn)與硬件緊密相關(guān)的處理炕贵;②實(shí)現(xiàn)一些較基本的功能诗良;③負(fù)責(zé)客戶和服務(wù)器之間的通信。
2)基于客戶/服務(wù)器模式
將操作系統(tǒng)中最基本的部件放入內(nèi)核中鲁驶,而把操作系統(tǒng)的絕大部分功能都放在微內(nèi)核外面的一組服務(wù)器(進(jìn)程)中實(shí)現(xiàn)鉴裹。例如用于提供對(duì)進(jìn)程(線程)進(jìn)行管理的進(jìn)程(線程)服務(wù)器,提供虛擬存儲(chǔ)器管理功能的虛擬存儲(chǔ)器服務(wù)器钥弯,提供 I/O 設(shè)備管理的 I/O 設(shè)備管理服務(wù)器等径荔。運(yùn)行在用戶態(tài),客戶與服務(wù)器之間是借助微內(nèi)核提供的消息傳遞機(jī)制來實(shí)現(xiàn)信息交互的脆霎。如圖1-10:在單機(jī)環(huán)境下的客戶/服務(wù)器模式
[圖片上傳失敗...(image-69be12-1538016970342)]
3)應(yīng)用“機(jī)制與策略分離”原理
所謂機(jī)制总处,是指實(shí)現(xiàn)某一功能的具體執(zhí)行機(jī)構(gòu)。而策略睛蛛,則是在機(jī)制的基礎(chǔ)上鹦马,借助于某些參數(shù)和算法來實(shí)現(xiàn)該功能的優(yōu)化,或達(dá)到不同的功能目標(biāo)忆肾。
4)采用面向?qū)ο蠹夹g(shù)
操作系統(tǒng)是一個(gè)及其復(fù)雜的大型軟件系統(tǒng)荸频,可以基于面向?qū)ο蠹夹g(shù)中的“抽象”和“隱蔽”原則控制系統(tǒng)的復(fù)雜性,再進(jìn)一步利用“對(duì)象”客冈、“封裝”和“繼承”等概念來確保操作系統(tǒng)的“正確性”旭从、“可靠性”、“易修改性”场仲、“易擴(kuò)展性”等和悦,并提高操作系統(tǒng)的設(shè)計(jì)速度。
2渠缕、微內(nèi)核的基本功能
1)進(jìn)程(線程)管理
如何確定每類用戶(進(jìn)程)的優(yōu)先級(jí)鸽素,以及應(yīng)如何修改它們的優(yōu)先級(jí)等,都屬于策略問題亦鳞,可將它們放入微內(nèi)核外的進(jìn)程(線程)管理服務(wù)器中馍忽。
2)低級(jí)存儲(chǔ)器管理
通常在微內(nèi)核中棒坏,只配置最基本的低級(jí)存儲(chǔ)器管理機(jī)制。而實(shí)現(xiàn)虛擬存儲(chǔ)器管理的策略舵匾,則包含采取何種頁面置換算法俊抵,采用何種內(nèi)存分配與回收策略等,應(yīng)將這部分放在微內(nèi)核外的存儲(chǔ)器管理服務(wù)器中去實(shí)現(xiàn)坐梯。
3)中斷和陷入處理
大多數(shù)微內(nèi)核操作系統(tǒng)都是將與硬件緊密相關(guān)的一小部分放入微內(nèi)核中處理徽诲。此時(shí)微內(nèi)核的主要功能,是捕獲所發(fā)生的中斷和陷入事件吵血,并進(jìn)行相應(yīng)的前期處理谎替。如進(jìn)行中斷現(xiàn)場(chǎng)保護(hù),識(shí)別中斷和陷入類型蹋辅,然后將有關(guān)事件的信息轉(zhuǎn)換為消息后钱贯,發(fā)給相應(yīng)的服務(wù)器。由服務(wù)器根據(jù)中斷或陷入的類型侦另,調(diào)用相應(yīng)的處理程序來進(jìn)行后期處理秩命。
在微內(nèi)核 OS 中是將進(jìn)程管理,存期管理以及 I/O 管理這些功能一分為二褒傅,屬于極致的很小一部分放在微內(nèi)核中弃锐,另外絕大部分放在微內(nèi)核外的各種服務(wù)器中來實(shí)現(xiàn)。
3殿托、微內(nèi)核操作系統(tǒng)的優(yōu)點(diǎn)
1)提高了系統(tǒng)的可擴(kuò)展性
由于微內(nèi)核 OS 的許多功能是由相對(duì)獨(dú)立的服務(wù)器軟件來實(shí)現(xiàn)的霹菊,當(dāng)開發(fā)了新的硬件和軟件時(shí),微內(nèi)核 OS 只需在相應(yīng)的服務(wù)器中增加新的功能支竹,或再增加一個(gè)專門的服務(wù)器旋廷。
2)增強(qiáng)了系統(tǒng)的可靠性
由于微內(nèi)核是出于精心設(shè)計(jì)和嚴(yán)格測(cè)試的,容易保證其正確性礼搁;另一方面是它提供了規(guī)范而精簡的應(yīng)用程序接口(API)饶碘,為微內(nèi)核外部的程序編制高質(zhì)量的代碼創(chuàng)造了條件。此外叹坦,由于所有服務(wù)器都是運(yùn)行在用戶態(tài)熊镣,服務(wù)器與服務(wù)器之間采用的是消息傳遞通信機(jī)制,因此募书,當(dāng)某個(gè)服務(wù)器出現(xiàn)錯(cuò)誤時(shí),不會(huì)影響內(nèi)核测蹲,也不會(huì)影響其他服務(wù)器莹捡。
3)可移植性
在微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)中,所有與特定 CPU 和 I/O 設(shè)備硬件有關(guān)的代碼扣甲,均放在內(nèi)核和內(nèi)核下面的硬件隱藏層中篮赢,而操作系統(tǒng)其它絕大部分(即各種服務(wù)器)均與硬件平臺(tái)無關(guān)齿椅,因而,把操作系統(tǒng)移植到另一個(gè)計(jì)算機(jī)硬件平臺(tái)上所需的修改是比較小的启泣。
4)提供了對(duì)分布式系統(tǒng)的支持
由于在微內(nèi)核 OS 中涣脚,客戶和服務(wù)器之間以及服務(wù)器和服務(wù)器之間的通信,是采用消息傳遞通信機(jī)制進(jìn)行的寥茫,致使微內(nèi)核 OS 能很好地支持分布式系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)遣蚀。
事實(shí)上,只要在分布式系統(tǒng)中賦予所有進(jìn)程和服務(wù)器唯一的標(biāo)識(shí)符纱耻,在微內(nèi)核中再配置一張系統(tǒng)映射表(即進(jìn)程和服務(wù)器的標(biāo)識(shí)符與它們所駐留的機(jī)器之間的對(duì)應(yīng)表)芭梯,在進(jìn)行客戶和服務(wù)器通信時(shí),只需在所發(fā)送的消息中表上所發(fā)送進(jìn)程和接收進(jìn)程的標(biāo)識(shí)符弄喘,微內(nèi)核便可利用系統(tǒng)映射表玖喘,將消息發(fā)往目標(biāo),而無論目標(biāo)是駐留在哪臺(tái)機(jī)器上蘑志。
5)融入了面向?qū)ο蠹夹g(shù)
在設(shè)計(jì)微內(nèi)核 OS 時(shí)累奈,采用了面向?qū)ο蟮募夹g(shù),其中的“封裝”急但、“繼承”澎媒、“對(duì)象類”和“多態(tài)性”,以及在對(duì)象之間采用消息傳遞機(jī)制等羊始,都十分有利于提高系統(tǒng)的的“正確性”旱幼、“可靠性”、“易修改性”突委、“易擴(kuò)展性”等柏卤,而且還能顯著地減少開發(fā)系統(tǒng)所付出的開銷。
4匀油、微內(nèi)核系統(tǒng)存在的問題
在微內(nèi)核 OS 中缘缚,由于客戶和服務(wù)器及服務(wù)器和服務(wù)器之間的通信,都需通過微內(nèi)核敌蚜,只是同樣的服務(wù)請(qǐng)求至少需要四次上下文切換桥滨。第一次是發(fā)生在客戶發(fā)送請(qǐng)求消息給內(nèi)核,以請(qǐng)求取得某服務(wù)器特定的服務(wù)時(shí)弛车;第二次是發(fā)生在由內(nèi)核把客戶的請(qǐng)求消息發(fā)往服務(wù)器時(shí)齐媒,第三次是當(dāng)服務(wù)器完成客戶的請(qǐng)求后,把響應(yīng)消息發(fā)送到內(nèi)核時(shí)纷跛;第四次是在內(nèi)核將響應(yīng)消息發(fā)送給客戶時(shí)喻括。
實(shí)際情況是,當(dāng)某個(gè)服務(wù)器自身尚無能力完成客戶請(qǐng)求贫奠,而需要其他服務(wù)器幫助時(shí)唬血,如圖1-11所示望蜡,其中的文件服務(wù)器還需要磁盤服務(wù)器的幫助,這時(shí)就需要進(jìn)行八次上下文的切換拷恨。
[圖片上傳失敗...(image-b90335-1538016970342)]
為了改善運(yùn)行效率脖律,可以重新把一些常用的操作系統(tǒng)的基本功能,由服務(wù)器移入微內(nèi)核中腕侄,這樣可使客戶對(duì)常用操作系統(tǒng)的功能的請(qǐng)求所發(fā)生的用戶/內(nèi)核模式和上下文切換的次數(shù)小泉。但是這又會(huì)使微內(nèi)核的容量明顯的增大,在小型接口定義和適應(yīng)性方面的有點(diǎn)也有所下降兜挨,同時(shí)也提高了微內(nèi)核的設(shè)計(jì)代價(jià)膏孟。