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