操作系統教程第四版(孫鐘秀)全部課件_第1頁
操作系統教程第四版(孫鐘秀)全部課件_第2頁
操作系統教程第四版(孫鐘秀)全部課件_第3頁
操作系統教程第四版(孫鐘秀)全部課件_第4頁
操作系統教程第四版(孫鐘秀)全部課件_第5頁
已閱讀5頁,還剩961頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章操作系統概論主要內容1.1操作系統概觀1.2操作系統的形成和發展1.3操作系統提供的服務和用戶接口1.4操作系統結構和運行模型1.5流行操作系統簡介11.1操作系統概觀1.1.1操作系統的定義和目標1.1.2操作系統的資源管理技術1.1.3操作系統的作用與功能1.1.4操作系統的主要特性21.1.1操作系統的定義和目標

操作系統是管理系統資源、控制程序執行,改善人機界面,提供各種服務,合理組織計算機工作流程和為用戶有效使用計算機提供良好運行環境的最基本的一種系統軟件。3操作系統的主要目標方便用戶使用擴充機器功能管理系統資源提高系統效率構筑開放環境4計算機系統的層次結構(1)

財務系統航空訂票上網瀏覽電子商務科學計算(應用軟件)編譯程序匯編程序數據庫(支撐軟件)操作系統(系統軟件)操作系統(系統軟件)計算機硬件………用戶n用戶4用戶3用戶2用戶1實用程序5計算機系統的層次結構(2)

硬件層提供基本的可計算性資源,如處理器、寄存器、存儲器及各種I/O設備。操作系統層負責管理和控制計算機硬件并對其做首次擴充和改造。系統程序層(支撐軟件層)利用系統所提供的擴展指令集,實現編譯、匯編等實用程序,支持應用軟件的開發和運行。應用層解決用戶特定的或不同應用所需要的信息處理問題。6操作系統與支撐軟件及應用軟件的區別程序意圖不同,操作系統有權分配資源,而其它程序只能使用資源;操作系統是軟件系統的核心,是各種軟件的基礎運行平臺;通用操作系統提供共性功能支持,與硬件相關但和應用領域無關;支撐軟件及應用軟件不能直接而只能通過操作系統來使用計算機系統的物理資源。71.1.2操作系統的資源管理技術資源復用(解決物理資源數量不足)

資源虛化(解決物理資源數量不足,提高服務的能力和水平)資源抽象(處理系統的復雜性,解決資源的易用性)

1.資源管理技術81)資源復用(1)空分復用共享

--該資源可進一步分割成更多和更小的單位供進程使用。如內存、磁盤。(2)時分復用共享--并不把資源進一步分割成更小的單位,進程可在一個時間片內獨占使用整個物理資源。如處理器。92)資源虛化是對資源進行轉化、模擬或整合,把物理上的一個資源變成邏輯上的多個對應物的一類技術。虛化的例子—虛擬設備、虛擬存儲器、虛擬屏幕(終端)、虛擬信道、虛擬文件。103)資源抽象資源抽象用于處理系統的復雜性,重點解決資源的易用性。資源抽象指通過創建軟件來屏蔽硬件資源物理特性和接口細節,簡化對硬件資源的操作、控制和使用的一類技術。單級資源抽象與多級資源抽象。114)組合使用抽象和虛化技術對于一類資源,操作系統往往同時實施抽象和虛化技術。例1,為打印機既配置“打印函數”(設備驅動程序),又實施虛擬設備,通過打印函數抽象隱蔽打印機動作細節,實施SPOOLing虛化“擴充”物理打印機數量。例2,窗口軟件是對物理終端的虛化和抽象,能為用戶提供虛擬終端和方便的I/O服務。122.操作系統中的基礎抽象進程抽象是對已進入主存正在運行的程序在處理器上操作的狀態集的抽象。虛存抽象是對物理主存的抽象,進程可獲得一個碩大的連續地址空間來存放可執行程序和數據,可使用虛擬地址來引用物理主存單元。文件抽象是對磁盤之類存儲設備的抽象。13文件抽象是操作系統對磁盤設備的多層次抽象第一層抽象,從磁盤到分區。第二層抽象,從分區到扇區。第三層抽象,從扇區到簇。第四層抽象,從簇到文件系統分區。14操作系統最基礎抽象小結

文件抽象虛存抽象進程抽象

處理器

主存

設備153.虛擬計算機什么是虛擬計算機?虛擬計算機是一臺抽象計算機,它在硬件的基礎上由軟件來實現,并且與物理計算機一樣,具有指令集及可用的存儲空間。什么是操作系統虛擬機?如果某臺機器上配有操作系統,對于用戶來說,就是一臺以操作系統語言(系統調用)為機器語言的操作系統虛擬機。操作系統虛擬機的組成:1)虛處理器2)虛擬主存3)虛擬輔存4)虛擬設備16虛擬計算機操作系統資源管理(復用、虛化、主抽象)處II理//主輔器OO存存設設備備

物理計算機虛虛虛虛處主輔設理存存備器

虛擬機n進程Pn時分復用共享空分復用共享…虛虛虛虛處主輔設理存存備器虛擬機1進程P117

1.1.3操作系統的作用與功能操作系統的作用:對內是“管理員”,對外是“服務員”:OS作為用戶接口和服務提供者OS作為作為擴展機或虛擬機OS作為資源管理者和控制者18OS作為用戶接口和服務提供者操作系統提供友善的人機接口,使得用戶能夠方便、可靠、安全、高效地使用硬件和運行應用程序;操作系統對計算機硬件進行改造和擴充,為用戶提供強有力的各種服務;19OS作為擴展機或虛擬機在計算機裸機上加上操作系統來組成整個計算機系統;操作系統把硬件的復雜性與用戶隔離開來;操作系統與硬件組成一臺功能顯著增強,使用更加方便,安全可靠性更好的擴展機器或虛擬機。20操作系統作為計算機系統的資源管理者(1)操作系統中,能分配給用戶使用的硬件和軟件設施總稱為資源,包括兩類:硬件資源和信息資源。硬件資源又分:處理器、存儲器、I/O設備等;信息資源又分:程序和數據等。也可把操作系統定義為:是能使諸用戶有效、方便地共享一套計算機系統資源的一種系統軟件。21操作系統作為計算機系統的資源管理者(2)操作系統的重要任務之一對資源進行抽象研究,找出各種資源共性和個性,有序地管理計算機中的硬件、軟件資源,跟蹤資源使用情況,監視資源的狀態,滿足用戶對資源的需求,協調各程序對資源的使用沖突;研究使用資源的統一方法,讓用戶簡單、有效的使用資源,最大限度地實現各類資源的共享,提高資源利用率,從而,使得計算機系統的效率有很大提高。22

