版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章操作系統(tǒng)概論主要內(nèi)容1.1操作系統(tǒng)概觀1.2操作系統(tǒng)的形成和發(fā)展1.3操作系統(tǒng)提供的服務(wù)和用戶接口1.4操作系統(tǒng)結(jié)構(gòu)和運(yùn)行模型1.5流行操作系統(tǒng)簡介11.1操作系統(tǒng)概觀1.1.1操作系統(tǒng)的定義和目標(biāo)1.1.2操作系統(tǒng)的資源管理技術(shù)1.1.3操作系統(tǒng)的作用與功能1.1.4操作系統(tǒng)的主要特性21.1.1操作系統(tǒng)的定義和目標(biāo)
操作系統(tǒng)是管理系統(tǒng)資源、控制程序執(zhí)行,改善人機(jī)界面,提供各種服務(wù),合理組織計(jì)算機(jī)工作流程和為用戶有效使用計(jì)算機(jī)提供良好運(yùn)行環(huán)境的最基本的一種系統(tǒng)軟件。3操作系統(tǒng)的主要目標(biāo)方便用戶使用擴(kuò)充機(jī)器功能管理系統(tǒng)資源提高系統(tǒng)效率構(gòu)筑開放環(huán)境4計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)(1)
財(cái)務(wù)系統(tǒng)航空訂票上網(wǎng)瀏覽電子商務(wù)科學(xué)計(jì)算(應(yīng)用軟件)編譯程序匯編程序數(shù)據(jù)庫(支撐軟件)操作系統(tǒng)(系統(tǒng)軟件)操作系統(tǒng)(系統(tǒng)軟件)計(jì)算機(jī)硬件………用戶n用戶4用戶3用戶2用戶1實(shí)用程序5計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)(2)
硬件層提供基本的可計(jì)算性資源,如處理器、寄存器、存儲(chǔ)器及各種I/O設(shè)備。操作系統(tǒng)層負(fù)責(zé)管理和控制計(jì)算機(jī)硬件并對其做首次擴(kuò)充和改造。系統(tǒng)程序?qū)樱ㄖ诬浖樱├孟到y(tǒng)所提供的擴(kuò)展指令集,實(shí)現(xiàn)編譯、匯編等實(shí)用程序,支持應(yīng)用軟件的開發(fā)和運(yùn)行。應(yīng)用層解決用戶特定的或不同應(yīng)用所需要的信息處理問題。6操作系統(tǒng)與支撐軟件及應(yīng)用軟件的區(qū)別程序意圖不同,操作系統(tǒng)有權(quán)分配資源,而其它程序只能使用資源;操作系統(tǒng)是軟件系統(tǒng)的核心,是各種軟件的基礎(chǔ)運(yùn)行平臺;通用操作系統(tǒng)提供共性功能支持,與硬件相關(guān)但和應(yīng)用領(lǐng)域無關(guān);支撐軟件及應(yīng)用軟件不能直接而只能通過操作系統(tǒng)來使用計(jì)算機(jī)系統(tǒng)的物理資源。71.1.2操作系統(tǒng)的資源管理技術(shù)資源復(fù)用(解決物理資源數(shù)量不足)
資源虛化(解決物理資源數(shù)量不足,提高服務(wù)的能力和水平)資源抽象(處理系統(tǒng)的復(fù)雜性,解決資源的易用性)
1.資源管理技術(shù)81)資源復(fù)用(1)空分復(fù)用共享
--該資源可進(jìn)一步分割成更多和更小的單位供進(jìn)程使用。如內(nèi)存、磁盤。(2)時(shí)分復(fù)用共享--并不把資源進(jìn)一步分割成更小的單位,進(jìn)程可在一個(gè)時(shí)間片內(nèi)獨(dú)占使用整個(gè)物理資源。如處理器。92)資源虛化是對資源進(jìn)行轉(zhuǎn)化、模擬或整合,把物理上的一個(gè)資源變成邏輯上的多個(gè)對應(yīng)物的一類技術(shù)。虛化的例子—虛擬設(shè)備、虛擬存儲(chǔ)器、虛擬屏幕(終端)、虛擬信道、虛擬文件。103)資源抽象資源抽象用于處理系統(tǒng)的復(fù)雜性,重點(diǎn)解決資源的易用性。資源抽象指通過創(chuàng)建軟件來屏蔽硬件資源物理特性和接口細(xì)節(jié),簡化對硬件資源的操作、控制和使用的一類技術(shù)。單級資源抽象與多級資源抽象。114)組合使用抽象和虛化技術(shù)對于一類資源,操作系統(tǒng)往往同時(shí)實(shí)施抽象和虛化技術(shù)。例1,為打印機(jī)既配置“打印函數(shù)”(設(shè)備驅(qū)動(dòng)程序),又實(shí)施虛擬設(shè)備,通過打印函數(shù)抽象隱蔽打印機(jī)動(dòng)作細(xì)節(jié),實(shí)施SPOOLing虛化“擴(kuò)充”物理打印機(jī)數(shù)量。例2,窗口軟件是對物理終端的虛化和抽象,能為用戶提供虛擬終端和方便的I/O服務(wù)。122.操作系統(tǒng)中的基礎(chǔ)抽象進(jìn)程抽象是對已進(jìn)入主存正在運(yùn)行的程序在處理器上操作的狀態(tài)集的抽象。虛存抽象是對物理主存的抽象,進(jìn)程可獲得一個(gè)碩大的連續(xù)地址空間來存放可執(zhí)行程序和數(shù)據(jù),可使用虛擬地址來引用物理主存單元。文件抽象是對磁盤之類存儲(chǔ)設(shè)備的抽象。13文件抽象是操作系統(tǒng)對磁盤設(shè)備的多層次抽象第一層抽象,從磁盤到分區(qū)。第二層抽象,從分區(qū)到扇區(qū)。第三層抽象,從扇區(qū)到簇。第四層抽象,從簇到文件系統(tǒng)分區(qū)。14操作系統(tǒng)最基礎(chǔ)抽象小結(jié)
文件抽象虛存抽象進(jìn)程抽象
處理器
主存
設(shè)備153.虛擬計(jì)算機(jī)什么是虛擬計(jì)算機(jī)?虛擬計(jì)算機(jī)是一臺抽象計(jì)算機(jī),它在硬件的基礎(chǔ)上由軟件來實(shí)現(xiàn),并且與物理計(jì)算機(jī)一樣,具有指令集及可用的存儲(chǔ)空間。什么是操作系統(tǒng)虛擬機(jī)?如果某臺機(jī)器上配有操作系統(tǒng),對于用戶來說,就是一臺以操作系統(tǒng)語言(系統(tǒng)調(diào)用)為機(jī)器語言的操作系統(tǒng)虛擬機(jī)。操作系統(tǒng)虛擬機(jī)的組成:1)虛處理器2)虛擬主存3)虛擬輔存4)虛擬設(shè)備16虛擬計(jì)算機(jī)操作系統(tǒng)資源管理(復(fù)用、虛化、主抽象)處II理//主輔器OO存存設(shè)設(shè)備備
物理計(jì)算機(jī)虛虛虛虛處主輔設(shè)理存存?zhèn)淦?/p>
虛擬機(jī)n進(jìn)程Pn時(shí)分復(fù)用共享空分復(fù)用共享…虛虛虛虛處主輔設(shè)理存存?zhèn)淦魈摂M機(jī)1進(jìn)程P117
1.1.3操作系統(tǒng)的作用與功能操作系統(tǒng)的作用:對內(nèi)是“管理員”,對外是“服務(wù)員”:OS作為用戶接口和服務(wù)提供者OS作為作為擴(kuò)展機(jī)或虛擬機(jī)OS作為資源管理者和控制者18OS作為用戶接口和服務(wù)提供者操作系統(tǒng)提供友善的人機(jī)接口,使得用戶能夠方便、可靠、安全、高效地使用硬件和運(yùn)行應(yīng)用程序;操作系統(tǒng)對計(jì)算機(jī)硬件進(jìn)行改造和擴(kuò)充,為用戶提供強(qiáng)有力的各種服務(wù);19OS作為擴(kuò)展機(jī)或虛擬機(jī)在計(jì)算機(jī)裸機(jī)上加上操作系統(tǒng)來組成整個(gè)計(jì)算機(jī)系統(tǒng);操作系統(tǒng)把硬件的復(fù)雜性與用戶隔離開來;操作系統(tǒng)與硬件組成一臺功能顯著增強(qiáng),使用更加方便,安全可靠性更好的擴(kuò)展機(jī)器或虛擬機(jī)。20操作系統(tǒng)作為計(jì)算機(jī)系統(tǒng)的資源管理者(1)操作系統(tǒng)中,能分配給用戶使用的硬件和軟件設(shè)施總稱為資源,包括兩類:硬件資源和信息資源。硬件資源又分:處理器、存儲(chǔ)器、I/O設(shè)備等;信息資源又分:程序和數(shù)據(jù)等。也可把操作系統(tǒng)定義為:是能使諸用戶有效、方便地共享一套計(jì)算機(jī)系統(tǒng)資源的一種系統(tǒng)軟件。21操作系統(tǒng)作為計(jì)算機(jī)系統(tǒng)的資源管理者(2)操作系統(tǒng)的重要任務(wù)之一對資源進(jìn)行抽象研究,找出各種資源共性和個(gè)性,有序地管理計(jì)算機(jī)中的硬件、軟件資源,跟蹤資源使用情況,監(jiān)視資源的狀態(tài),滿足用戶對資源的需求,協(xié)調(diào)各程序?qū)Y源的使用沖突;研究使用資源的統(tǒng)一方法,讓用戶簡單、有效的使用資源,最大限度地實(shí)現(xiàn)各類資源的共享,提高資源利用率,從而,使得計(jì)算機(jī)系統(tǒng)的效率有很大提高。22
操作系統(tǒng)的功能處理機(jī)管理存儲(chǔ)管理設(shè)備管理文件管理網(wǎng)絡(luò)與通信管理用戶接口23處理機(jī)管理(1)進(jìn)程控制和管理;(2)進(jìn)程同步和互斥;(3)進(jìn)程通信;(4)進(jìn)程死鎖;(5)線程控制和管理;(6)處理器調(diào)度,又分高級調(diào)度,中級調(diào)度和低級調(diào)度。24存儲(chǔ)管理(1)主存分配;(2)地址轉(zhuǎn)換與存儲(chǔ)保護(hù);(3)主存共享;(4)存儲(chǔ)擴(kuò)充。25設(shè)備管理(1)提供設(shè)備中斷處理;(2)提供緩沖區(qū)管理;(3)提供設(shè)備獨(dú)立性,實(shí)現(xiàn)邏輯設(shè)備到物理設(shè)備之間的映射;(4)設(shè)備的分配和回收;(5)實(shí)現(xiàn)共享型設(shè)備的驅(qū)動(dòng)調(diào)度;(6)實(shí)現(xiàn)虛擬設(shè)備。26文件管理(1)提供文件的邏輯組織方法;(2)提供文件的物理組織方法;(3)提供文件的存取和使用方法;(4)實(shí)現(xiàn)文件的目錄管理;(5)實(shí)現(xiàn)文件的共享和安全性控制;(6)實(shí)現(xiàn)文件的存儲(chǔ)空間管理。27網(wǎng)絡(luò)與通信管理(1)網(wǎng)絡(luò)資源管理;(2)數(shù)據(jù)通信管理;(3)網(wǎng)絡(luò)管理。用戶接口(1)程序接口;(2)操作接口。281.1.4操作系統(tǒng)的主要特性第一個(gè)特性--并發(fā)性第二個(gè)特性--共享性第三個(gè)特性--異步性
29操作系統(tǒng)中的并發(fā)性(1)
并發(fā)性指兩個(gè)或兩個(gè)以上的事件或活動(dòng)在同一時(shí)間間隔內(nèi)發(fā)生。發(fā)揮并發(fā)性能夠消除系統(tǒng)中部件和部件之間的相互等待,有效地改善系統(tǒng)資源的利用率,改進(jìn)系統(tǒng)的吞吐率,提高系統(tǒng)效率。30
并發(fā)性使系統(tǒng)變得復(fù)雜化:如何從一個(gè)活動(dòng)切換到另一個(gè)活動(dòng)?怎樣將各個(gè)活動(dòng)隔離開來,使之互不干擾,免遭對方破壞?怎樣讓多個(gè)活動(dòng)協(xié)作完成任務(wù)?怎樣協(xié)調(diào)多個(gè)活動(dòng)對資源的競爭?如何保證每個(gè)活動(dòng)的資源不被其它進(jìn)程侵犯?多個(gè)活動(dòng)共享文件數(shù)據(jù)時(shí),如何保證數(shù)據(jù)的一致性?操作系統(tǒng)中的并發(fā)性(2)
31采用并發(fā)技術(shù)的系統(tǒng)稱多任務(wù)系統(tǒng)。并發(fā)的實(shí)質(zhì)是一個(gè)物理CPU(也可以多個(gè)物理CPU)在若干道程序之間多路復(fù)用,并發(fā)性是對有限物理資源強(qiáng)制行使多用戶共享以提高效率。結(jié)論:實(shí)現(xiàn)并發(fā)技術(shù)的關(guān)鍵之一是如何對系統(tǒng)內(nèi)的多個(gè)活動(dòng)(進(jìn)程)進(jìn)行切換的技術(shù)。操作系統(tǒng)中的并發(fā)性(3)32并行性兩個(gè)或兩個(gè)以上的事件或活動(dòng)在同一時(shí)刻發(fā)生并行的事件或活動(dòng)一定是并發(fā)的,但反之并發(fā)的事件或活動(dòng)未必是并行的。并行性是并發(fā)性的特例,而并發(fā)性是并行性的擴(kuò)展。操作系統(tǒng)中的并發(fā)性(4)33操作系統(tǒng)中的共享性共享指操作系統(tǒng)中的資源可被多個(gè)并發(fā)執(zhí)行的進(jìn)程所使用:透明資源共享:資源隔離與授權(quán)訪問
顯式資源共享:臨界資源與獨(dú)占訪問與共享性有關(guān)的問題:資源分配、信息保護(hù)、存取控制等,必須要妥善解決好。34操作系統(tǒng)中的異步性(1)操作系統(tǒng)中的異步性處處可見:(1)進(jìn)程何時(shí)執(zhí)行?何時(shí)暫停?怎樣的速度向前推進(jìn)?都是異步(隨機(jī))的。(2)作業(yè)到達(dá)系統(tǒng)的類型和時(shí)間是隨機(jī)的;(3)操作員發(fā)出命令或按按鈕的時(shí)刻是隨機(jī)的;(4)程序運(yùn)行發(fā)生錯(cuò)誤或異常的時(shí)刻是隨機(jī)的;(5)各種各樣硬件和軟件中斷事件發(fā)生的時(shí)刻是隨機(jī)的。35操作系統(tǒng)中的異步性(2)
異步性給系統(tǒng)帶來潛在危險(xiǎn),有可能導(dǎo)致與時(shí)間有關(guān)的錯(cuò)誤。操作系統(tǒng)的一個(gè)重要任務(wù)是必須確保捕捉任何一種隨機(jī)事件,正確處理可能發(fā)生的隨機(jī)事件,正確處理任何一種產(chǎn)生的事件序列,否則將會(huì)導(dǎo)致嚴(yán)重后果。361.2操作系統(tǒng)的發(fā)展和形成1.2.1人工操作階段1.2.2
管理程序階段1.2.3多道程序設(shè)計(jì)與操作系統(tǒng)的形成1.2.4操作系統(tǒng)的分類371.2.1人工操作階段人工把源程序用穿孔機(jī)穿制在卡片或紙帶上將準(zhǔn)備好的匯編解釋程序或編譯系統(tǒng)裝入計(jì)算機(jī)匯編程序或編譯系統(tǒng)讀入人工裝在輸入機(jī)上的穿孔卡或穿孔帶執(zhí)行匯編過程或編譯過程,產(chǎn)生目標(biāo)程序,并輸出目標(biāo)卡片迭或紙帶通過引導(dǎo)程序把裝在輸入機(jī)上的目標(biāo)程序讀入計(jì)算機(jī)啟動(dòng)目標(biāo)程序執(zhí)行,從輸入機(jī)上讀入人工裝好的數(shù)據(jù)卡或數(shù)據(jù)帶產(chǎn)生計(jì)算結(jié)果,執(zhí)行結(jié)果從打印機(jī)上或卡片機(jī)上輸出38人工操作階段的缺點(diǎn)用戶上機(jī)獨(dú)占全機(jī)資源,造成資源利用率不高,系統(tǒng)效率低下手工操作多,浪費(fèi)處理機(jī)時(shí)間,也極易發(fā)生差錯(cuò)數(shù)據(jù)的輸入,程序的執(zhí)行、結(jié)果的輸出均聯(lián)機(jī)進(jìn)行,從上機(jī)到下機(jī)的時(shí)間拉得非常長391.2.2管理程序階段(1)
工作流程如下:操作員集中一批用戶提交的作業(yè),由管理程序?qū)⒆鳂I(yè)從紙帶或卡片機(jī)輸入到磁帶上,每當(dāng)一批作業(yè)輸入完成后,管理程序自動(dòng)把磁帶上的第一個(gè)作業(yè)裝入主存,并把控制權(quán)交給作業(yè)。當(dāng)該作業(yè)執(zhí)行完成后,作業(yè)又把控制權(quán)繳回管理程序,管理程序再調(diào)入磁帶上的第二個(gè)作業(yè)到主存執(zhí)行40管理程序階段(2)中斷處理設(shè)備驅(qū)動(dòng)作業(yè)定序命令和JCL語言解釋器用戶程序區(qū)管理程序的主存組織41管理程序階段(3)管理程序的主要功能:自動(dòng)控制和處理作業(yè)流提供一套操作命令提供設(shè)備驅(qū)動(dòng)和I/O控制功能提供庫函數(shù)和程序裝配功能提供簡單的文件管理功能42管理程序階段(4)程序算題過程管理程序還有未處理作業(yè)取下一個(gè)作業(yè)步控制卡讀Job卡登記新作業(yè)End作業(yè)卡回收資源撤離作業(yè)執(zhí)行作業(yè)步作業(yè)步正常結(jié)束分析原因作相應(yīng)處理作業(yè)繼續(xù)執(zhí)行轉(zhuǎn)向某作業(yè)步SSSFFF結(jié)束43
1.2.3多道程序設(shè)計(jì)與操作系統(tǒng)形成1.
多道程序設(shè)計(jì)的概念中斷與通道多道程序設(shè)計(jì)是指允許多個(gè)程序同時(shí)進(jìn)入一個(gè)計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器并啟動(dòng)進(jìn)行計(jì)算的方法從宏觀上看是并行的從微觀上看是串行的引入多道程序設(shè)計(jì)技術(shù)的目的:可以提高CPU的利用率,充分發(fā)揮計(jì)算機(jī)硬件的并行性。44多道程序設(shè)計(jì)例(1)78輸入機(jī)處理器磁帶機(jī)130150228280300378430450時(shí)間單道算題運(yùn)行時(shí)處理器的使用效率
52/(78十52十20)≈35%45多道程序設(shè)計(jì)例(2)78輸入機(jī)處理器磁帶機(jī)1130150228280300378430450時(shí)間磁帶機(jī)2打印機(jī)P1P2P1P2兩道算題運(yùn)行時(shí)處理器的使用效率(52+42)/150≈63%46多道程序設(shè)計(jì)的效果采用多道程序設(shè)計(jì)提高了系統(tǒng)效率,即增長了單位時(shí)間的算題量,但對每道程序來說,卻延長了計(jì)算時(shí)間。多道程序設(shè)計(jì)技術(shù)提高資源利用率和系統(tǒng)吞吐率是以犧牲用戶的響應(yīng)時(shí)間為代價(jià)的。472.多道程序設(shè)計(jì)的道數(shù)問題程序等待I/O操作的時(shí)間占其運(yùn)行時(shí)間的比例為p,當(dāng)主存中有n道程序時(shí),所有程序都等待I/O的概率是pn,那么,
CPU利用率=1-pnn稱為多道程序的道數(shù)或度數(shù),可見CPU的利用率是n的函數(shù)。48多道程序設(shè)計(jì)的優(yōu)點(diǎn)與缺點(diǎn)提高了CPU的利用率提高了主存和I/O設(shè)備的利用率改進(jìn)了系統(tǒng)的吞吐率充分發(fā)揮了系統(tǒng)的并行性其主要缺點(diǎn)是:作業(yè)周轉(zhuǎn)時(shí)間延長49
3.多道程序設(shè)計(jì)系統(tǒng)與多重處理系統(tǒng)
多重處理系統(tǒng)是指配置了多個(gè)物理CPU,能真正同時(shí)執(zhí)行多道程序的系統(tǒng)。要有效地使用多重處理系統(tǒng),必須采用多道程序設(shè)計(jì)技術(shù);反過來,多道程序設(shè)計(jì)不一定要求有多重處理系統(tǒng)支持。實(shí)現(xiàn)多道程序設(shè)計(jì)必須解決三個(gè)問題:存儲(chǔ)保護(hù)與程序浮動(dòng);處理器的管理和調(diào)度;系統(tǒng)資源的管理和調(diào)度。50
操作系統(tǒng)資源管理水平和操作自動(dòng)化程度進(jìn)一步提高,表現(xiàn)在:(1)實(shí)現(xiàn)了計(jì)算機(jī)操作過程自動(dòng)化。(2)資源管理水平有了提高。(3)提供虛存管理功能。(4)支持分時(shí)操作。(5)文件管理功能有改進(jìn)。(6)多道程序設(shè)計(jì)趨于完善。511.2.4操作系統(tǒng)的發(fā)展與分類三種基本的操作系統(tǒng)類型:(1)批處理操作系統(tǒng)(2)分時(shí)操作系統(tǒng)
(3)實(shí)時(shí)操作系統(tǒng)52批處理操作系統(tǒng)何謂“批”?作業(yè)流與批處理作業(yè)是把程序、數(shù)據(jù)連同作業(yè)說明書組織起來的任務(wù)單位;批處理是把批中的作業(yè)預(yù)先輸入作業(yè)隊(duì)列,由操作系統(tǒng)按照作業(yè)說明書的要求來調(diào)度和控制作業(yè)的執(zhí)行。批處理操作系統(tǒng)(BatchOS)采用批處理方式工作的操作系統(tǒng)批處理系統(tǒng)的主要特征:用戶脫機(jī)工作成批處理作業(yè)多道程序運(yùn)行作業(yè)周轉(zhuǎn)時(shí)間長
53分時(shí)操作系統(tǒng)為什么要有分時(shí)操作系統(tǒng)?批處理用戶不能干預(yù)自己程序的運(yùn)行,無法得知程序的運(yùn)行情況,不利于程序調(diào)試和排錯(cuò)。分時(shí)操作系統(tǒng)(TimeSharingOperatingSystem)允許多個(gè)聯(lián)機(jī)用戶同時(shí)使用一個(gè)計(jì)算機(jī)系統(tǒng)進(jìn)行交互式計(jì)算的操作系統(tǒng)。分時(shí)系統(tǒng)的特征同時(shí)性獨(dú)立性及時(shí)性交互性54分時(shí)與批處理操作系統(tǒng)的區(qū)別目標(biāo)不同適應(yīng)作業(yè)的性質(zhì)不同資源使用率不同作業(yè)控制方式不同55實(shí)時(shí)操作系統(tǒng)(1)三種典型的實(shí)時(shí)系統(tǒng):過程控制系統(tǒng)(生產(chǎn)過程控制)信息查詢系統(tǒng)(情報(bào)檢索)事務(wù)處理系統(tǒng)(銀行業(yè)務(wù))56實(shí)時(shí)操作系統(tǒng)(2)實(shí)時(shí)操作系統(tǒng)(RealTimeOS)處理流程數(shù)據(jù)采集加工處理操作控制反饋處理57操作系統(tǒng)的進(jìn)一步發(fā)展操作系統(tǒng)發(fā)展的主要?jiǎng)恿Γ海?)器件快速更新?lián)Q代。(2)計(jì)算體系結(jié)構(gòu)不斷發(fā)展。(3)提高計(jì)算機(jī)系統(tǒng)資源利用率的需要。(4)讓用戶使用計(jì)算機(jī)越來越方便的需要。(5)滿足用戶新要求,提供給用戶新服務(wù)。
58微機(jī)操作系統(tǒng)新一代微機(jī)操作系統(tǒng)具有以下功能:GUI、多用戶和多任務(wù)、虛擬存儲(chǔ)管理、網(wǎng)絡(luò)通信支持、數(shù)據(jù)庫支持、多媒體支持、應(yīng)用編程支持API具有以下特點(diǎn):(1)開放性(2)通用性(3)高性能(4)采用微內(nèi)核結(jié)構(gòu)59并行操作系統(tǒng)計(jì)算機(jī)的應(yīng)用每前進(jìn)一步都要求增加計(jì)算機(jī)的處理能力。為達(dá)到極高性能,除提高元器件速度外,必須改進(jìn)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),這主要采用增加同一時(shí)間間隔內(nèi)的操作數(shù)量,通過并行處理技術(shù),研究并行計(jì)算機(jī)。60網(wǎng)絡(luò)操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)(NetworkOperatingSystem)網(wǎng)絡(luò)操作系統(tǒng)應(yīng)該具有的功能:(1)網(wǎng)絡(luò)通信(2)資源管理(3)網(wǎng)絡(luò)管理(4)網(wǎng)絡(luò)服務(wù)61分布式操作系統(tǒng)分布式計(jì)算機(jī)系統(tǒng)由多臺分散的計(jì)算機(jī)經(jīng)互連網(wǎng)絡(luò)連接而成,具備四項(xiàng)基本功能:(1)進(jìn)程通信(2)資源共享(3)并行計(jì)算(4)網(wǎng)絡(luò)管理分布式操作系統(tǒng)與單機(jī)集中式操作系統(tǒng)的主要區(qū)別在于:(1)資源管理(2)進(jìn)程通信:(3)系統(tǒng)結(jié)構(gòu):62嵌入式操作系統(tǒng)(1)
3C(computer,communication,consumerelectronics)計(jì)算機(jī)是貫穿社會(huì)信息化的核心技術(shù),網(wǎng)絡(luò)和通信是社會(huì)信息化賴以存在的基礎(chǔ)設(shè)施,電子消費(fèi)產(chǎn)品是人與社會(huì)信息化的主要接口。嵌入式(計(jì)算機(jī))系統(tǒng)的應(yīng)用環(huán)境帶來了對嵌入式系統(tǒng)軟件(embeddedsoftware)的要求。63嵌入式操作系統(tǒng)(2)嵌入式OS指運(yùn)行在嵌入式(計(jì)算機(jī))環(huán)境中,對整個(gè)系統(tǒng)及所有操作的各種部件、裝置等資源進(jìn)行統(tǒng)一協(xié)調(diào)、處理、指揮和控制的系統(tǒng)軟件嵌入式OS具有通常操作系統(tǒng)的功能,包括:與硬件相關(guān)的底層軟件、操作系統(tǒng)核心功能,功能強(qiáng)大的還提供圖形界面、通信協(xié)議、小型瀏覽器等設(shè)施64嵌入式操作系統(tǒng)特征微型化可定制實(shí)時(shí)性可靠性易移植性65嵌入式操作系統(tǒng)實(shí)例(1)VxWorks是美國WindRiver公司開發(fā)的嵌入式實(shí)時(shí)操作系統(tǒng),可靠性高、性能卓越、界面友好,廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,在美國的F-16、FA-18戰(zhàn)斗機(jī)、B-2隱形轟炸機(jī)、愛國者導(dǎo)彈,和火星探測器(97年4月在火星表面登陸)上使用。66嵌入式操作系統(tǒng)實(shí)例(2)WindowsCE是微軟開發(fā)的,用于通信、娛樂和移動(dòng)式計(jì)算設(shè)備的操作系統(tǒng)(平臺),它是微軟“維納斯”計(jì)劃的核心。CE是具有開放性的,32位多任務(wù)、多線程嵌入式操作系統(tǒng)。PersonalJava是SUN公司開發(fā)的用于家庭、辦公室和移動(dòng)信息電器創(chuàng)建連網(wǎng)應(yīng)用的Java應(yīng)用環(huán)境,適宜更新?lián)Q代快的信息電器的應(yīng)用開發(fā)。671.3操作系統(tǒng)提供的服務(wù)和用戶接口1.3.1基本服務(wù)和用戶接口1.3.2程序接口與系統(tǒng)調(diào)用1.3.3作業(yè)接口與操作命令681.3.1操作系統(tǒng)提供的基本服務(wù)創(chuàng)建程序執(zhí)行程序數(shù)據(jù)I/O信息存取通信服務(wù)錯(cuò)誤檢測和處理還具有另外一些功能:資源分配,統(tǒng)計(jì),保護(hù)。
691.3.2程序接口與系統(tǒng)調(diào)用
系統(tǒng)調(diào)用(程序接口)操作命令操作系統(tǒng)裸機(jī)
應(yīng)用程序命令管理(作業(yè)接口)70操作系統(tǒng)提供的程序接口(1)什么是系統(tǒng)調(diào)用?系統(tǒng)調(diào)用把應(yīng)用程序的請求傳送至內(nèi)核,調(diào)用相應(yīng)的內(nèi)核函數(shù)完成所需的處理,將處理結(jié)果返回給應(yīng)用程序。系統(tǒng)調(diào)用的作用?內(nèi)核可以基于權(quán)限和規(guī)則對資源訪問進(jìn)行裁決,保證系統(tǒng)的安全性;對資源進(jìn)行抽象,提供一致性接口,避免用戶在使用資源時(shí)發(fā)生錯(cuò)誤,使編程效率提高。系統(tǒng)調(diào)用是應(yīng)用程序獲得操作系統(tǒng)服務(wù)的唯一途徑。內(nèi)核的主體是系統(tǒng)調(diào)用的集合,內(nèi)核可以看成是特殊的公共子程序。71操作系統(tǒng)提供的程序接口(2)POSIX標(biāo)準(zhǔn)專門規(guī)定了內(nèi)核的系統(tǒng)調(diào)用接口標(biāo)準(zhǔn),操作系統(tǒng)若遵循此標(biāo)準(zhǔn),應(yīng)用程序就具有可移植性。API和庫函數(shù)API是UNIX/Linux在標(biāo)準(zhǔn)C函數(shù)庫中,將系統(tǒng)調(diào)用封裝,使得應(yīng)用程序能夠直接使用的一種機(jī)制。庫函數(shù)和系統(tǒng)調(diào)用一個(gè)API可能用到一個(gè)或多個(gè)系統(tǒng)調(diào)用若干API可能封裝相同的系統(tǒng)調(diào)用也可能與系統(tǒng)調(diào)用無關(guān)(如strcpy())72操作系統(tǒng)提供的程序接口(3)調(diào)用fprintf()應(yīng)用程序C函數(shù)庫內(nèi)核系統(tǒng)調(diào)用處理程序C庫中的fprintf()封裝程序C庫中的write()封裝程序用戶態(tài)核心態(tài)sys_write()內(nèi)核函數(shù)應(yīng)用程序、庫函數(shù)、系統(tǒng)調(diào)用的調(diào)用關(guān)系鏈73操作系統(tǒng)提供的程序接口(4)
用戶
操作系統(tǒng)(進(jìn)程管理、存儲(chǔ)管理、文件管理、設(shè)備管理等)
標(biāo)準(zhǔn)庫函數(shù)(打開、關(guān)閉、讀、寫、創(chuàng)建、撤銷等)
標(biāo)準(zhǔn)系統(tǒng)程序(實(shí)用程序)(匯編、編譯、編輯、Shell等)用戶接口庫函數(shù)接口系統(tǒng)調(diào)用接口
硬件
(處理器、存儲(chǔ)器、磁盤、打印機(jī)、終端等)用戶態(tài)核心態(tài)UNIX/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用分層關(guān)系74操作系統(tǒng)提供的操作接口操作接口又稱作業(yè)級接口,操作系統(tǒng)為用戶提供的操作控制計(jì)算機(jī)工作和提供服務(wù)手段的集合,通常有操作控制命令、圖形操作界面(命令)、以及批處理系統(tǒng)提供的作業(yè)控制語言(命令)等等。75系統(tǒng)調(diào)用的分類(1)進(jìn)程和作業(yè)管理(2)文件操作(3)設(shè)備管理(4)主存管理(5)信息維護(hù)(6)進(jìn)程通信76系統(tǒng)調(diào)用的實(shí)現(xiàn)要點(diǎn)編寫系統(tǒng)調(diào)用處理程序;設(shè)計(jì)一張系統(tǒng)調(diào)用入口地址表,每個(gè)入口地址都指向一個(gè)系統(tǒng)調(diào)用的處理程序,有的系統(tǒng)還包含系統(tǒng)調(diào)用自帶參數(shù)的個(gè)數(shù);陷入處理機(jī)制需開辟現(xiàn)場保護(hù)區(qū),以保存發(fā)生系統(tǒng)調(diào)用時(shí)的處理器現(xiàn)場。77系統(tǒng)調(diào)用的處理過程SystemCall用戶程序A0SUB0SUB1SUBiSUBnA1AiAn……系統(tǒng)調(diào)用處理子程序取系統(tǒng)功能號找入口地址表相應(yīng)入口地址結(jié)束處理恢復(fù)現(xiàn)場A0A1…Ai…An保護(hù)CPU現(xiàn)場陷入指令系統(tǒng)調(diào)用陷入機(jī)構(gòu)入口地址表78系統(tǒng)調(diào)用的參數(shù)傳遞一是由訪管指令或陷入指令自帶參數(shù),直接參數(shù)間接參數(shù)二是通過CPU的通用寄存器傳遞參數(shù),或在主存的一個(gè)塊或表中存放參數(shù),其首地址送入寄存器,實(shí)現(xiàn)參數(shù)傳遞。三是在主存中開辟專用堆棧區(qū)域傳遞參數(shù)。79系統(tǒng)調(diào)用與函數(shù)調(diào)用的區(qū)別調(diào)用形式和實(shí)現(xiàn)方式不同。函數(shù)調(diào)用轉(zhuǎn)向的地址固定,而系統(tǒng)調(diào)用按功能號進(jìn)行;函數(shù)調(diào)用在用戶態(tài)執(zhí)行,只能訪問用戶棧,系統(tǒng)調(diào)用在核心態(tài)執(zhí)行,訪問核心棧。被調(diào)用代碼的位置不同。函數(shù)調(diào)用是靜態(tài)的,調(diào)用程序和被調(diào)用代碼處于同一程序內(nèi);系統(tǒng)調(diào)用是動(dòng)態(tài)的,系統(tǒng)調(diào)用的代碼位于操作系統(tǒng)中。提供方式不同。函數(shù)由編程語言提供;系統(tǒng)調(diào)用由操作系統(tǒng)提供。801.3.3作業(yè)接口與操作命令操作接口又稱作業(yè)級接口,是操作系統(tǒng)為用戶操作控制計(jì)算機(jī)工作和提供服務(wù)的手段集合,通??山柚僮骺刂泼?、圖形操作界面(命令)、以及作業(yè)控制語言(命令)等來實(shí)現(xiàn)1、作業(yè)控制方式聯(lián)機(jī)作業(yè)控制方式與作業(yè)控制語言脫機(jī)作業(yè)控制方式與操作控制命令
81聯(lián)機(jī)用戶接口—操作控制命令命令行方式批命令方式圖形化方式
82脫機(jī)用戶接口—作業(yè)控制語言批處理接口:作業(yè)控制語言JCL(JobControlLanguage)。用戶使用JCL語句,把運(yùn)行意圖(需要對作業(yè)進(jìn)行的控制和干予)寫在作業(yè)說明書上,將作業(yè)連同作業(yè)說明書一起提交給系統(tǒng)。批處理作業(yè)的調(diào)度執(zhí)行過程,系統(tǒng)調(diào)用JCL語句處理程序或命令解釋程序。83IBM370
使用JCL
處理批作業(yè)的例子
//HAROLDJOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=B//COMPEXECPGM=IEYFORT//SYSPRINTDDSYSOUT=A//SYSINDD/*··<SOURCEPROGRAMCARDS>··/*//GOEXECPGM=FORTLINK//SYSPRINTDDSYSOUT=A//FTOTF001DDUNIT=SYSCP//GOSYSINDD/*··<DATACARDS>··/*//842.命令解釋程序接收用戶所輸入的命令,并解釋執(zhí)行命令。命令的實(shí)現(xiàn)方式:命令的解釋程序包含命令的執(zhí)行代碼,一旦收到命令后,便轉(zhuǎn)向相應(yīng)的命令處理代碼執(zhí)行;由專門的“實(shí)用程序”實(shí)現(xiàn),在執(zhí)行時(shí)把命令所對應(yīng)的命令處理文件裝入主存。853.支撐程序(1)支撐程序又稱標(biāo)準(zhǔn)程序或?qū)嵱贸绦颍║tilities),雖非操作系統(tǒng)的核心,但卻必不可少,為用戶程序的開發(fā)、調(diào)試、執(zhí)行、和維護(hù)解決帶有共性的問題或執(zhí)行公共操作。操作系統(tǒng)以外部操作命令形式向用戶提供實(shí)用程序。它的功能和性能很大程度上反映了操作系統(tǒng)的功能和性能。86
支撐程序(2)支撐程序的分類:文件管理狀態(tài)信息程序設(shè)計(jì)語言支持程序的裝入和執(zhí)行支持通信其它軟件工具
871.4操作系統(tǒng)結(jié)構(gòu)和運(yùn)行模型1.4.1操作系統(tǒng)的構(gòu)件和結(jié)構(gòu)1.4.2操作系統(tǒng)的運(yùn)行模型1.4.3Windows2003客戶/服務(wù)器結(jié)構(gòu)881.4.1操作系統(tǒng)構(gòu)件和結(jié)構(gòu)操作系統(tǒng)設(shè)計(jì)呈現(xiàn)出以下特征:復(fù)雜程度高,生成周期長,正確性難保證。操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)有三層含義:研究操作系統(tǒng)整體結(jié)構(gòu),如功能如何分塊,相互如何交互,及考慮構(gòu)造它的過程和方法;研究操作系統(tǒng)程序局部結(jié)構(gòu),包括數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu);操作系統(tǒng)運(yùn)行時(shí)的組織,如系統(tǒng)是否組織成進(jìn)程或線程?在系統(tǒng)空間還是在用戶空間運(yùn)行?89操作系統(tǒng)的構(gòu)件內(nèi)核進(jìn)程線程類程管程901.操作系統(tǒng)的內(nèi)核(1)
1)什么是內(nèi)核?
內(nèi)核是一組程序模塊,作為可信軟件來提供支持進(jìn)程并發(fā)執(zhí)行的基本功能和基本操作,通常駐留在內(nèi)核空間,運(yùn)行于核心態(tài),具有訪問硬件設(shè)備和所有主存空間的權(quán)限,是僅有的能夠執(zhí)行特權(quán)指令的程序。2)內(nèi)核分類:微內(nèi)核和單內(nèi)核(整體、分層)。3)Linux是單內(nèi)核操作系統(tǒng),Mach是微內(nèi)核操作系統(tǒng),Windows2003是C/S結(jié)構(gòu)操作系統(tǒng)。91操作系統(tǒng)的內(nèi)核(2)
Linux單內(nèi)核結(jié)構(gòu)
用戶態(tài)
系統(tǒng)庫(函數(shù)庫)應(yīng)用程序
系統(tǒng)調(diào)用接口
模塊內(nèi)核(進(jìn)程管理、存儲(chǔ)管理、文件管理、設(shè)備管理、網(wǎng)絡(luò)管理)
設(shè)備驅(qū)動(dòng)
計(jì)算機(jī)硬件核心態(tài)單內(nèi)核92操作系統(tǒng)的內(nèi)核(3)
微內(nèi)核結(jié)構(gòu)操作系統(tǒng)服務(wù)進(jìn)程客戶進(jìn)程1客戶進(jìn)程2文件服務(wù)器進(jìn)程服務(wù)器主存服務(wù)器……
微內(nèi)核(消息傳遞)
計(jì)算機(jī)硬件
用戶進(jìn)程用戶態(tài)核心態(tài)客戶通過微內(nèi)核發(fā)送消息給文件服務(wù)器93操作系統(tǒng)的內(nèi)核(4)微內(nèi)核結(jié)構(gòu)的實(shí)現(xiàn)思想(OS分成兩部分):一是運(yùn)行在核心態(tài)的內(nèi)核,提供系統(tǒng)的基本功能;二是運(yùn)行在用戶態(tài)并以客戶-服務(wù)器方式運(yùn)行的進(jìn)程層。微內(nèi)核結(jié)構(gòu)的優(yōu)點(diǎn):對進(jìn)程的請求提供一致性接口;具有較好的可擴(kuò)充性和易改性;可移植性好;對分布式系統(tǒng)提供有力的支撐。94內(nèi)核的基本功能資源抽象資源分配資源共享
95內(nèi)核的基本屬性核是由中斷驅(qū)動(dòng)的內(nèi)核是不可搶占的內(nèi)核部分程序在屏蔽中斷狀態(tài)下執(zhí)行內(nèi)核可以使用特權(quán)指令96
內(nèi)核是操作系統(tǒng)對裸機(jī)的第一次改造,內(nèi)核和裸機(jī)組成的虛擬機(jī)具有以下特性:虛擬機(jī)沒有中斷;虛擬機(jī)為每個(gè)進(jìn)程提供了一臺虛擬處理器;虛擬機(jī)為進(jìn)程或模塊提供了功能較強(qiáng)的指令系統(tǒng)。虛擬機(jī)具有的特性97機(jī)制與策略分離(1)
在策略與機(jī)制分離的操作系統(tǒng)中,解決應(yīng)用問題均可分成兩部分:提供及實(shí)現(xiàn)確定的功能(機(jī)制),常常將機(jī)制作為系統(tǒng)的可信軟件來實(shí)現(xiàn);如何使用這些功能(策略),可在不可信的環(huán)境中定義策略。
98機(jī)制與策略分離(2)
例子:調(diào)度機(jī)制與調(diào)度策略的分離機(jī)制與策略分離的原則:
(1)機(jī)制由OS實(shí)現(xiàn),策略留給用戶完成;
(2)機(jī)制放在底層,策略放在高層;
(3)機(jī)制集中在少數(shù)模塊,策略擬散布在多處。
992.進(jìn)程進(jìn)程使得操作系統(tǒng)的結(jié)構(gòu)變得清晰:一個(gè)進(jìn)程到另一個(gè)進(jìn)程的控制轉(zhuǎn)移由進(jìn)程調(diào)度機(jī)制來統(tǒng)一管理;進(jìn)程之間的交互由通信及同步機(jī)制完成,提高了系統(tǒng)的安全性和可靠性。3.線程線程可看做一種構(gòu)件,是組成進(jìn)程構(gòu)件的更小的構(gòu)件單位。進(jìn)程是資源分配的基本單位;線程是系統(tǒng)調(diào)度的基本單位。1004.管程管程是管理共享資源的一種同步機(jī)制,對管程的調(diào)用表示對共享資源的請求與釋放。管程可以被多個(gè)進(jìn)程或管程嵌套調(diào)用,但是它們只能互斥的訪問管程。管程應(yīng)包含條件變量,對進(jìn)程進(jìn)行掛起和釋放。5.類程類程用于管理私有資源,只能被進(jìn)程及起源于同一進(jìn)程的其它類程或管程嵌套調(diào)用鏈所調(diào)用。1011.4.2操作系統(tǒng)的運(yùn)行模型操作系統(tǒng)本身是一組程序,也在處理器上運(yùn)行,那么,操作系統(tǒng)程序是否組織成進(jìn)程?它是如何控制的、怎樣執(zhí)行的呢?它在什么模式下運(yùn)行呢?從操作系統(tǒng)的運(yùn)行方式來看,可分成:
1)非進(jìn)程內(nèi)核模型
2)OS功能(函數(shù))在用戶進(jìn)程內(nèi)執(zhí)行的模型
3)OS功能(函數(shù))作為進(jìn)程執(zhí)行的模型102操作系統(tǒng)的運(yùn)行模型(1)
1)非進(jìn)程內(nèi)核模型應(yīng)用進(jìn)程應(yīng)用進(jìn)程內(nèi)核應(yīng)用進(jìn)程…核心態(tài)用戶態(tài)103操作系統(tǒng)運(yùn)行模型(2)
2)OS功能在用戶進(jìn)程內(nèi)執(zhí)行的模型核心態(tài)用戶態(tài)內(nèi)核函數(shù)內(nèi)核函數(shù)內(nèi)核函數(shù)應(yīng)用進(jìn)程應(yīng)用進(jìn)程…進(jìn)程切換函數(shù)應(yīng)用進(jìn)程104
操作系統(tǒng)的運(yùn)行模型(3)
3)OS功能作為獨(dú)立進(jìn)程執(zhí)行的模型微內(nèi)核(進(jìn)程切換函數(shù))應(yīng)用進(jìn)程…OS函數(shù)…用戶態(tài)核心態(tài)應(yīng)用進(jìn)程OS函數(shù)應(yīng)用進(jìn)程OS函數(shù)1051.4.3Windows2000/XP客戶/服務(wù)器結(jié)構(gòu)
結(jié)構(gòu)簡框
系統(tǒng)進(jìn)程服務(wù)進(jìn)程應(yīng)用程序環(huán)境子系統(tǒng)
子系統(tǒng)動(dòng)態(tài)鏈接庫用戶態(tài)核心態(tài)
執(zhí)行體核心設(shè)備驅(qū)動(dòng)程序硬件抽象層圖形引擎106Windows2000/XP客戶/服務(wù)器結(jié)構(gòu)(2)系統(tǒng)線程N(yùn)TDLL.DLLService.exeRPCSpooler事件日志服務(wù)進(jìn)程任務(wù)管理器IE瀏覽器用戶程序子系統(tǒng)DLL應(yīng)用程序POSIXOS2WIN32環(huán)境子系統(tǒng)服務(wù)管理器安全驗(yàn)證Win登錄會(huì)話管理器系統(tǒng)進(jìn)程核心態(tài)用戶態(tài)Win32UserGDI圖形驅(qū)動(dòng)器硬件抽象層(HAL)設(shè)備驅(qū)動(dòng)程序內(nèi)核對象管理器核心態(tài)可調(diào)用接口(執(zhí)行程序API)系統(tǒng)服務(wù)調(diào)度進(jìn)程I/O管理器文件緩存管理
進(jìn)程線程管理安全訪問監(jiān)視虛存管理局部過程調(diào)用注冊表配置管理器電源管理器即插即用管理硬件接口(總線、I/O、時(shí)鐘、計(jì)時(shí)器、中斷、DMA、CACHE控制器)1071.5流行操作系統(tǒng)簡介1.5.1Windows操作系統(tǒng)1.5.2UNIX操作系統(tǒng)家族1.5.3自由軟件和Linux操作系統(tǒng)1.5.4IBM系列操作系統(tǒng)1.5.5其他流行操作系統(tǒng)1081.5.1Windows操作系統(tǒng)(1)
Windows操作系統(tǒng)概況(2)WindowsNT的技術(shù)特點(diǎn)(3)Windows2000/XP(4)WindowsServer2003WindowsXP64-BitEdition(5)
WindowsCE1091.5.2UNIX操作系統(tǒng)家族(1)1雛形階段2成型階段3商業(yè)化階段
4標(biāo)準(zhǔn)化階段110U
N
I
X
操作系統(tǒng)
家族(2)
V1(71年)V3(73年)V6(75年)V7、V8V9V10(89年)Plan91BSD(78年)2BSD(78年)3BSD(79年)4BSD(80年)4.2BSD4.3BSD4.4BSD(93年)2.9BSD2.10BSD2.11BSDV7(78年)PWBPWB2systemⅢsystemⅤⅤ.2(84年)Ⅴ.3(87年)Ⅴ.3.2SVR4(89)XenixXenix2SCOIBMAIXSUNOSSolarisOSF1MachDecOSFDigitalUNIXTur64UNIXHPUXLinux111UNIX操作系統(tǒng)(3)UNIX的體系結(jié)構(gòu)包含四個(gè)基本成分:內(nèi)核(Kernel)Shell文件系統(tǒng)公用程序112UNIX操作系統(tǒng)(4)UNIX的主要特點(diǎn)(8個(gè)P49)UNIX的發(fā)展趨勢(標(biāo)準(zhǔn))計(jì)算機(jī)發(fā)展史上,沒有哪個(gè)程序設(shè)計(jì)語言像C那樣得到如此廣泛的流行,也沒有哪個(gè)操作系統(tǒng)像UNIX那樣獲得普遍的青睞和應(yīng)用,對整個(gè)軟件技術(shù)和軟件產(chǎn)業(yè)都產(chǎn)生了深遠(yuǎn)的影響。1983年Ritcchie和Thompson共同獲得了ACM圖靈獎(jiǎng)和軟件系統(tǒng)獎(jiǎng)。113UNIX類操作系統(tǒng)Solaris操作系統(tǒng)FreeBSD操作系統(tǒng)1141.5.3自由軟件和Linux操作系統(tǒng)商業(yè)軟件共享軟件自由軟件自由軟件是指遵循通用公共許可證GPL(GeneralpublicLicense)規(guī)則,保證您有使用上的自由、獲得源程序的自由,可以自己修改的自由,可以復(fù)制和推廣的自由,也可以有收費(fèi)的自由的一種軟件GNU的含義是GNUisnotUNIX的意思,由自由軟件的倡導(dǎo)者Richardstallman先生指導(dǎo)并啟動(dòng)的一個(gè)組織成立了自由軟件基金會(huì)GNU寫出一套和UNIX兼容,但又是自由軟件的UNIX系統(tǒng),GNU完成了大部分外圍工作,包括外國命令gcc/gcc++,shell等,最終Linux內(nèi)核為GNU工程劃上了一個(gè)完美句號115Linux操作系統(tǒng)Linux是由芬蘭藉科學(xué)家LinusTorvalds于1991年編寫完成的操作系統(tǒng)內(nèi)核。許多人對Linux進(jìn)行改進(jìn)、擴(kuò)充、完善,做出了關(guān)鍵性貢獻(xiàn)。Linux由最初一個(gè)人寫的原型變成在Internet上由無數(shù)志同道合的程序高手們參與的一場運(yùn)動(dòng)。Linux操作系統(tǒng)的技術(shù)特點(diǎn)。1161.5.4IBM系列操作系統(tǒng)RS/6000系列UNIX服務(wù)器及SP結(jié)點(diǎn)群集計(jì)算機(jī),運(yùn)行AIX操作系統(tǒng)S/390企業(yè)級服務(wù)器,運(yùn)行OS/390、VM和DOS/VSE操作系統(tǒng)Definity通用服務(wù)器,運(yùn)行基于Intel的WindowsNT、Netware等操作系統(tǒng)AS/400服務(wù)器首次采用64位RISC技術(shù),運(yùn)行OS400操作系統(tǒng)。PC微型機(jī),運(yùn)行Windows9x、OS2、MS-DOS等操作系統(tǒng)。1171.5.5其它流行的操作系統(tǒng)1.Mach操作系統(tǒng)Mach的發(fā)展歷史Mach的設(shè)計(jì)目標(biāo)為建造其它操作系統(tǒng)提供基礎(chǔ);支持大型稀疏地址空間;允許對網(wǎng)絡(luò)資源的透明訪問;從系統(tǒng)和應(yīng)用兩個(gè)方面開發(fā)并行性;可移植。Mach采用的主要技術(shù)微內(nèi)核機(jī)構(gòu)面向?qū)ο蟪绦蛟O(shè)計(jì)方法多處理器調(diào)度分頁存儲(chǔ)管理1182.Macintosh操作系統(tǒng)美國Apple公司推出Macintosh機(jī)操作系統(tǒng)。MAC是全圖形化界面和操作方式的鼻祖。由于它擁有全新的窗口系統(tǒng)、強(qiáng)有力的多媒體開發(fā)工具和操作簡便的網(wǎng)絡(luò)結(jié)構(gòu)而風(fēng)光一時(shí)MAC操作系統(tǒng)的主要特點(diǎn)有
1)采用面向?qū)ο蠹夹g(shù);
2)全圖形化界面;
3)虛擬存儲(chǔ)管理技術(shù);
4)應(yīng)用程序間的相互通信;
5)強(qiáng)有力的多媒體功能;
6)簡便的分布式網(wǎng)絡(luò)支持;
7)豐富的應(yīng)用軟件。1193.Netware操作系統(tǒng)Netware是Novell公司開發(fā)的網(wǎng)絡(luò)操作系統(tǒng)。具有高性能文件系統(tǒng)、支持DOS、OS/2、MAC、及UNIX文件格式;具有三級容錯(cuò),可靠性高;安全保密性好;提供開放的開發(fā)環(huán)境。Netwarelite是廉價(jià)點(diǎn)對點(diǎn)NOS,支持25個(gè)用戶,每個(gè)結(jié)點(diǎn)可作為對等機(jī)。Netware2.2是為小單位和工作組開發(fā)的NOS,滿足工作組用戶的各種需要Netware3.1x是32位NOS,更能發(fā)揮高檔PC的計(jì)算能力,支持用戶可達(dá)256個(gè),能支持DOS,Windows、Macintosh、OS/2和UNIX工作站訪問Netware服務(wù)器。Netware4.xx是其NOS新版,增強(qiáng)了網(wǎng)絡(luò)目錄服務(wù),支持用戶數(shù)可達(dá)1000個(gè)。1204.MINIX操作系統(tǒng)荷蘭Vrije大學(xué)計(jì)算機(jī)系教授AndrewS.Tanenbavm開發(fā)一個(gè)與UNIX兼容,然而內(nèi)核全新的操作系統(tǒng)。Minix沒有借用AT&T一行代碼,學(xué)生可以通過它來剖析一個(gè)操作系統(tǒng),研究其內(nèi)部如何運(yùn)作,其名稱源于‘小UNIX’,因?yàn)樗浅:啙?,短小,故稱MinixMinix用C語言編寫,著眼于可讀性好,代碼中加入數(shù)千行注釋??蛇\(yùn)行在IBMPC,Macintosh,Sparc,Amiga,Atari等許多平臺上Minix恪守“SmallisBeautiful”的原則,早期Minix沒有硬盤就能運(yùn)行。目前常用的是Minix2.0,具有多任務(wù)處理能力,可支持三個(gè)用戶同時(shí)工作,支持TCP/IP,支持4GB主存。提供5個(gè)編輯器、200個(gè)實(shí)用程序121作業(yè)P58應(yīng)用題1P59應(yīng)用題7122第2章處理器管理主要內(nèi)容中央處理器中斷技術(shù)進(jìn)程及其實(shí)現(xiàn)線程及其實(shí)現(xiàn)Linux進(jìn)程與線程Windows2003進(jìn)程與線程處理器調(diào)度處理器調(diào)度算法Linux調(diào)度算法Windows2003調(diào)度算法1232.1中央處理器2.1.1處理器2.1.2程序狀態(tài)字寄存器1242.1.1處理器
1.單處理器和多處理器系統(tǒng)單處理器系統(tǒng)順序處理流水線技術(shù)發(fā)射體系結(jié)構(gòu)125多處理器系統(tǒng)共享存儲(chǔ)(緊密耦合)多處理器系統(tǒng)共享所有處理器且平等的訪問同一個(gè)物理主存主從式對稱式分布存儲(chǔ)(松散耦合)多處理器系統(tǒng)每個(gè)處理器均擁有自己的主存,處理器之間通過網(wǎng)絡(luò)相連,在需要時(shí)通過網(wǎng)絡(luò)交換數(shù)據(jù)。集群系統(tǒng)1262.寄存器(1)計(jì)算機(jī)系統(tǒng)的處理器包括一組寄存器,其個(gè)數(shù)根據(jù)機(jī)型的不同而不同,它們構(gòu)成了一級存儲(chǔ),比主存容量小,但訪問速度快。這組寄存器所存儲(chǔ)的信息與程序的執(zhí)行有很大關(guān)系,構(gòu)成了處理器現(xiàn)場。127寄存器(2)通用寄存器--EAX,EBX,ECX和EDX指針及變址寄存器--ESP,EBP,ESI及EDI段選擇符寄存器--CS、DS、SS、ES、FS、GS指令指針寄存器和標(biāo)志寄存器--EIP、EFLAGS控制寄存器--CR0,CR1,CR2和CR3外部設(shè)備使用的寄存器—數(shù)據(jù)寄存器或緩沖區(qū),狀態(tài)寄存器,控制寄存器1283.特權(quán)指令與非特權(quán)指令(1)機(jī)器指令的集合稱指令系統(tǒng)
(1)數(shù)據(jù)處理類指令;
(2)轉(zhuǎn)移類指令;
(3)數(shù)據(jù)傳送類指令;
(4)移位與字符串指令;
(5)I/O類指令。129特權(quán)指令與非特權(quán)指令(2)從資源管理和控制程序執(zhí)行的角度出發(fā),必須把指令系統(tǒng)中的指令分作兩部分:特權(quán)指令和非特權(quán)指令。特權(quán)指令是指只能提供給操作系統(tǒng)的核心程序使用的指令,如啟動(dòng)I/O設(shè)備、設(shè)置時(shí)鐘、控制中斷屏蔽位、清主存、建立存儲(chǔ)鍵,加載PSW等。1304.處理器狀態(tài)處理器怎么知道當(dāng)前是操作系統(tǒng)還是一般用戶程序在運(yùn)行呢?處理器狀態(tài)標(biāo)志管理狀態(tài)(特權(quán)狀態(tài)、系統(tǒng)模式、特態(tài)或管態(tài))用戶狀態(tài)(目標(biāo)狀態(tài)、用戶模式、常態(tài)或目態(tài))。處理器處于管理狀態(tài)時(shí),程序可以執(zhí)行全部指令,使用所有資源,具有改變處理器狀態(tài)的能力;處理器處于用戶狀態(tài)時(shí),程序只能執(zhí)行非特權(quán)指令I(lǐng)ntelx86的處理器狀態(tài)有四種,支持4個(gè)保護(hù)級別,0級權(quán)限最高,3級權(quán)限最低131處理器狀態(tài)的轉(zhuǎn)換用戶態(tài)——核心態(tài)程序請求操作系統(tǒng)服務(wù),執(zhí)行系統(tǒng)調(diào)用;在程序運(yùn)行時(shí),產(chǎn)生中斷或異常事件,運(yùn)行程序被中斷,轉(zhuǎn)向中斷處理程序或異常處理程序工作。核心態(tài)——用戶態(tài)特權(quán)指令(加載程序狀態(tài)字)1322.1.2程序狀態(tài)字寄存器(1)計(jì)算機(jī)如何知道當(dāng)前處于何種工作狀態(tài)?這時(shí)能否執(zhí)行特權(quán)指令?通常操作系統(tǒng)都引入程序狀態(tài)字PSW(ProgramStatusWord)來區(qū)別不同的處理器工作狀態(tài)。PSW用來控制指令執(zhí)行順序并保留和指示與程序有關(guān)的系統(tǒng)狀態(tài),主要作用是實(shí)現(xiàn)程序狀態(tài)的保護(hù)和恢復(fù)。每個(gè)程序都有一個(gè)與其執(zhí)行相關(guān)的PSW,每個(gè)處理器都設(shè)置一個(gè)PSW寄存器。程序占有處理器執(zhí)行,它的PSW將占有PSW寄存器。133程序狀態(tài)字寄存器(2)PSW寄存器包括以下內(nèi)容:程序基本狀態(tài):
(1)程序計(jì)數(shù)器;
(2)條件碼;
(3)處理器狀態(tài)位。中斷碼:保存程序執(zhí)行時(shí)當(dāng)前發(fā)生的中斷事件。中斷屏蔽位:指明程序執(zhí)行中發(fā)生中斷事件時(shí),是否響應(yīng)出現(xiàn)的中斷事件。134IBM360/370系列計(jì)算機(jī)-程序狀態(tài)字的基本格式
XXXXXXXXXXXXXXXX8位系統(tǒng)屏蔽4位CMWP字段4位程序屏蔽4位保護(hù)鍵16位中斷碼字段指令長和條件碼24位指令地址135Intelx86程序狀態(tài)字Intelx86中,PSW由標(biāo)志寄存器EFLAGS和指令指針寄存器EIP組成,均為32位。EFLAGS的低16位稱FLAGS,標(biāo)志可劃分為三組:狀態(tài)標(biāo)志控制標(biāo)志系統(tǒng)標(biāo)志1362.2中斷技術(shù)2.2.1中斷概念2.2.2中斷源分類2.2.3中斷和異常的響應(yīng)及服務(wù)2.2.4中斷事件處理2.2.5中斷優(yōu)先級和多重中斷2.2.6Linux中斷處理2.2.7Windows2003中斷處理1372.2.1中斷的概念請求系統(tǒng)服務(wù)實(shí)現(xiàn)并行工作處理突發(fā)事件滿足實(shí)時(shí)要求
都需要打斷處理器正常的工作,為此,提出了中斷概念。138中斷的定義中斷是指程序執(zhí)行過程中,遇到急需處理的事件時(shí),暫時(shí)中止CPU上現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完成后再返回原程序被中斷處或調(diào)度其他程序執(zhí)行的過程。1392.2.2中斷源分類1.按中斷事件的性質(zhì)和激活的手段分類:
強(qiáng)迫性中斷事件:強(qiáng)迫性中斷事件不是正在運(yùn)行的程序所期待的,而是由于某種事故或外部請求信息所引起的,分為:機(jī)器故障中斷事件程序性中斷事件外部中斷事件輸入輸出中斷事件自愿性中斷事件:自愿性中斷事件是正在運(yùn)行的程序所期待的事件。
140按中斷事件的性質(zhì)和激活方式劃分圖示運(yùn)行程序中斷處理程序中斷裝置中斷處理程序中斷裝置機(jī)器故障中斷事件程序性中斷事件外部中斷事件輸入輸出中斷事件運(yùn)行程序訪管指令1412.按事件來源和實(shí)現(xiàn)手段分類硬中斷軟中斷外中斷(中斷、異步中斷)內(nèi)中斷(異常、同步中斷)信號軟件中斷按事件來源和實(shí)現(xiàn)手段分類142硬中斷外中斷(中斷或異步中斷)--是指來自處理器之外的中斷信號,包括時(shí)鐘中斷、鍵盤中斷、它機(jī)中斷和設(shè)備中斷等;外中斷又分可屏蔽中斷和不可屏蔽中斷,每個(gè)不同中斷具有不同的中斷優(yōu)先級,表示事件的緊急程度,在處理高一級中斷時(shí),往往會(huì)屏蔽部分或全部低級中斷。內(nèi)中斷(異常或同步中斷)--是指來自處理器內(nèi)部,通常由于程序執(zhí)行中,發(fā)現(xiàn)與當(dāng)前指令關(guān)聯(lián)的、不正常的、或是錯(cuò)誤的事件。143中斷和異常的區(qū)別中斷是由與現(xiàn)行指令無關(guān)的中斷信號觸發(fā)的(異步的),且中斷的發(fā)生與CPU處在用戶模式或內(nèi)核模式無關(guān),在兩條機(jī)器指令之間才可響應(yīng)中斷,一般來說,中斷處理程序提供的服務(wù)不是為當(dāng)前進(jìn)程所需的;異常是由處理器正在執(zhí)行現(xiàn)行指令而引起的,一條指令執(zhí)行期間允許響應(yīng)異常,異常處理程序提供的服務(wù)是為當(dāng)前進(jìn)程所用的。異常包括很多方面,有出錯(cuò)(fault),也有陷入(trap)等。
144Linux異常Linux為例,異常按錯(cuò)誤報(bào)告方式分四種:故障陷阱終止編程異常
故障發(fā)生時(shí)保存的返回指令地址指向觸發(fā)異常的當(dāng)前那條指令,故障處理后會(huì)重新執(zhí)行。編程異常和陷阱是由于執(zhí)行訪管指令引起的同步操作,異常返回時(shí),回到觸發(fā)異常的下一條指令。
145硬中斷與軟中斷中斷和異常要通過硬件設(shè)施來產(chǎn)生中斷請求,是硬中斷。軟中斷是利用硬中斷的概念,用軟件方法對中斷機(jī)制進(jìn)行模擬,實(shí)現(xiàn)宏觀上的異步執(zhí)行效果。軟中斷分兩種信號軟件中斷146中斷的通常用法
“中斷”(硬中斷)用于外部設(shè)備對CPU的中斷(中斷的是正在運(yùn)行的任何程序),轉(zhuǎn)向中斷處理程序上半部分執(zhí)行;“異?!?硬中斷)因指令執(zhí)行不正常而中斷CPU(中斷的是正在執(zhí)行這條指令的程序),轉(zhuǎn)向異常處理程序;“軟件中斷”(軟中斷)用于硬中斷服務(wù)程序?qū)?nèi)核的中斷,在上半部分中發(fā)出軟件中斷(即標(biāo)記下半部分),使得中斷下半部分在適當(dāng)時(shí)刻獲得處理;“信號”(軟中斷)用于內(nèi)核或進(jìn)程對某個(gè)進(jìn)程的中斷,通知進(jìn)程某個(gè)特定事件發(fā)生或迫使進(jìn)程執(zhí)行信號處理程序。147中斷機(jī)制與信號機(jī)制進(jìn)行類比
相同點(diǎn)概念上是一致的兩者都是“異步”的實(shí)現(xiàn)上均采用“向量表”均具有“屏蔽”設(shè)施。不同點(diǎn)中斷機(jī)制由硬件與軟件相結(jié)合來實(shí)現(xiàn),而信號機(jī)制由軟件實(shí)現(xiàn);中斷向量表和中斷處理程序(由系統(tǒng)提供)均在系統(tǒng)空間,而信號向量表雖在系統(tǒng)空間,但信號處理程序由應(yīng)用程序提供,并在用戶空間執(zhí)行。148硬中斷與軟中斷BH進(jìn)行類比
(1)數(shù)組bh_base[]相當(dāng)于硬件中斷機(jī)制中的數(shù)組irq_desc[];(2)bh_active在概念上相當(dāng)于硬件的“中斷請求寄存器”,而bh_mask相當(dāng)于硬件中的“中斷屏蔽寄存器”;(3)執(zhí)行一個(gè)BH函數(shù)時(shí),就通過mark_bh()將bh_active中的某位設(shè)成1,相當(dāng)于中斷源發(fā)出(軟件)中斷請求,所設(shè)置的具體標(biāo)志位則類似于“中斷向量”;(4)如果bh_mask中的相應(yīng)位是l,就會(huì)在每次執(zhí)行完do_IRQ()中的中斷服務(wù)程序后,及每次系統(tǒng)調(diào)用結(jié)束后,在函數(shù)do_bottom_half()中執(zhí)行相應(yīng)BH函數(shù),而do_bottom_half(),則類似于do_IRQ()。149硬中斷或軟中斷處理延時(shí)問題
CPU接到和響應(yīng)硬中斷或異常后會(huì)立即調(diào)用中斷或異常處理程序處理;對于接收到的信號或軟件中斷,此時(shí)由于進(jìn)程未必占有處理器運(yùn)行或內(nèi)核正在執(zhí)行敏感性操作,通常會(huì)有一定時(shí)間的延遲,在適當(dāng)?shù)臅r(shí)刻內(nèi)核或相關(guān)進(jìn)程才能加以處理。信號和軟件中斷雖然都由軟件產(chǎn)生,并都由軟件處理,但它們的中斷來源、使用場合、實(shí)現(xiàn)手段并不相同。150中斷/異常響應(yīng)要做四件事發(fā)現(xiàn)中斷源保護(hù)現(xiàn)場轉(zhuǎn)向處理中斷/異常事件的處理程序恢復(fù)現(xiàn)場2.2.3中斷和異常的響應(yīng)及服務(wù)151IBM中大型機(jī)中斷響應(yīng)過程
外中斷舊PSW訪管中斷舊PSW程序中斷舊PSW機(jī)器故障中斷舊PSWI/O中斷舊PSW外中斷新PSW訪管中斷新PSW程序中斷新PSW機(jī)器故障中斷新PSWI/O中斷新PSW18202830385860687078現(xiàn)行PSW②中斷時(shí)保存現(xiàn)行PSW③中斷時(shí)裝入現(xiàn)行PSW④中斷后恢復(fù)PSW主存專用雙字單元
(16進(jìn)制)①裝配中斷碼外中斷舊PSW訪管中斷舊PSW程序中斷舊PSW機(jī)器故障中斷舊PSWI/O中斷舊PSW外中斷新PSW訪管中斷新PSW程序中斷新PSW機(jī)器故障中斷新PSWI/O中斷新PSW18202830385860687078現(xiàn)行PSW②中斷時(shí)保存現(xiàn)行PSW③中斷時(shí)裝入現(xiàn)行PSW④中斷后恢復(fù)PSW主存專用雙字單元
(16進(jìn)制)①裝配中斷碼152IBMPC機(jī)中斷的響應(yīng)過程
IPCSPSW現(xiàn)行PSW
寄存器新IP新CS老IP老CS老PSW新棧頂主存新PSW1532.2.4中斷事件處理1中斷和異常的一般處理過程2硬件故障中斷3程序性中斷4I/O中斷5訪管中斷6時(shí)鐘中斷
1541.中斷和異常的一般處理過程執(zhí)行中斷處理程序關(guān)中斷恢復(fù)被中斷程序的現(xiàn)場開中斷返回?cái)帱c(diǎn),繼續(xù)執(zhí)行設(shè)備發(fā)中斷信號保存中斷現(xiàn)場開中斷根據(jù)中斷向量表
設(shè)置新運(yùn)行現(xiàn)場關(guān)中斷CPU向設(shè)備發(fā)確認(rèn)中斷信號1552.硬件故障中斷由硬件故障導(dǎo)致,排除需人工干預(yù)。中斷處理程序保護(hù)現(xiàn)場停止設(shè)備工作停止處理器運(yùn)行將故障信息向操作員報(bào)告對故障所造成的破壞進(jìn)行估計(jì)和恢復(fù)1563.程序性中斷應(yīng)用程序的錯(cuò)誤種類語法錯(cuò)誤由編譯程序發(fā)現(xiàn)并報(bào)錯(cuò)邏輯錯(cuò)誤由測試程序發(fā)現(xiàn)并報(bào)錯(cuò)程序運(yùn)行過程中所產(chǎn)生的異常定點(diǎn)溢出、除數(shù)為0等一般借助信號機(jī)制,OS將捕獲的這類中斷事件原封不動(dòng)的轉(zhuǎn)交給應(yīng)用程序自行處理。1574.I/O中斷處理原則I/O操作正常結(jié)束查看是否有其它進(jìn)程等待設(shè)備或通道,若有則釋放之。I/O操作發(fā)生故障先向設(shè)備發(fā)送命令索取狀態(tài)字,然后分析產(chǎn)生故障的確切原因,再采用復(fù)執(zhí)方式或請求人工干預(yù)。I/O操作發(fā)生異常分析情況,采取相應(yīng)的措施,向操作員報(bào)告。設(shè)備報(bào)到或設(shè)備結(jié)束表示有設(shè)備接入可供使用或設(shè)備斷開暫停使用,OS應(yīng)修改系統(tǒng)數(shù)據(jù)中相應(yīng)設(shè)備的狀態(tài)。1585.訪管中斷由程序執(zhí)行訪管指令而引起,表示當(dāng)前運(yùn)行程序?qū)Σ僮飨到y(tǒng)功能的調(diào)用。訪管指令操作碼表示此指令是訪管指令訪管參數(shù)表示具體的訪管要求1596.時(shí)鐘中斷(1)時(shí)鐘是操作系統(tǒng)進(jìn)行調(diào)度工作的重要工具,如讓分時(shí)進(jìn)程作時(shí)間片輪轉(zhuǎn)、讓實(shí)時(shí)進(jìn)程定時(shí)發(fā)出或接收控制信號、系統(tǒng)定時(shí)喚醒或阻塞一個(gè)進(jìn)程、對用戶進(jìn)程進(jìn)行記賬時(shí)鐘可分成絕對時(shí)鐘和間隔時(shí)鐘兩種160時(shí)鐘中斷(2)1)絕對時(shí)鐘服務(wù)提供以下功能的函數(shù):
①update_clock()更新當(dāng)前時(shí)間;
②get_time()返回當(dāng)前時(shí)鐘值;
③set_clock()把當(dāng)前時(shí)間設(shè)置為新值。161時(shí)鐘中斷(3)2)間隔定時(shí)器進(jìn)程可被延遲、阻塞,直到被間隔定時(shí)器中斷信號喚醒,應(yīng)提供以下函數(shù):delay(tdel)把調(diào)用進(jìn)程阻塞由參數(shù)tdel指定的時(shí)間長度,進(jìn)程保持阻塞直到本地時(shí)間到達(dá)進(jìn)程阻塞時(shí)的當(dāng)前時(shí)間+tdel的時(shí)刻。set_timer(tdel)硬件間隔定時(shí)器被設(shè)置為起始的遞減值tdel,當(dāng)該值達(dá)到0時(shí),產(chǎn)生間隔時(shí)鐘中斷,調(diào)用timeout()函數(shù)進(jìn)行處理。
162時(shí)鐘中斷(4)3)邏輯定時(shí)器需要提供函數(shù):tn=creat_ltime():創(chuàng)建邏輯定時(shí)器,tn中存放返回標(biāo)識符。destroy_ltime(tn):撤銷tn標(biāo)識的邏輯定時(shí)器。set_ltime(tn,tv):把tv值裝到邏輯定時(shí)器tn中,當(dāng)該值為0時(shí),產(chǎn)生時(shí)間到中斷。163時(shí)鐘中斷(5)(1)使用帶有絕對喚醒定時(shí)器的優(yōu)先級隊(duì)列硬件時(shí)鐘絕對時(shí)鐘間隔時(shí)鐘10312定時(shí)器隊(duì)列P1115P2135P3140P41500定時(shí)器隊(duì)列P1115P2135P5138P3140P41500164時(shí)鐘中斷(6)(2)使用帶有時(shí)間差值的優(yōu)先級隊(duì)列硬件時(shí)鐘間隔時(shí)鐘12定時(shí)器隊(duì)列P112P220P35P4100定時(shí)器隊(duì)列P112P220P53P32P4100硬件時(shí)鐘間隔時(shí)鐘12定時(shí)器隊(duì)列P112P220P35P4100定時(shí)器隊(duì)列P112P220P53P32P4100硬件時(shí)鐘間隔時(shí)鐘12定時(shí)器隊(duì)列P112P220P35P4100定時(shí)器隊(duì)列P112P220P53P32P4100硬件時(shí)鐘間隔時(shí)鐘12定時(shí)器隊(duì)列P112P220P35P4100定時(shí)器隊(duì)列P112P220P53P32P41001652.2.5中斷優(yōu)先級和多重中斷1中斷優(yōu)先級2中斷屏蔽3多重中斷事件的處理1661.中斷優(yōu)先級計(jì)算機(jī)執(zhí)行的每一瞬間,可能有幾個(gè)中斷事件同時(shí)發(fā)生,中斷裝置如何來響應(yīng)同時(shí)發(fā)生的中斷呢?以不發(fā)生中斷丟失為前提,把緊迫程度相當(dāng)?shù)闹袛嘣礆w在同一級,緊迫程度差別大的中斷源歸在不同級,級別高的有優(yōu)先獲得響應(yīng)的權(quán)力,中斷裝置預(yù)定的這個(gè)響應(yīng)順序稱為中斷優(yōu)先級。1672.中斷屏蔽主機(jī)可允許或禁止某類中斷的響應(yīng),如允許或禁止所有的I/O中斷、外部中斷、及某些程序性中斷。有些中斷是不能被禁止的,例如,計(jì)算機(jī)中的自愿性訪管中斷就不能被禁止。1683.多重中斷事件的處理中斷正在進(jìn)行處理期間,CPU又響應(yīng)新的中斷事件,于是暫時(shí)停止正在運(yùn)行的中斷處理程序,轉(zhuǎn)去執(zhí)行新的中斷處理程序,就叫多重中斷(又稱中斷嵌套)。處理方法:
(1)串行處理
(2)嵌套處理
(3)即時(shí)處理
1692.2.6Linux中斷處理1.Linux內(nèi)核處理流程中斷
自陷慢中斷快中斷
進(jìn)程正在運(yùn)行
用戶態(tài)
核心態(tài)
上半部分處理
返回原進(jìn)程運(yùn)行
排隊(duì)下半部分
快中斷處理
系統(tǒng)調(diào)用處理從系統(tǒng)調(diào)用返回ret_from_sys_call
調(diào)用schedule()
調(diào)度新進(jìn)程運(yùn)行運(yùn)行
用戶態(tài)
調(diào)度下半部分do_bottom_half()/do_softirq()
處理積累的信號do_signal()restore_all中斷170快中斷與慢中斷Linux中,區(qū)分快中斷和慢中斷兩類中斷事件。處理慢中斷前需保存所有寄存器的內(nèi)容,而快中斷處理僅要保存被常規(guī)C函數(shù)修改的寄存器;慢中斷處理時(shí),不屏蔽其他中斷信號,而快中斷處理時(shí)會(huì)屏蔽所有其他中斷;慢中斷處理完畢后,通常不立即返回被中斷的進(jìn)程,而是進(jìn)入調(diào)度程序重新調(diào)度,調(diào)度結(jié)果未必是被中斷的進(jìn)程運(yùn)行(是搶先式調(diào)度)。而快中斷處理完畢后,通?;謴?fù)現(xiàn)場返回被中斷的進(jìn)程繼續(xù)執(zhí)行(是非搶先式調(diào)度)。1712.下半部分處理概述中斷處理程序的特點(diǎn)以異步方式運(yùn)行;在屏蔽中斷狀態(tài)下運(yùn)行;要對硬件進(jìn)行操作,對于時(shí)限有很高的要求;在中斷上下文中運(yùn)行,故不能被阻塞。什么是下半部分處理?一種任務(wù)延遲處理機(jī)制。TophalfBottomhalf172Linux各種下半部分機(jī)制
bottomhalftaskqueuetaskletworkqueuesoftirq1733.下半部分(bottomhalf)實(shí)現(xiàn)原理
BH數(shù)組、函數(shù)入口指針bh_base、函數(shù)安裝標(biāo)志bh_mask、函數(shù)處理標(biāo)志bh_activebh-mask310031··bh-active310bh-base下半部分處理函數(shù)174BH的缺點(diǎn)下半部分處理函數(shù)的數(shù)量限制為32個(gè),且每個(gè)BH上只能掛接一個(gè)函數(shù)。-數(shù)目不夠用。每個(gè)BH在全局范圍內(nèi)同步,即使屬于不同的處理器,也不允許任何兩個(gè)BH同時(shí)執(zhí)行。-使用方便但不靈活,安全簡單但存在性能瓶頸。開發(fā)V2.5內(nèi)核時(shí),BH被拋棄。1754.任務(wù)隊(duì)列(taskqueue)實(shí)現(xiàn)原理內(nèi)核定義一組隊(duì)列,每個(gè)隊(duì)列包含一個(gè)由等待調(diào)用的函數(shù)組成的鏈表,不同隊(duì)列中的函數(shù)在某個(gè)時(shí)刻會(huì)被觸發(fā)執(zhí)行。實(shí)現(xiàn)對各種任務(wù)的延遲執(zhí)行。預(yù)定任務(wù)隊(duì)列:定時(shí)器隊(duì)列(TQ_TIMER)即時(shí)隊(duì)列(TQ_IMMEDIATE)進(jìn)程調(diào)度隊(duì)列(TQ_SCHEDULE)磁盤隊(duì)列(TQ_DISK)定時(shí)器Tophalf與bottomhalf協(xié)調(diào)工作的例子(自學(xué))任務(wù)隊(duì)列的缺點(diǎn)靈活性較差,無法勝任對性能要求較高的子系統(tǒng)在V2.5中已刪掉1765.小任務(wù)(tasklet)tasklet能更好支持SMP,它基于軟中斷來實(shí)現(xiàn),但比軟中斷接口簡單,鎖保護(hù)要求低;softirq保留給執(zhí)行頻率及時(shí)間要求特高的下半部分使用(如網(wǎng)絡(luò)和SCSI),多數(shù)場合下可使用tasklet。使用tasklet的步驟:聲明;編寫處理程序;調(diào)度。BH全局串行處理,不適應(yīng)SMP環(huán)境,而不同tasklet可同時(shí)運(yùn)行于不同CPU上,當(dāng)然,系統(tǒng)保證相同tasklet不會(huì)同時(shí)在不同CPU上運(yùn)行,在這種情形下,tasklet就不需要是可重入的。在新版Linux中,tasklet是建議的異步任務(wù)延遲執(zhí)行機(jī)制。1776.工作隊(duì)列workqueueLinux2.5內(nèi)核引入工作隊(duì)列,它把一個(gè)任務(wù)延遲,并交給內(nèi)核線程去完成,且該任務(wù)總是在進(jìn)程上下文中執(zhí)行,通過工作隊(duì)列執(zhí)行的代碼能占盡進(jìn)程上下文的優(yōu)勢,最重要的是工作隊(duì)列允許重新調(diào)度及阻塞。如果延遲執(zhí)行的任務(wù)需要阻塞,需要獲取信號量或需要獲得大量主存時(shí),那么,可選擇工作隊(duì)列,否則可使用tasklet或softirq。1787.軟中斷softirqLinux沿用最早BH思想,已實(shí)現(xiàn)了龐大和復(fù)雜的軟中斷子系統(tǒng)-softirq,它是一種軟中斷機(jī)制,又是一個(gè)框架,包括tasklet,及為網(wǎng)絡(luò)操作專門設(shè)計(jì)的軟中斷。最多可注冊32個(gè)軟中斷,目前版本預(yù)定義六個(gè)元素,
enum{HI_SOFTIRQ,//高優(yōu)先級taskletTIMER_SOFTIRQ,//定時(shí)器下半部分
NET_TX_SOFTIRQ,//發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包
NET_RX_SOFTIRQ,//接收網(wǎng)絡(luò)數(shù)據(jù)包
SCSI_SOFTIRQ,//SCSI下半部分
TASKLET_SOFTIRQ,//公共tasklet};179軟中斷使用步驟:聲明一個(gè)softirq;注冊softirq處理函數(shù);觸發(fā)軟中斷softirq;處理softirq。軟中斷執(zhí)行時(shí)機(jī):從系統(tǒng)調(diào)用中返回時(shí);從異常中返回時(shí);在調(diào)度程序中以及處理完硬件中斷之后。V2.6中軟中斷執(zhí)行時(shí)機(jī):在處理完硬件中斷之后;在ksoftirqd內(nèi)核線程中;在顯式檢查和執(zhí)行待處理的軟中斷的代碼中。1802.2.7Windows2003中斷處理Window2003中斷類型中斷有I/O設(shè)備、處理器時(shí)鐘或定時(shí)器等,可以啟用或禁用。中斷是異步事件,可能隨時(shí)發(fā)生,與處理器正在執(zhí)行的內(nèi)容無關(guān)。異常是同步事件,它是某一個(gè)特定指令執(zhí)行的結(jié)果。異常的例子是主存訪問錯(cuò)誤、調(diào)試指令及被零除。內(nèi)核也將系統(tǒng)服務(wù)調(diào)用視作異常。硬件和軟件都可以產(chǎn)生中斷和異常,如總線出錯(cuò)異常由硬件造成,而被零除異常是由軟件引起的;同樣,I/O設(shè)備可產(chǎn)生中斷,而內(nèi)核自身也可以發(fā)出中斷。
1811.Windows2000/XP陷阱調(diào)度中斷服務(wù)例程中斷服務(wù)例程中斷服務(wù)例程異常調(diào)度器虛存管理的頁面管理器中斷調(diào)度器系統(tǒng)服務(wù)調(diào)度器異常調(diào)度器陷阱處理程序異常幀虛擬地址異常硬件異常軟件異常系統(tǒng)服務(wù)調(diào)用中斷182
2.Windows2000/XP中斷請求級
系統(tǒng)關(guān)閉高31掉電30處理器內(nèi)的中斷29時(shí)鐘28配置文件設(shè)備n………設(shè)備1Dispatch/DPC2APC1低0硬件中斷軟件中斷正常的線程執(zhí)行183Windows2000/XP中斷屏蔽
高掉電處理器內(nèi)的中斷時(shí)鐘配置文件設(shè)備n………設(shè)備1在處理器A上被屏蔽的中斷Dispatch/DPCAPC低IRQL=時(shí)鐘處理器A在處理器B上被屏蔽的中斷IRQL=Dispatch/DPC處理器B1843.Windows2000/XP硬件中斷處理
低(無)………高掉電處理器間的中斷時(shí)鐘設(shè)備n………設(shè)備1②中斷調(diào)度程序接收到中斷源的IRQL,用作查詢IDT的索引Dispatch/DPCAPC①有中斷產(chǎn)生線程調(diào)度程序/DPC處理程序系統(tǒng)關(guān)閉例程系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具導(dǎo)購實(shí)戰(zhàn)訓(xùn)練絕對成交吳飛彤
- 2024至2030年中國彈力羅緞面料行業(yè)投資前景及策略咨詢研究報(bào)告
- 制造業(yè)主要經(jīng)濟(jì)業(yè)務(wù)的核算
- 2024至2030年中國分布移動(dòng)式切割機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024年中國防滑劑市場調(diào)查研究報(bào)告
- 2024年中國豪華型易拉寶市場調(diào)查研究報(bào)告
- 2024年中國耐溫耐堿消泡劑市場調(diào)查研究報(bào)告
- 2024年中國塑膠五金制品市場調(diào)查研究報(bào)告
- 高中數(shù)學(xué)總復(fù)習(xí)系列之集合
- 大學(xué)三年??茖I疽?guī)劃計(jì)劃書
- 人音版小學(xué)音樂五年級上冊教案全冊
- 企業(yè)工商過戶合同模板
- 雨污水管合同模板
- 《籃球:行進(jìn)間單手肩上投籃》教案(四篇)
- 2024-2025學(xué)年部編版初一上學(xué)期期中歷史試卷與參考答案
- 2024年山東地區(qū)光明電力服務(wù)公司第二批招聘高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 職業(yè)技能大賽-鴻蒙移動(dòng)應(yīng)用開發(fā)賽初賽理論知識考試及答案
- 2024山東高速集團(tuán)限公司招聘367人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- DB34T 3730-2020 耕地?fù)p毀程度鑒定技術(shù)規(guī)范
- 【人教版】《勞動(dòng)教育》二下 勞動(dòng)項(xiàng)目一 洗頭 課件
- 特種設(shè)備安全風(fēng)險(xiǎn)日管控、周排查、月調(diào)度管理制度及相關(guān)表格
評論
0/150
提交評論