操作系統的功能處理機管理存儲管理設備管理文件管理網絡與通信管理用戶接口23處理機管理(1)進程控制和管理;(2)進程同步和互斥;(3)進程通信;(4)進程死鎖;(5)線程控制和管理;(6)處理器調度,又分高級調度,中級調度和低級調度。24存儲管理(1)主存分配;(2)地址轉換與存儲保護;(3)主存共享;(4)存儲擴充。25設備管理(1)提供設備中斷處理;(2)提供緩沖區管理;(3)提供設備獨立性,實現邏輯設備到物理設備之間的映射;(4)設備的分配和回收;(5)實現共享型設備的驅動調度;(6)實現虛擬設備。26文件管理(1)提供文件的邏輯組織方法;(2)提供文件的物理組織方法;(3)提供文件的存取和使用方法;(4)實現文件的目錄管理;(5)實現文件的共享和安全性控制;(6)實現文件的存儲空間管理。27網絡與通信管理(1)網絡資源管理;(2)數據通信管理;(3)網絡管理。用戶接口(1)程序接口;(2)操作接口。281.1.4操作系統的主要特性第一個特性--并發性第二個特性--共享性第三個特性--異步性

29操作系統中的并發性(1)

并發性指兩個或兩個以上的事件或活動在同一時間間隔內發生。發揮并發性能夠消除系統中部件和部件之間的相互等待,有效地改善系統資源的利用率,改進系統的吞吐率,提高系統效率。30

并發性使系統變得復雜化:如何從一個活動切換到另一個活動?怎樣將各個活動隔離開來,使之互不干擾,免遭對方破壞?怎樣讓多個活動協作完成任務?怎樣協調多個活動對資源的競爭?如何保證每個活動的資源不被其它進程侵犯?多個活動共享文件數據時,如何保證數據的一致性?操作系統中的并發性(2)

31采用并發技術的系統稱多任務系統。并發的實質是一個物理CPU(也可以多個物理CPU)在若干道程序之間多路復用,并發性是對有限物理資源強制行使多用戶共享以提高效率。結論:實現并發技術的關鍵之一是如何對系統內的多個活動(進程)進行切換的技術。操作系統中的并發性(3)32并行性兩個或兩個以上的事件或活動在同一時刻發生并行的事件或活動一定是并發的,但反之并發的事件或活動未必是并行的。并行性是并發性的特例,而并發性是并行性的擴展。操作系統中的并發性(4)33操作系統中的共享性共享指操作系統中的資源可被多個并發執行的進程所使用:透明資源共享:資源隔離與授權訪問

顯式資源共享:臨界資源與獨占訪問與共享性有關的問題:資源分配、信息保護、存取控制等,必須要妥善解決好。34操作系統中的異步性(1)操作系統中的異步性處處可見:(1)進程何時執行?何時暫停?怎樣的速度向前推進?都是異步(隨機)的。(2)作業到達系統的類型和時間是隨機的;(3)操作員發出命令或按按鈕的時刻是隨機的;(4)程序運行發生錯誤或異常的時刻是隨機的;(5)各種各樣硬件和軟件中斷事件發生的時刻是隨機的。35操作系統中的異步性(2)

異步性給系統帶來潛在危險,有可能導致與時間有關的錯誤。操作系統的一個重要任務是必須確保捕捉任何一種隨機事件,正確處理可能發生的隨機事件,正確處理任何一種產生的事件序列,否則將會導致嚴重后果。361.2操作系統的發展和形成1.2.1人工操作階段1.2.2

管理程序階段1.2.3多道程序設計與操作系統的形成1.2.4操作系統的分類371.2.1人工操作階段人工把源程序用穿孔機穿制在卡片或紙帶上將準備好的匯編解釋程序或編譯系統裝入計算機匯編程序或編譯系統讀入人工裝在輸入機上的穿孔卡或穿孔帶執行匯編過程或編譯過程,產生目標程序,并輸出目標卡片迭或紙帶通過引導程序把裝在輸入機上的目標程序讀入計算機啟動目標程序執行,從輸入機上讀入人工裝好的數據卡或數據帶產生計算結果,執行結果從打印機上或卡片機上輸出38人工操作階段的缺點用戶上機獨占全機資源,造成資源利用率不高,系統效率低下手工操作多,浪費處理機時間,也極易發生差錯數據的輸入,程序的執行、結果的輸出均聯機進行,從上機到下機的時間拉得非常長391.2.2管理程序階段(1)

工作流程如下:操作員集中一批用戶提交的作業,由管理程序將作業從紙帶或卡片機輸入到磁帶上,每當一批作業輸入完成后,管理程序自動把磁帶上的第一個作業裝入主存,并把控制權交給作業。當該作業執行完成后,作業又把控制權繳回管理程序,管理程序再調入磁帶上的第二個作業到主存執行40管理程序階段(2)中斷處理設備驅動作業定序命令和JCL語言解釋器用戶程序區管理程序的主存組織41管理程序階段(3)管理程序的主要功能:自動控制和處理作業流提供一套操作命令提供設備驅動和I/O控制功能提供庫函數和程序裝配功能提供簡單的文件管理功能42管理程序階段(4)程序算題過程管理程序還有未處理作業取下一個作業步控制卡讀Job卡登記新作業End作業卡回收資源撤離作業執行作業步作業步正常結束分析原因作相應處理作業繼續執行轉向某作業步SSSFFF結束43

1.2.3多道程序設計與操作系統形成1.

多道程序設計的概念中斷與通道多道程序設計是指允許多個程序同時進入一個計算機系統的主存儲器并啟動進行計算的方法從宏觀上看是并行的從微觀上看是串行的引入多道程序設計技術的目的:可以提高CPU的利用率,充分發揮計算機硬件的并行性。44多道程序設計例(1)78輸入機處理器磁帶機130150228280300378430450時間單道算題運行時處理器的使用效率

52/(78十52十20)≈35%45多道程序設計例(2)78輸入機處理器磁帶機1130150228280300378430450時間磁帶機2打印機P1P2P1P2兩道算題運行時處理器的使用效率(52+42)/150≈63%46多道程序設計的效果采用多道程序設計提高了系統效率,即增長了單位時間的算題量,但對每道程序來說,卻延長了計算時間。多道程序設計技術提高資源利用率和系統吞吐率是以犧牲用戶的響應時間為代價的。472.多道程序設計的道數問題程序等待I/O操作的時間占其運行時間的比例為p,當主存中有n道程序時,所有程序都等待I/O的概率是pn,那么,

CPU利用率=1-pnn稱為多道程序的道數或度數,可見CPU的利用率是n的函數。48多道程序設計的優點與缺點提高了CPU的利用率提高了主存和I/O設備的利用率改進了系統的吞吐率充分發揮了系統的并行性其主要缺點是:作業周轉時間延長49

3.多道程序設計系統與多重處理系統

多重處理系統是指配置了多個物理CPU,能真正同時執行多道程序的系統。要有效地使用多重處理系統,必須采用多道程序設計技術;反過來,多道程序設計不一定要求有多重處理系統支持。實現多道程序設計必須解決三個問題:存儲保護與程序浮動;處理器的管理和調度;系統資源的管理和調度。50

操作系統資源管理水平和操作自動化程度進一步提高,表現在:(1)實現了計算機操作過程自動化。(2)資源管理水平有了提高。(3)提供虛存管理功能。(4)支持分時操作。(5)文件管理功能有改進。(6)多道程序設計趨于完善。511.2.4操作系統的發展與分類三種基本的操作系統類型:(1)批處理操作系統(2)分時操作系統

(3)實時操作系統52批處理操作系統何謂“批”?作業流與批處理作業是把程序、數據連同作業說明書組織起來的任務單位;批處理是把批中的作業預先輸入作業隊列,由操作系統按照作業說明書的要求來調度和控制作業的執行。批處理操作系統(BatchOS)采用批處理方式工作的操作系統批處理系統的主要特征:用戶脫機工作成批處理作業多道程序運行作業周轉時間長

53分時操作系統為什么要有分時操作系統?批處理用戶不能干預自己程序的運行,無法得知程序的運行情況,不利于程序調試和排錯。分時操作系統(TimeSharingOperatingSystem)允許多個聯機用戶同時使用一個計算機系統進行交互式計算的操作系統。分時系統的特征同時性獨立性及時性交互性54分時與批處理操作系統的區別目標不同適應作業的性質不同資源使用率不同作業控制方式不同55實時操作系統(1)三種典型的實時系統:過程控制系統(生產過程控制)信息查詢系統(情報檢索)事務處理系統(銀行業務)56實時操作系統(2)實時操作系統(RealTimeOS)處理流程數據采集加工處理操作控制反饋處理57操作系統的進一步發展操作系統發展的主要動力:(1)器件快速更新換代。(2)計算體系結構不斷發展。(3)提高計算機系統資源利用率的需要。(4)讓用戶使用計算機越來越方便的需要。(5)滿足用戶新要求,提供給用戶新服務。

58微機操作系統新一代微機操作系統具有以下功能:GUI、多用戶和多任務、虛擬存儲管理、網絡通信支持、數據庫支持、多媒體支持、應用編程支持API具有以下特點:(1)開放性(2)通用性(3)高性能(4)采用微內核結構59并行操作系統計算機的應用每前進一步都要求增加計算機的處理能力。為達到極高性能,除提高元器件速度外,必須改進計算機系統結構,這主要采用增加同一時間間隔內的操作數量,通過并行處理技術,研究并行計算機。60網絡操作系統網絡操作系統(NetworkOperatingSystem)網絡操作系統應該具有的功能:(1)網絡通信(2)資源管理(3)網絡管理(4)網絡服務61分布式操作系統分布式計算機系統由多臺分散的計算機經互連網絡連接而成,具備四項基本功能:(1)進程通信(2)資源共享(3)并行計算(4)網絡管理分布式操作系統與單機集中式操作系統的主要區別在于:(1)資源管理(2)進程通信:(3)系統結構:62嵌入式操作系統(1)

3C(computer,communication,consumerelectronics)計算機是貫穿社會信息化的核心技術,網絡和通信是社會信息化賴以存在的基礎設施,電子消費產品是人與社會信息化的主要接口。嵌入式(計算機)系統的應用環境帶來了對嵌入式系統軟件(embeddedsoftware)的要求。63嵌入式操作系統(2)嵌入式OS指運行在嵌入式(計算機)環境中,對整個系統及所有操作的各種部件、裝置等資源進行統一協調、處理、指揮和控制的系統軟件嵌入式OS具有通常操作系統的功能,包括:與硬件相關的底層軟件、操作系統核心功能,功能強大的還提供圖形界面、通信協議、小型瀏覽器等設施64嵌入式操作系統特征微型化可定制實時性可靠性易移植性65嵌入式操作系統實例(1)VxWorks是美國WindRiver公司開發的嵌入式實時操作系統,可靠性高、性能卓越、界面友好,廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,在美國的F-16、FA-18戰斗機、B-2隱形轟炸機、愛國者導彈,和火星探測器(97年4月在火星表面登陸)上使用。66嵌入式操作系統實例(2)WindowsCE是微軟開發的,用于通信、娛樂和移動式計算設備的操作系統(平臺),它是微軟“維納斯”計劃的核心。CE是具有開放性的,32位多任務、多線程嵌入式操作系統。PersonalJava是SUN公司開發的用于家庭、辦公室和移動信息電器創建連網應用的Java應用環境,適宜更新換代快的信息電器的應用開發。671.3操作系統提供的服務和用戶接口1.3.1基本服務和用戶接口1.3.2程序接口與系統調用1.3.3作業接口與操作命令681.3.1操作系統提供的基本服務創建程序執行程序數據I/O信息存取通信服務錯誤檢測和處理還具有另外一些功能:資源分配,統計,保護。

691.3.2程序接口與系統調用

系統調用(程序接口)操作命令操作系統裸機

應用程序命令管理(作業接口)70操作系統提供的程序接口(1)什么是系統調用?系統調用把應用程序的請求傳送至內核,調用相應的內核函數完成所需的處理,將處理結果返回給應用程序。系統調用的作用?內核可以基于權限和規則對資源訪問進行裁決,保證系統的安全性;對資源進行抽象,提供一致性接口,避免用戶在使用資源時發生錯誤,使編程效率提高。系統調用是應用程序獲得操作系統服務的唯一途徑。內核的主體是系統調用的集合,內核可以看成是特殊的公共子程序。71操作系統提供的程序接口(2)POSIX標準專門規定了內核的系統調用接口標準,操作系統若遵循此標準,應用程序就具有可移植性。API和庫函數API是UNIX/Linux在標準C函數庫中,將系統調用封裝,使得應用程序能夠直接使用的一種機制。庫函數和系統調用一個API可能用到一個或多個系統調用若干API可能封裝相同的系統調用也可能與系統調用無關(如strcpy())72操作系統提供的程序接口(3)調用fprintf()應用程序C函數庫內核系統調用處理程序C庫中的fprintf()封裝程序C庫中的write()封裝程序用戶態核心態sys_write()內核函數應用程序、庫函數、系統調用的調用關系鏈73操作系統提供的程序接口(4)

用戶

操作系統(進程管理、存儲管理、文件管理、設備管理等)

標準庫函數(打開、關閉、讀、寫、創建、撤銷等)

標準系統程序(實用程序)(匯編、編譯、編輯、Shell等)用戶接口庫函數接口系統調用接口

硬件

(處理器、存儲器、磁盤、打印機、終端等)用戶態核心態UNIX/Linux系統程序、庫函數、系統調用分層關系74操作系統提供的操作接口操作接口又稱作業級接口,操作系統為用戶提供的操作控制計算機工作和提供服務手段的集合,通常有操作控制命令、圖形操作界面(命令)、以及批處理系統提供的作業控制語言(命令)等等。75系統調用的分類(1)進程和作業管理(2)文件操作(3)設備管理(4)主存管理(5)信息維護(6)進程通信76系統調用的實現要點編寫系統調用處理程序;設計一張系統調用入口地址表,每個入口地址都指向一個系統調用的處理程序,有的系統還包含系統調用自帶參數的個數;陷入處理機制需開辟現場保護區,以保存發生系統調用時的處理器現場。77系統調用的處理過程SystemCall用戶程序A0SUB0SUB1SUBiSUBnA1AiAn……系統調用處理子程序取系統功能號找入口地址表相應入口地址結束處理恢復現場A0A1…Ai…An保護CPU現場陷入指令系統調用陷入機構入口地址表78系統調用的參數傳遞一是由訪管指令或陷入指令自帶參數,直接參數間接參數二是通過CPU的通用寄存器傳遞參數,或在主存的一個塊或表中存放參數,其首地址送入寄存器,實現參數傳遞。三是在主存中開辟專用堆棧區域傳遞參數。79系統調用與函數調用的區別調用形式和實現方式不同。函數調用轉向的地址固定,而系統調用按功能號進行;函數調用在用戶態執行,只能訪問用戶棧,系統調用在核心態執行,訪問核心棧。被調用代碼的位置不同。函數調用是靜態的,調用程序和被調用代碼處于同一程序內;系統調用是動態的,系統調用的代碼位于操作系統中。提供方式不同。函數由編程語言提供;系統調用由操作系統提供。801.3.3作業接口與操作命令操作接口又稱作業級接口,是操作系統為用戶操作控制計算機工作和提供服務的手段集合,通常可借助操作控制命令、圖形操作界面(命令)、以及作業控制語言(命令)等來實現1、作業控制方式聯機作業控制方式與作業控制語言脫機作業控制方式與操作控制命令

81聯機用戶接口—操作控制命令命令行方式批命令方式圖形化方式

82脫機用戶接口—作業控制語言批處理接口:作業控制語言JCL(JobControlLanguage)。用戶使用JCL語句,把運行意圖(需要對作業進行的控制和干予)寫在作業說明書上,將作業連同作業說明書一起提交給系統。批處理作業的調度執行過程,系統調用JCL語句處理程序或命令解釋程序。83IBM370

使用JCL

處理批作業的例子

//HAROLDJOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=B//COMPEXECPGM=IEYFORT//SYSPRINTDDSYSOUT=A//SYSINDD/*··<SOURCEPROGRAMCARDS>··/*//GOEXECPGM=FORTLINK//SYSPRINTDDSYSOUT=A//FTOTF001DDUNIT=SYSCP//GOSYSINDD/*··<DATACARDS>··/*//842.命令解釋程序接收用戶所輸入的命令,并解釋執行命令。命令的實現方式:命令的解釋程序包含命令的執行代碼,一旦收到命令后,便轉向相應的命令處理代碼執行;由專門的“實用程序”實現,在執行時把命令所對應的命令處理文件裝入主存。853.支撐程序(1)支撐程序又稱標準程序或實用程序(Utilities),雖非操作系統的核心,但卻必不可少,為用戶程序的開發、調試、執行、和維護解決帶有共性的問題或執行公共操作。操作系統以外部操作命令形式向用戶提供實用程序。它的功能和性能很大程度上反映了操作系統的功能和性能。86

支撐程序(2)支撐程序的分類:文件管理狀態信息程序設計語言支持程序的裝入和執行支持通信其它軟件工具

871.4操作系統結構和運行模型1.4.1操作系統的構件和結構1.4.2操作系統的運行模型1.4.3Windows2003客戶/服務器結構881.4.1操作系統構件和結構操作系統設計呈現出以下特征:復雜程度高,生成周期長,正確性難保證。操作系統結構設計有三層含義:研究操作系統整體結構,如功能如何分塊,相互如何交互,及考慮構造它的過程和方法;研究操作系統程序局部結構,包括數據結構和控制結構;操作系統運行時的組織,如系統是否組織成進程或線程?在系統空間還是在用戶空間運行?89操作系統的構件內核進程線程類程管程901.操作系統的內核(1)

1)什么是內核?

內核是一組程序模塊,作為可信軟件來提供支持進程并發執行的基本功能和基本操作,通常駐留在內核空間,運行于核心態,具有訪問硬件設備和所有主存空間的權限,是僅有的能夠執行特權指令的程序。2)內核分類:微內核和單內核(整體、分層)。3)Linux是單內核操作系統,Mach是微內核操作系統,Windows2003是C/S結構操作系統。91操作系統的內核(2)

Linux單內核結構

用戶態

系統庫(函數庫)應用程序

系統調用接口

模塊內核(進程管理、存儲管理、文件管理、設備管理、網絡管理)

設備驅動

計算機硬件核心態單內核92操作系統的內核(3)

微內核結構操作系統服務進程客戶進程1客戶進程2文件服務器進程服務器主存服務器……

微內核(消息傳遞)

計算機硬件

用戶進程用戶態核心態客戶通過微內核發送消息給文件服務器93操作系統的內核(4)微內核結構的實現思想(OS分成兩部分):一是運行在核心態的內核,提供系統的基本功能;二是運行在用戶態并以客戶-服務器方式運行的進程層。微內核結構的優點:對進程的請求提供一致性接口;具有較好的可擴充性和易改性;可移植性好;對分布式系統提供有力的支撐。94內核的基本功能資源抽象資源分配資源共享

95內核的基本屬性核是由中斷驅動的內核是不可搶占的內核部分程序在屏蔽中斷狀態下執行內核可以使用特權指令96

內核是操作系統對裸機的第一次改造,內核和裸機組成的虛擬機具有以下特性:虛擬機沒有中斷;虛擬機為每個進程提供了一臺虛擬處理器;虛擬機為進程或模塊提供了功能較強的指令系統。虛擬機具有的特性97機制與策略分離(1)

在策略與機制分離的操作系統中,解決應用問題均可分成兩部分:提供及實現確定的功能(機制),常常將機制作為系統的可信軟件來實現;如何使用這些功能(策略),可在不可信的環境中定義策略。

98機制與策略分離(2)

例子:調度機制與調度策略的分離機制與策略分離的原則:

(1)機制由OS實現,策略留給用戶完成;

(2)機制放在底層,策略放在高層;

(3)機制集中在少數模塊,策略擬散布在多處。

992.進程進程使得操作系統的結構變得清晰:一個進程到另一個進程的控制轉移由進程調度機制來統一管理;進程之間的交互由通信及同步機制完成,提高了系統的安全性和可靠性。3.線程線程可看做一種構件,是組成進程構件的更小的構件單位。進程是資源分配的基本單位;線程是系統調度的基本單位。1004.管程管程是管理共享資源的一種同步機制,對管程的調用表示對共享資源的請求與釋放。管程可以被多個進程或管程嵌套調用,但是它們只能互斥的訪問管程。管程應包含條件變量,對進程進行掛起和釋放。5.類程類程用于管理私有資源,只能被進程及起源于同一進程的其它類程或管程嵌套調用鏈所調用。1011.4.2操作系統的運行模型操作系統本身是一組程序,也在處理器上運行,那么,操作系統程序是否組織成進程?它是如何控制的、怎樣執行的呢?它在什么模式下運行呢?從操作系統的運行方式來看,可分成:

1)非進程內核模型

2)OS功能(函數)在用戶進程內執行的模型

3)OS功能(函數)作為進程執行的模型102操作系統的運行模型(1)

1)非進程內核模型應用進程應用進程內核應用進程…核心態用戶態103操作系統運行模型(2)

2)OS功能在用戶進程內執行的模型核心態用戶態內核函數內核函數內核函數應用進程應用進程…進程切換函數應用進程104

操作系統的運行模型(3)

3)OS功能作為獨立進程執行的模型微內核(進程切換函數)應用進程…OS函數…用戶態核心態應用進程OS函數應用進程OS函數1051.4.3Windows2000/XP客戶/服務器結構

結構簡框

系統進程服務進程應用程序環境子系統

子系統動態鏈接庫用戶態核心態

執行體核心設備驅動程序硬件抽象層圖形引擎106Windows2000/XP客戶/服務器結構(2)系統線程NTDLL.DLLService.exeRPCSpooler事件日志服務進程任務管理器IE瀏覽器用戶程序子系統DLL應用程序POSIXOS2WIN32環境子系統服務管理器安全驗證Win登錄會話管理器系統進程核心態用戶態Win32UserGDI圖形驅動器硬件抽象層(HAL)設備驅動程序內核對象管理器核心態可調用接口(執行程序API)系統服務調度進程I/O管理器文件緩存管理

進程線程管理安全訪問監視虛存管理局部過程調用注冊表配置管理器電源管理器即插即用管理硬件接口(總線、I/O、時鐘、計時器、中斷、DMA、CACHE控制器)1071.5流行操作系統簡介1.5.1Windows操作系統1.5.2UNIX操作系統家族1.5.3自由軟件和Linux操作系統1.5.4IBM系列操作系統1.5.5其他流行操作系統1081.5.1Windows操作系統(1)

Windows操作系統概況(2)WindowsNT的技術特點(3)Windows2000/XP(4)WindowsServer2003WindowsXP64-BitEdition(5)

WindowsCE1091.5.2UNIX操作系統家族(1)1雛形階段2成型階段3商業化階段

4標準化階段110U

N

I

X

操作系統

家族(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操作系統(3)UNIX的體系結構包含四個基本成分:內核(Kernel)Shell文件系統公用程序112UNIX操作系統(4)UNIX的主要特點(8個P49)UNIX的發展趨勢(標準)計算機發展史上,沒有哪個程序設計語言像C那樣得到如此廣泛的流行,也沒有哪個操作系統像UNIX那樣獲得普遍的青睞和應用,對整個軟件技術和軟件產業都產生了深遠的影響。1983年Ritcchie和Thompson共同獲得了ACM圖靈獎和軟件系統獎。113UNIX類操作系統Solaris操作系統FreeBSD操作系統1141.5.3自由軟件和Linux操作系統商業軟件共享軟件自由軟件自由軟件是指遵循通用公共許可證GPL(GeneralpublicLicense)規則,保證您有使用上的自由、獲得源程序的自由,可以自己修改的自由,可以復制和推廣的自由,也可以有收費的自由的一種軟件GNU的含義是GNUisnotUNIX的意思,由自由軟件的倡導者Richardstallman先生指導并啟動的一個組織成立了自由軟件基金會GNU寫出一套和UNIX兼容,但又是自由軟件的UNIX系統,GNU完成了大部分外圍工作,包括外國命令gcc/gcc++,shell等,最終Linux內核為GNU工程劃上了一個完美句號115Linux操作系統Linux是由芬蘭藉科學家LinusTorvalds于1991年編寫完成的操作系統內核。許多人對Linux進行改進、擴充、完善,做出了關鍵性貢獻。Linux由最初一個人寫的原型變成在Internet上由無數志同道合的程序高手們參與的一場運動。Linux操作系統的技術特點。1161.5.4IBM系列操作系統RS/6000系列UNIX服務器及SP結點群集計算機,運行AIX操作系統S/390企業級服務器,運行OS/390、VM和DOS/VSE操作系統Definity通用服務器,運行基于Intel的WindowsNT、Netware等操作系統AS/400服務器首次采用64位RISC技術,運行OS400操作系統。PC微型機,運行Windows9x、OS2、MS-DOS等操作系統。1171.5.5其它流行的操作系統1.Mach操作系統Mach的發展歷史Mach的設計目標為建造其它操作系統提供基礎;支持大型稀疏地址空間;允許對網絡資源的透明訪問;從系統和應用兩個方面開發并行性;可移植。Mach采用的主要技術微內核機構面向對象程序設計方法多處理器調度分頁存儲管理1182.Macintosh操作系統美國Apple公司推出Macintosh機操作系統。MAC是全圖形化界面和操作方式的鼻祖。由于它擁有全新的窗口系統、強有力的多媒體開發工具和操作簡便的網絡結構而風光一時MAC操作系統的主要特點有

1)采用面向對象技術;

2)全圖形化界面;

3)虛擬存儲管理技術;

4)應用程序間的相互通信;

5)強有力的多媒體功能;

6)簡便的分布式網絡支持;

7)豐富的應用軟件。1193.Netware操作系統Netware是Novell公司開發的網絡操作系統。具有高性能文件系統、支持DOS、OS/2、MAC、及UNIX文件格式;具有三級容錯,可靠性高;安全保密性好;提供開放的開發環境。Netwarelite是廉價點對點NOS,支持25個用戶,每個結點可作為對等機。Netware2.2是為小單位和工作組開發的NOS,滿足工作組用戶的各種需要Netware3.1x是32位NOS,更能發揮高檔PC的計算能力,支持用戶可達256個,能支持DOS,Windows、Macintosh、OS/2和UNIX工作站訪問Netware服務器。Netware4.xx是其NOS新版,增強了網絡目錄服務,支持用戶數可達1000個。1204.MINIX操作系統荷蘭Vrije大學計算機系教授AndrewS.Tanenbavm開發一個與UNIX兼容,然而內核全新的操作系統。Minix沒有借用AT&T一行代碼,學生可以通過它來剖析一個操作系統,研究其內部如何運作,其名稱源于‘小UNIX’,因為它非常簡潔,短小,故稱MinixMinix用C語言編寫,著眼于可讀性好,代碼中加入數千行注釋。可運行在IBMPC,Macintosh,Sparc,Amiga,Atari等許多平臺上Minix恪守“SmallisBeautiful”的原則,早期Minix沒有硬盤就能運行。目前常用的是Minix2.0,具有多任務處理能力,可支持三個用戶同時工作,支持TCP/IP,支持4GB主存。提供5個編輯器、200個實用程序121作業P58應用題1P59應用題7122第2章處理器管理主要內容中央處理器中斷技術進程及其實現線程及其實現Linux進程與線程Windows2003進程與線程處理器調度處理器調度算法Linux調度算法Windows2003調度算法1232.1中央處理器2.1.1處理器2.1.2程序狀態字寄存器1242.1.1處理器

1.單處理器和多處理器系統單處理器系統順序處理流水線技術發射體系結構125多處理器系統共享存儲(緊密耦合)多處理器系統共享所有處理器且平等的訪問同一個物理主存主從式對稱式分布存儲(松散耦合)多處理器系統每個處理器均擁有自己的主存,處理器之間通過網絡相連,在需要時通過網絡交換數據。集群系統1262.寄存器(1)計算機系統的處理器包括一組寄存器,其個數根據機型的不同而不同,它們構成了一級存儲,比主存容量小,但訪問速度快。這組寄存器所存儲的信息與程序的執行有很大關系,構成了處理器現場。127寄存器(2)通用寄存器--EAX,EBX,ECX和EDX指針及變址寄存器--ESP,EBP,ESI及EDI段選擇符寄存器--CS、DS、SS、ES、FS、GS指令指針寄存器和標志寄存器--EIP、EFLAGS控制寄存器--CR0,CR1,CR2和CR3外部設備使用的寄存器—數據寄存器或緩沖區,狀態寄存器,控制寄存器1283.特權指令與非特權指令(1)機器指令的集合稱指令系統

(1)數據處理類指令;

(2)轉移類指令;

(3)數據傳送類指令;

(4)移位與字符串指令;

(5)I/O類指令。129特權指令與非特權指令(2)從資源管理和控制程序執行的角度出發,必須把指令系統中的指令分作兩部分:特權指令和非特權指令。特權指令是指只能提供給操作系統的核心程序使用的指令,如啟動I/O設備、設置時鐘、控制中斷屏蔽位、清主存、建立存儲鍵,加載PSW等。1304.處理器狀態處理器怎么知道當前是操作系統還是一般用戶程序在運行呢?處理器狀態標志管理狀態(特權狀態、系統模式、特態或管態)用戶狀態(目標狀態、用戶模式、常態或目態)。處理器處于管理狀態時,程序可以執行全部指令,使用所有資源,具有改變處理器狀態的能力;處理器處于用戶狀態時,程序只能執行非特權指令Intelx86的處理器狀態有四種,支持4個保護級別,0級權限最高,3級權限最低131處理器狀態的轉換用戶態——核心態程序請求操作系統服務,執行系統調用;在程序運行時,產生中斷或異常事件,運行程序被中斷,轉向中斷處理程序或異常處理程序工作。核心態——用戶態特權指令(加載程序狀態字)1322.1.2程序狀態字寄存器(1)計算機如何知道當前處于何種工作狀態?這時能否執行特權指令?通常操作系統都引入程序狀態字PSW(ProgramStatusWord)來區別不同的處理器工作狀態。PSW用來控制指令執行順序并保留和指示與程序有關的系統狀態,主要作用是實現程序狀態的保護和恢復。每個程序都有一個與其執行相關的PSW,每個處理器都設置一個PSW寄存器。程序占有處理器執行,它的PSW將占有PSW寄存器。133程序狀態字寄存器(2)PSW寄存器包括以下內容:程序基本狀態:

(1)程序計數器;

(2)條件碼;

(3)處理器狀態位。中斷碼:保存程序執行時當前發生的中斷事件。中斷屏蔽位:指明程序執行中發生中斷事件時,是否響應出現的中斷事件。134IBM360/370系列計算機-程序狀態字的基本格式

XXXXXXXXXXXXXXXX8位系統屏蔽4位CMWP字段4位程序屏蔽4位保護鍵16位中斷碼字段指令長和條件碼24位指令地址135Intelx86程序狀態字Intelx86中,PSW由標志寄存器EFLAGS和指令指針寄存器EIP組成,均為32位。EFLAGS的低16位稱FLAGS,標志可劃分為三組:狀態標志控制標志系統標志1362.2中斷技術2.2.1中斷概念2.2.2中斷源分類2.2.3中斷和異常的響應及服務2.2.4中斷事件處理2.2.5中斷優先級和多重中斷2.2.6Linux中斷處理2.2.7Windows2003中斷處理1372.2.1中斷的概念請求系統服務實現并行工作處理突發事件滿足實時要求

都需要打斷處理器正常的工作,為此,提出了中斷概念。138中斷的定義中斷是指程序執行過程中,遇到急需處理的事件時,暫時中止CPU上現行程序的運行,轉去執行相應的事件處理程序,待處理完成后再返回原程序被中斷處或調度其他程序執行的過程。1392.2.2中斷源分類1.按中斷事件的性質和激活的手段分類:

強迫性中斷事件:強迫性中斷事件不是正在運行的程序所期待的,而是由于某種事故或外部請求信息所引起的,分為:機器故障中斷事件程序性中斷事件外部中斷事件輸入輸出中斷事件自愿性中斷事件:自愿性中斷事件是正在運行的程序所期待的事件。

140按中斷事件的性質和激活方式劃分圖示運行程序中斷處理程序中斷裝置中斷處理程序中斷裝置機器故障中斷事件程序性中斷事件外部中斷事件輸入輸出中斷事件運行程序訪管指令1412.按事件來源和實現手段分類硬中斷軟中斷外中斷(中斷、異步中斷)內中斷(異常、同步中斷)信號軟件中斷按事件來源和實現手段分類142硬中斷外中斷(中斷或異步中斷)--是指來自處理器之外的中斷信號,包括時鐘中斷、鍵盤中斷、它機中斷和設備中斷等;外中斷又分可屏蔽中斷和不可屏蔽中斷,每個不同中斷具有不同的中斷優先級,表示事件的緊急程度,在處理高一級中斷時,往往會屏蔽部分或全部低級中斷。內中斷(異常或同步中斷)--是指來自處理器內部,通常由于程序執行中,發現與當前指令關聯的、不正常的、或是錯誤的事件。143中斷和異常的區別中斷是由與現行指令無關的中斷信號觸發的(異步的),且中斷的發生與CPU處在用戶模式或內核模式無關,在兩條機器指令之間才可響應中斷,一般來說,中斷處理程序提供的服務不是為當前進程所需的;異常是由處理器正在執行現行指令而引起的,一條指令執行期間允許響應異常,異常處理程序提供的服務是為當前進程所用的。異常包括很多方面,有出錯(fault),也有陷入(trap)等。

144Linux異常Linux為例,異常按錯誤報告方式分四種:故障陷阱終止編程異常

故障發生時保存的返回指令地址指向觸發異常的當前那條指令,故障處理后會重新執行。編程異常和陷阱是由于執行訪管指令引起的同步操作,異常返回時,回到觸發異常的下一條指令。

145硬中斷與軟中斷中斷和異常要通過硬件設施來產生中斷請求,是硬中斷。軟中斷是利用硬中斷的概念,用軟件方法對中斷機制進行模擬,實現宏觀上的異步執行效果。軟中斷分兩種信號軟件中斷146中斷的通常用法

“中斷”(硬中斷)用于外部設備對CPU的中斷(中斷的是正在運行的任何程序),轉向中斷處理程序上半部分執行;“異常”(硬中斷)因指令執行不正常而中斷CPU(中斷的是正在執行這條指令的程序),轉向異常處理程序;“軟件中斷”(軟中斷)用于硬中斷服務程序對內核的中斷,在上半部分中發出軟件中斷(即標記下半部分),使得中斷下半部分在適當時刻獲得處理;“信號”(軟中斷)用于內核或進程對某個進程的中斷,通知進程某個特定事件發生或迫使進程執行信號處理程序。147中斷機制與信號機制進行類比

相同點概念上是一致的兩者都是“異步”的實現上均采用“向量表”均具有“屏蔽”設施。不同點中斷機制由硬件與軟件相結合來實現,而信號機制由軟件實現;中斷向量表和中斷處理程序(由系統提供)均在系統空間,而信號向量表雖在系統空間,但信號處理程序由應用程序提供,并在用戶空間執行。148硬中斷與軟中斷BH進行類比

(1)數組bh_base[]相當于硬件中斷機制中的數組irq_desc[];(2)bh_active在概念上相當于硬件的“中斷請求寄存器”,而bh_mask相當于硬件中的“中斷屏蔽寄存器”;(3)執行一個BH函數時,就通過mark_bh()將bh_active中的某位設成1,相當于中斷源發出(軟件)中斷請求,所設置的具體標志位則類似于“中斷向量”;(4)如果bh_mask中的相應位是l,就會在每次執行完do_IRQ()中的中斷服務程序后,及每次系統調用結束后,在函數do_bottom_half()中執行相應BH函數,而do_bottom_half(),則類似于do_IRQ()。149硬中斷或軟中斷處理延時問題

CPU接到和響應硬中斷或異常后會立即調用中斷或異常處理程序處理;對于接收到的信號或軟件中斷,此時由于進程未必占有處理器運行或內核正在執行敏感性操作,通常會有一定時間的延遲,在適當的時刻內核或相關進程才能加以處理。信號和軟件中斷雖然都由軟件產生,并都由軟件處理,但它們的中斷來源、使用場合、實現手段并不相同。150中斷/異常響應要做四件事發現中斷源保護現場轉向處理中斷/異常事件的處理程序恢復現場2.2.3中斷和異常的響應及服務151IBM中大型機中斷響應過程

外中斷舊PSW訪管中斷舊PSW程序中斷舊PSW機器故障中斷舊PSWI/O中斷舊PSW外中斷新PSW訪管中斷新PSW程序中斷新PSW機器故障中斷新PSWI/O中斷新PSW18202830385860687078現行PSW②中斷時保存現行PSW③中斷時裝入現行PSW④中斷后恢復PSW主存專用雙字單元

(16進制)①裝配中斷碼外中斷舊PSW訪管中斷舊PSW程序中斷舊PSW機器故障中斷舊PSWI/O中斷舊PSW外中斷新PSW訪管中斷新PSW程序中斷新PSW機器故障中斷新PSWI/O中斷新PSW18202830385860687078現行PSW②中斷時保存現行PSW③中斷時裝入現行PSW④中斷后恢復PSW主存專用雙字單元

(16進制)①裝配中斷碼152IBMPC機中斷的響應過程

IPCSPSW現行PSW

寄存器新IP新CS老IP老CS老PSW新棧頂主存新PSW1532.2.4中斷事件處理1中斷和異常的一般處理過程2硬件故障中斷3程序性中斷4I/O中斷5訪管中斷6時鐘中斷

1541.中斷和異常的一般處理過程執行中斷處理程序關中斷恢復被中斷程序的現場開中斷返回斷點,繼續執行設備發中斷信號保存中斷現場開中斷根據中斷向量表

設置新運行現場關中斷CPU向設備發確認中斷信號1552.硬件故障中斷由硬件故障導致,排除需人工干預。中斷處理程序保護現場停止設備工作停止處理器運行將故障信息向操作員報告對故障所造成的破壞進行估計和恢復1563.程序性中斷應用程序的錯誤種類語法錯誤由編譯程序發現并報錯邏輯錯誤由測試程序發現并報錯程序運行過程中所產生的異常定點溢出、除數為0等一般借助信號機制,OS將捕獲的這類中斷事件原封不動的轉交給應用程序自行處理。1574.I/O中斷處理原則I/O操作正常結束查看是否有其它進程等待設備或通道,若有則釋放之。I/O操作發生故障先向設備發送命令索取狀態字,然后分析產生故障的確切原因,再采用復執方式或請求人工干預。I/O操作發生異常分析情況,采取相應的措施,向操作員報告。設備報到或設備結束表示有設備接入可供使用或設備斷開暫停使用,OS應修改系統數據中相應設備的狀態。1585.訪管中斷由程序執行訪管指令而引起,表示當前運行程序對操作系統功能的調用。訪管指令操作碼表示此指令是訪管指令訪管參數表示具體的訪管要求1596.時鐘中斷(1)時鐘是操作系統進行調度工作的重要工具,如讓分時進程作時間片輪轉、讓實時進程定時發出或接收控制信號、系統定時喚醒或阻塞一個進程、對用戶進程進行記賬時鐘可分成絕對時鐘和間隔時鐘兩種160時鐘中斷(2)1)絕對時鐘服務提供以下功能的函數:

①update_clock()更新當前時間;

②get_time()返回當前時鐘值;

③set_clock()把當前時間設置為新值。161時鐘中斷(3)2)間隔定時器進程可被延遲、阻塞,直到被間隔定時器中斷信號喚醒,應提供以下函數:delay(tdel)把調用進程阻塞由參數tdel指定的時間長度,進程保持阻塞直到本地時間到達進程阻塞時的當前時間+tdel的時刻。set_timer(tdel)硬件間隔定時器被設置為起始的遞減值tdel,當該值達到0時,產生間隔時鐘中斷,調用timeout()函數進行處理。

162時鐘中斷(4)3)邏輯定時器需要提供函數:tn=creat_ltime():創建邏輯定時器,tn中存放返回標識符。destroy_ltime(tn):撤銷tn標識的邏輯定時器。set_ltime(tn,tv):把tv值裝到邏輯定時器tn中,當該值為0時,產生時間到中斷。163時鐘中斷(5)(1)使用帶有絕對喚醒定時器的優先級隊列硬件時鐘絕對時鐘間隔時鐘10312定時器隊列P1115P2135P3140P41500定時器隊列P1115P2135P5138P3140P41500164時鐘中斷(6)(2)使用帶有時間差值的優先級隊列硬件時鐘間隔時鐘12定時器隊列P112P220P35P4100定時器隊列P112P220P53P32P4100硬件時鐘間隔時鐘12定時器隊列P112P220P35P4100定時器隊列P112P220P53P32P4100硬件時鐘間隔時鐘12定時器隊列P112P220P35P4100定時器隊列P112P220P53P32P4100硬件時鐘間隔時鐘12定時器隊列P112P220P35P4100定時器隊列P112P220P53P32P41001652.2.5中斷優先級和多重中斷1中斷優先級2中斷屏蔽3多重中斷事件的處理1661.中斷優先級計算機執行的每一瞬間,可能有幾個中斷事件同時發生,中斷裝置如何來響應同時發生的中斷呢?以不發生中斷丟失為前提,把緊迫程度相當的中斷源歸在同一級,緊迫程度差別大的中斷源歸在不同級,級別高的有優先獲得響應的權力,中斷裝置預定的這個響應順序稱為中斷優先級。1672.中斷屏蔽主機可允許或禁止某類中斷的響應,如允許或禁止所有的I/O中斷、外部中斷、及某些程序性中斷。有些中斷是不能被禁止的,例如,計算機中的自愿性訪管中斷就不能被禁止。1683.多重中斷事件的處理中斷正在進行處理期間,CPU又響應新的中斷事件,于是暫時停止正在運行的中斷處理程序,轉去執行新的中斷處理程序,就叫多重中斷(又稱中斷嵌套)。處理方法:

(1)串行處理

(2)嵌套處理

(3)即時處理

1692.2.6Linux中斷處理1.Linux內核處理流程中斷

自陷慢中斷快中斷

進程正在運行

用戶態

核心態

上半部分處理

返回原進程運行

排隊下半部分

快中斷處理

系統調用處理從系統調用返回ret_from_sys_call

調用schedule()

調度新進程運行運行

用戶態

調度下半部分do_bottom_half()/do_softirq()

處理積累的信號do_signal()restore_all中斷170快中斷與慢中斷Linux中,區分快中斷和慢中斷兩類中斷事件。處理慢中斷前需保存所有寄存器的內容,而快中斷處理僅要保存被常規C函數修改的寄存器;慢中斷處理時,不屏蔽其他中斷信號,而快中斷處理時會屏蔽所有其他中斷;慢中斷處理完畢后,通常不立即返回被中斷的進程,而是進入調度程序重新調度,調度結果未必是被中斷的進程運行(是搶先式調度)。而快中斷處理完畢后,通常恢復現場返回被中斷的進程繼續執行(是非搶先式調度)。1712.下半部分處理概述中斷處理程序的特點以異步方式運行;在屏蔽中斷狀態下運行;要對硬件進行操作,對于時限有很高的要求;在中斷上下文中運行,故不能被阻塞。什么是下半部分處理?一種任務延遲處理機制。TophalfBottomhalf172Linux各種下半部分機制

bottomhalftaskqueuetaskletworkqueuesoftirq1733.下半部分(bottomhalf)實現原理

BH數組、函數入口指針bh_base、函數安裝標志bh_mask、函數處理標志bh_activebh-mask310031··bh-active310bh-base下半部分處理函數174BH的缺點下半部分處理函數的數量限制為32個,且每個BH上只能掛接一個函數。-數目不夠用。每個BH在全局范圍內同步,即使屬于不同的處理器,也不允許任何兩個BH同時執行。-使用方便但不靈活,安全簡單但存在性能瓶頸。開發V2.5內核時,BH被拋棄。1754.任務隊列(taskqueue)實現原理內核定義一組隊列,每個隊列包含一個由等待調用的函數組成的鏈表,不同隊列中的函數在某個時刻會被觸發執行。實現對各種任務的延遲執行。預定任務隊列:定時器隊列(TQ_TIMER)即時隊列(TQ_IMMEDIATE)進程調度隊列(TQ_SCHEDULE)磁盤隊列(TQ_DISK)定時器Tophalf與bottomhalf協調工作的例子(自學)任務隊列的缺點靈活性較差,無法勝任對性能要求較高的子系統在V2.5中已刪掉1765.小任務(tasklet)tasklet能更好支持SMP,它基于軟中斷來實現,但比軟中斷接口簡單,鎖保護要求低;softirq保留給執行頻率及時間要求特高的下半部分使用(如網絡和SCSI),多數場合下可使用tasklet。使用tasklet的步驟:聲明;編寫處理程序;調度。BH全局串行處理,不適應SMP環境,而不同tasklet可同時運行于不同CPU上,當然,系統保證相同tasklet不會同時在不同CPU上運行,在這種情形下,tasklet就不需要是可重入的。在新版Linux中,tasklet是建議的異步任務延遲執行機制。1776.工作隊列workqueueLinux2.5內核引入工作隊列,它把一個任務延遲,并交給內核線程去完成,且該任務總是在進程上下文中執行,通過工作隊列執行的代碼能占盡進程上下文的優勢,最重要的是工作隊列允許重新調度及阻塞。如果延遲執行的任務需要阻塞,需要獲取信號量或需要獲得大量主存時,那么,可選擇工作隊列,否則可使用tasklet或softirq。1787.軟中斷softirqLinux沿用最早BH思想,已實現了龐大和復雜的軟中斷子系統-softirq,它是一種軟中斷機制,又是一個框架,包括tasklet,及為網絡操作專門設計的軟中斷。最多可注冊32個軟中斷,目前版本預定義六個元素,

enum{HI_SOFTIRQ,//高優先級taskletTIMER_SOFTIRQ,//定時器下半部分

NET_TX_SOFTIRQ,//發送網絡數據包

NET_RX_SOFTIRQ,//接收網絡數據包

SCSI_SOFTIRQ,//SCSI下半部分

TASKLET_SOFTIRQ,//公共tasklet};179軟中斷使用步驟:聲明一個softirq;注冊softirq處理函數;觸發軟中斷softirq;處理softirq。軟中斷執行時機:從系統調用中返回時;從異常中返回時;在調度程序中以及處理完硬件中斷之后。V2.6中軟中斷執行時機:在處理完硬件中斷之后;在ksoftirqd內核線程中;在顯式檢查和執行待處理的軟中斷的代碼中。1802.2.7Windows2003中斷處理Window2003中斷類型中斷有I/O設備、處理器時鐘或定時器等,可以啟用或禁用。中斷是異步事件,可能隨時發生,與處理器正在執行的內容無關。異常是同步事件,它是某一個特定指令執行的結果。異常的例子是主存訪問錯誤、調試指令及被零除。內核也將系統服務調用視作異常。硬件和軟件都可以產生中斷和異常,如總線出錯異常由硬件造成,而被零除異常是由軟件引起的;同樣,I/O設備可產生中斷,而內核自身也可以發出中斷。

1811.Windows2000/XP陷阱調度中斷服務例程中斷服務例程中斷服務例程異常調度器虛存管理的頁面管理器中斷調度器系統服務調度器異常調度器陷阱處理程序異常幀虛擬地址異常硬件異常軟件異常系統服務調用中斷182

2.Windows2000/XP中斷請求級

系統關閉高31掉電30處理器內的中斷29時鐘28配置文件設備n………設備1Dispatch/DPC2APC1低0硬件中斷軟件中斷正常的線程執行183Windows2000/XP中斷屏蔽

高掉電處理器內的中斷時鐘配置文件設備n………設備1在處理器A上被屏蔽的中斷Dispatch/DPCAPC低IRQL=時鐘處理器A在處理器B上被屏蔽的中斷IRQL=Dispatch/DPC處理器B1843.Windows2000/XP硬件中斷處理

低(無)………高掉電處理器間的中斷時鐘設備n………設備1②中斷調度程序接收到中斷源的IRQL,用作查詢IDT的索引Dispatch/DPCAPC①有中斷產生線程調度程序/DPC處理程序系統關閉例程系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論