版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第1章操作系統(tǒng)概論1.1操作系統(tǒng)的概念1.2操作系統(tǒng)的形成和發(fā)展1.3操作系統(tǒng)的結構1.4常用操作系統(tǒng)簡介1.1操作系統(tǒng)的概念為了將部分關鍵的操作封裝,同時也達到簡化程序員工作的目的,計算機體系中出現(xiàn)了操作系統(tǒng)(OperatingSystem,OS)這個軟件層次。操作系統(tǒng)能在管理并正確使用一個或多個處理器、主存、外存、網(wǎng)絡接口以及多種不同的輸入/輸出設備的同時,為程序員提供一個通用的、相對簡單的、能夠驅動硬件工作的軟件接口。1.1.1操作系統(tǒng)的定義操作系統(tǒng)是硬件之上的第一層軟件,在操作系統(tǒng)之上的則是各種應用程序操作系統(tǒng)的層次結構1.1.1操作系統(tǒng)的定義操作系統(tǒng)的層次結構硬件層從底向上可分為物理設備、由各種寄存器和數(shù)據(jù)通道組成的微體系層以及主要由指令集組成的機器語言層,提供的是基本的計算資源。應用程序層軟件則通常是基于特定操作系統(tǒng)的、滿足特定功能的直接面向用戶的軟件,這些軟件能夠根據(jù)用戶的具體需求申請?zhí)囟ㄙY源,并按照應用程序規(guī)定的方法來使用這些資源。操作系統(tǒng)處于這兩個層次之間,用來協(xié)調(diào)與控制應用程序對硬件的使用。1.1.1操作系統(tǒng)的定義每個人看待操作系統(tǒng)的角度不同,使用操作系統(tǒng)的目的不同,看到的操作系統(tǒng)也就表現(xiàn)出不同的特征:資源管理角度:操作系統(tǒng)可以被視為資源管理與分配器用戶觀點:操作系統(tǒng)是用戶與計算機硬件系統(tǒng)之間的接口機器擴充角度:操作系統(tǒng)是一個專門用來隱藏硬件的實際工作細節(jié),并提供一個可以讀寫的、簡潔的命名文件視圖的軟件層次1.1.1操作系統(tǒng)的定義定義:操作系統(tǒng)就是一組管理與控制計算機軟硬件資源并對各項任務進行合理化調(diào)度,且附加了各種便于用戶操作的工具的軟件層次。1.1.2操作系統(tǒng)的特征現(xiàn)代操作系統(tǒng)都具有并發(fā)、共享、虛擬和異步特性,其中并發(fā)性是操作系統(tǒng)最重要的特征,其它三個特性均基于并發(fā)性而存在。1.1.2操作系統(tǒng)的特征1.并發(fā)性區(qū)分兩個概念:并發(fā)和并行。若在一個時間段內(nèi)發(fā)生了一個以上的事件,則稱這幾個事件具有并發(fā)性而并行性指的是多個事件在同一時刻點發(fā)生在單處理機系統(tǒng)中,每個特定時刻只能有一個程序在CPU中運行。但一個較長的時間段可以被分為多個小的時間碎片,這些碎片可以按照一定的原則發(fā)放給多個不同的程序,使得在這個時間段內(nèi)有多個程序得到一定程度的執(zhí)行。這些程序是具有并發(fā)性,不具有并行性的。1.1.2操作系統(tǒng)的特征2.共享性操作系統(tǒng)中的共享,指的是多個并發(fā)執(zhí)行的程序按照一定的規(guī)則共同使用操作系統(tǒng)所管理的軟硬件資源。操作系統(tǒng)所管理的軟硬件資源按照使用方式可以分為同時訪問方式和互斥訪問方式同時訪問方式指的是在一段時間內(nèi)允許多個程序并發(fā)訪問?;コ庠L問方式指的是在一段時間內(nèi)只允許一個程序訪問的資源,這類資源被稱為臨界資源。1.1.2操作系統(tǒng)的特征3.虛擬性虛擬性是將計算機體系結構中的各種物理設備映射為多個邏輯設備。這種映射通常是利用分時共享的方式實現(xiàn)的,被映射的物理設備有多種。工作模式不同的各個設備所使用的映射方法不同。虛擬存儲器技術虛擬處理器技術虛擬設備技術虛擬特性的實現(xiàn)主要依靠分時共享和多道程序設計技術,在它們的幫助下,操作系統(tǒng)可以將一個設備映射為多個,將一個設備的能力均分到不同的邏輯設備上,以便多用戶共享資源。虛擬方法不會造成多個用戶長期等待其他用戶操作完成,同時能夠極大地提高資源利用率。1.1.2操作系統(tǒng)的特征4.異步性異步性指的是操作系統(tǒng)中的各個程序的推進次序無法預知。異步性的產(chǎn)生是由現(xiàn)代操作系統(tǒng)的并發(fā)性引起的。在并發(fā)執(zhí)行的多個進程間,何時能夠獲得所需資源,在什么時刻等待哪些進程釋放資源,以及當前占有資源的進程何時釋放資源等因素都是不確定的,因此用戶是無法預知各個進程的執(zhí)行時間。1.1.3操作系統(tǒng)的功能現(xiàn)代操作系統(tǒng)的主要任務就是維護一個優(yōu)良的運行環(huán)境,以便多道程序能夠有序地、高效地獲得執(zhí)行,而在運行的同時,還要盡可能地提高資源利用率和系統(tǒng)響應速度,并保證用戶操作的方便性。操作系統(tǒng)的基本功能處理器管理存儲器管理設備管理文件管理。友好的人機接口1.1.3操作系統(tǒng)的功能1.處理器管理功能創(chuàng)建、撤銷進程按照一定的算法為進程分配所需資源還要管理和控制各用戶的多個進程間的協(xié)調(diào)運行確保各個進程可以正確的通信在多道程序OS中,這些管理功能最終通過對進程的控制和管理來實現(xiàn),而在具有線程機制的OS中,這些功能的實現(xiàn)還依賴于對線程的管理和控制。1.1.3操作系統(tǒng)的功能2.存儲器管理功能存儲器管理的主要任務就是將各種存儲器件統(tǒng)一管理,保證多道程序的良好運行環(huán)境,同時還要兼顧內(nèi)存利用率、邏輯上擴充內(nèi)存的需求以及用戶的感受,提供優(yōu)良的控制、存取功能,為用戶提供操控存儲器的手段。為實現(xiàn)上述要求,存儲器管理應具有以下功能:內(nèi)存分配內(nèi)存回收內(nèi)存保護地址映射虛擬內(nèi)存1.1.3操作系統(tǒng)的功能(1)內(nèi)存分配內(nèi)存分配指的是為每道程序分配合適的內(nèi)存空間,使其能在運行期間將運行所需數(shù)據(jù)放置在內(nèi)存指定區(qū)域,以保證CPU能夠順利地獲取指令并存取指定數(shù)據(jù)。分配內(nèi)存空間時應盡量提高內(nèi)存空間的利用率,減少不可用內(nèi)存空間。此外還應能響應正在運行的程序發(fā)出的動態(tài)空間申請,以便滿足新增指令和數(shù)據(jù)對新空間的需求。內(nèi)存分配通常采用的方式有動態(tài)和靜態(tài)兩種方式。靜態(tài)分配方式指的是程序在裝入內(nèi)存時需要估計所需空間,一旦進入內(nèi)存開始運行,就不能再申請新的空間,也不能將該程序所占空間“搬運”到其它位置。動態(tài)分配方式指的是盡管程序裝入內(nèi)存時申請了一定的空間,但在程序運行期間還可以為運行過程中所需的新的程序和數(shù)據(jù)再申請額外的空間,以滿足程序空間動態(tài)增長的需要。1.1.3操作系統(tǒng)的功能(2)內(nèi)存回收內(nèi)存回收指的是當程序運行完畢后,將各程序在裝入內(nèi)存時所分配的空間重新置為空閑分區(qū),并交由OS統(tǒng)一管理,以備其它程序申請使用。在內(nèi)存的分配和回收過程中,為了記錄當前內(nèi)存使用和分配情況,OS中通常還要配置內(nèi)存分配數(shù)據(jù)結構,以便為后期分配和回收提供依據(jù)。1.1.3操作系統(tǒng)的功能(3)內(nèi)存保護多道程序環(huán)境中,為了保證每個用戶的各個程序獨立運行,不會相互影響,需要提供內(nèi)存保護機制。該機制的主要任務就是確保每道程序都在自己的內(nèi)存空間運行,決不允許任何程序訪問或存取其它程序的非共享程序和數(shù)據(jù)。常見保護方法是利用上下界限寄存器。這兩個寄存器中存放的數(shù)值是當前進程的內(nèi)存空間的起始地址和終止地址,每當CPU要求訪問某個地址的程序或數(shù)據(jù)時,OS會先利用上下界限寄存器與之比較,若在這兩個界限內(nèi),則可以正確訪問,否則就拒絕此次的內(nèi)存訪問。通過這種方式,可以確保在進程運行期間不會誤訪問無權限空間。
1.1.3操作系統(tǒng)的功能(4)地址映射在多道程序環(huán)境中,每個程序的獨立空間分布于內(nèi)存的不同位置,但程序員在編碼時并不知道自己的程序進入內(nèi)存后會被放置在什么位置,因此也不可能在程序中直接使用內(nèi)存單元地址來操作所需的指令或數(shù)據(jù)。為了解決這個問題,當前的OS都提供了地址映射機制?;舅枷耄簩⒂脩襞c內(nèi)存分隔,即程序員編碼時直接以“0”作為程序中出現(xiàn)的其它任何地址的初始位置,該位置被稱為邏輯基址。該程序被編譯和連接過后,形成可裝入的可執(zhí)行文件。根據(jù)內(nèi)存的當前使用情況,OS會在可執(zhí)行文件真正裝入內(nèi)存時為其分配合適大小的空閑空間,此空間的初始位置稱為物理基址。當程序運行時,CPU需要查詢某位置的數(shù)據(jù)或指令時只需給出相對于邏輯基址的偏移量,OS會根據(jù)邏輯空間內(nèi)容的分布情況自動將該邏輯地址轉換為內(nèi)存中對應的物理地址。地址映射功能需要硬件機構的協(xié)助,以保證數(shù)據(jù)的快速定位與存取。1.1.3操作系統(tǒng)的功能(5)虛擬內(nèi)存虛擬內(nèi)存是利用特殊技術將磁盤的一部分空間實現(xiàn)較快的存取,從邏輯上擴充內(nèi)存容量,使用戶感覺到的內(nèi)存容量比物理內(nèi)存實際所提供的空間大。這種方式可以提高多道程序程度,提升系統(tǒng)吞吐量,獲得更好的系統(tǒng)性能。該機制的核心內(nèi)容是請求調(diào)入功能和置換功能。請求調(diào)入功能允許程序僅向內(nèi)存裝入保證啟動的必需數(shù)據(jù)和指令,當程序在運行過程中若需要新的數(shù)據(jù)和程序時,先中斷自身運行,并向OS提出調(diào)入請求,由其從磁盤將所需數(shù)據(jù)和指令調(diào)入內(nèi)存,然后繼續(xù)從被中斷的地方執(zhí)行。置換功能指的是在OS將所需新數(shù)據(jù)或指令調(diào)入內(nèi)存時,若發(fā)現(xiàn)內(nèi)存空間不足,需要從現(xiàn)處于內(nèi)存中的數(shù)據(jù)或程序中選擇部分暫時不用的調(diào)出到磁盤上,騰出的空間則用來調(diào)入當前的急需數(shù)據(jù)。1.1.3操作系統(tǒng)的功能3.設備管理功能
設備管理的主要作用是使用統(tǒng)一的方式控制、管理和訪問種類繁多的外圍設備。根據(jù)設備管理模塊的功能要求,可以將其功能分為:設備分配緩沖管理設備處理虛擬設備1.1.3操作系統(tǒng)的功能(1)設備分配根據(jù)用戶的I/O請求和系統(tǒng)的設備分配策略,從系統(tǒng)當前空閑資源中選擇所需類型設備,并將其使用權限交付給用戶。若I/O子系統(tǒng)中還包括通道和設備控制器,則設備分配還要負責選擇空閑通道和控制器并交付用戶使用。1.1.3操作系統(tǒng)的功能(2)緩沖管理合理組織I/O設備與CUP間的緩沖區(qū),并提供獲得和釋放緩沖區(qū)的有效手段。OS中常見的緩沖區(qū)機制有單緩沖機制、雙緩沖機制、緩沖池機制等。1.1.3操作系統(tǒng)的功能(3)設備處理設備處理程序即設備驅動程序,是CPU和I/O設備之間的通信程序。工作過程為:當設備驅動程序接收到上層軟件發(fā)送來的I/O請求時,要先檢查其合法性,然后查看設備是否空閑、設備的工作方式等信息,接著按照要求的參數(shù)格式向設備控制器發(fā)送具體的I/O命令,指揮控制器啟動設備按照順序完成指定動作。為了保證通信,設備驅動程序還應能接收從控制器發(fā)來的中斷請求,分析該中斷請求的類型,接著啟動處理該中斷類型的相應中斷處理程序,由其完成最終的處理過程。若是具有通道的OS,設備處理程序中還要配備根據(jù)用戶請求構造通道程序的功能。1.1.3操作系統(tǒng)的功能(4)虛擬設備通過SPOOLing虛擬技術實現(xiàn),該技術可將一臺物理設備虛擬為多臺邏輯設備,每個用戶使用一臺邏輯設備,即將獨占的物理I/O設備交由多個用戶共享使用。這種方法能夠大大提高I/O速度,改善設備利用率,對每個用戶而言也感覺自身具有一臺獨享的物理設備,改善了用戶請求的響應感受。1.1.3操作系統(tǒng)的功能4.文件管理程序運行所需的代碼和數(shù)據(jù)以文件形式存儲在外部介質(zhì)上,只有在程序運行需要時才通過文件管理機制調(diào)入內(nèi)存。該機制能有效保護文件安全,提高資源利用率,為用戶提供快速檢索和使用文件的手段,是OS不可或缺的組成部分。文件管理的主要功能:管理外存上的靜態(tài)文件,提供存取、共享和保護文件的手段,以方便用戶使用;禁止無權限用戶對他人資源的誤訪問或有權限用戶對資源的誤操作;管理外存空閑區(qū)域,根據(jù)文件的大小為其分配和回收空閑區(qū);為了滿足用戶對響應時間的要求,文件管理機制還應實現(xiàn)目錄管理,以便快速地定位文件。1.1.3操作系統(tǒng)的功能5.人機接口為了更大程度地減少操作人員的次要工作、方便用戶使用系統(tǒng)功能,操作系統(tǒng)應配備用戶界面,即所謂“用戶與操作系統(tǒng)的接口”。分類:圖形用戶接口命令接口程序接口1.1.4操作系統(tǒng)的設計目標為滿足用戶使用需求,現(xiàn)代操作系統(tǒng)在設計時均注重有效性、方便性、開放性、可擴展性等特性。有效性指的是OS應能有效地提高系統(tǒng)資源利用率和系統(tǒng)吞吐量。方便性指的是配置了OS后的計算機應該更容易使用。這兩個性有效和方便的特性是操作系統(tǒng)最重要的設計目標。開放性指的是OS應遵循世界標準規(guī)范??蓴U展性指的是要提供對系統(tǒng)軟硬件組成以及功能的擴充保證。1.1.5操作系統(tǒng)的性能指標操作系統(tǒng)性能的優(yōu)劣顯著地影響用戶工作的效率和成本,而衡量其性能優(yōu)劣的指標有系統(tǒng)吞吐量、資源利用率、響應速度等。系統(tǒng)吞吐量指的是在單位時間內(nèi)系統(tǒng)所能處理的數(shù)據(jù)量,該指標可以用來衡量系統(tǒng)的處理效率。資源利用率指的是各類資源在單位時間內(nèi)為用戶工作所服務的比例,它表明資源能力利用是否合理。響應速度指的是系統(tǒng)從接收到用戶請求到完成請求處理、反饋響應信息的完整過程的速度,它的優(yōu)劣大大影響到用戶感受。性能優(yōu)良的OS應具有更大的系統(tǒng)吞吐量、更高的資源利用率和更快的響應速度1.2操作系統(tǒng)的形成與發(fā)展人工操作階段單道批處理系統(tǒng)多道批處理系統(tǒng)分時系統(tǒng)個人機系統(tǒng)實時系統(tǒng)網(wǎng)絡操作系統(tǒng)分布式系統(tǒng)1.2.1人工操作階段在操作系統(tǒng)軟件出現(xiàn)之前,體積龐大且處理速度緩慢的計算機硬件就已經(jīng)出現(xiàn)并投入使用了。每個用戶均使用人工操作方式直接使用計算機硬件系統(tǒng),將寫有程序的穿孔卡片裝入專用的輸入設備后,再手動啟動將其輸入計算機,最后再啟動計算機處理數(shù)據(jù)。缺點:計算機由一個用戶獨占,除非該用戶工作完成,下一個用戶總是需要長期等待。CPU利用率低。用戶在安裝卡片、啟動輸入設備進行輸入時,CPU并沒有工作,而是等待數(shù)據(jù)輸入。1.2.2單道批處理系統(tǒng)上世紀50年代,使用功耗低、可靠性高的晶體管構造的計算機量產(chǎn)并可以長時間運行,完成一些有用的工作匯編語言和FORTRAN語言的出現(xiàn)和流行,也使得很多編程人員開始使用它們來編寫自己的工作程序,這些程序中包含了一些特殊的程序,它們專用于完成批量作業(yè)的處理。這些程序就是現(xiàn)代操作系統(tǒng)的前身,被稱為單道批處理系統(tǒng)。工作過程:多個用戶任務利用外圍機輸入磁帶后,啟動批處理系統(tǒng)自動按順序讀入并處理全部任務,同時依序將結果輸出到另一個磁帶上,直到全部任務完成,工作人員再將結果利用輸出外圍機輸出即可特性:順序執(zhí)行、自動運行、單道運行優(yōu)點:盡可能地將CPU的等待時間降低,在一定程度上緩解了人機矛盾,提高了CPU利用率和系統(tǒng)吞吐量。缺點:資源利用率仍然不高1.2.3多道批處理系統(tǒng)20世紀60年代,使用小規(guī)模集成電路制造的第三代計算機上首先出現(xiàn)了多道批處理系統(tǒng)多道批處理系統(tǒng)工作過程:所有用戶的作業(yè)先在外存排隊等待裝入內(nèi)存,此時形成的作業(yè)隊列被稱為“后備隊列”。接著由作業(yè)調(diào)度程序按照選定的調(diào)度算法從后備隊列中選擇一個或多個作業(yè)裝入內(nèi)存的不同分區(qū),這些分區(qū)相互不重疊。在作業(yè)運行期間,各作業(yè)僅能訪問分配給自己的內(nèi)存空間中的程序和數(shù)據(jù),每次要求訪問指定地址的信息時,操作系統(tǒng)要主動檢查其是否超出本作業(yè)的內(nèi)存空間,以防止越界訪問和操作。1.2.3多道批處理系統(tǒng)優(yōu)點提高CPU利用率。多道批處理系統(tǒng)中,一個作業(yè)需要轉向I/O執(zhí)行時,可以將CPU交給另一個作業(yè)使用,只要內(nèi)存中作業(yè)達到一定數(shù)量,就可以保證CPU始終處于忙碌狀態(tài),其利用率甚至可以接近100%。提高內(nèi)存和I/O設備利用率。多個程序共處內(nèi)存可以盡量減少內(nèi)存的空間浪費。多個I/O設備同時被多個不同程序使用,在單位時間內(nèi),每個設備的利用率都得到了提升。增加系統(tǒng)吞吐量。當CPU和I/O設備都不斷忙碌的情況下,單位時間內(nèi)系統(tǒng)所處理的數(shù)據(jù)量必然會大幅增加1.2.3多道批處理系統(tǒng)缺點平均周轉時間(作業(yè)進入系統(tǒng)到其完成任務退出系統(tǒng)所經(jīng)歷的平均時間)長無交互能力用戶任務響應時間大大延長修改和調(diào)試程序均需要等待本批作業(yè)處理完成才能進行1.2.4分時操作系統(tǒng)設計動機:該系統(tǒng)的出現(xiàn)起因于多數(shù)程序員對于多道批處理系統(tǒng)需要與他人爭搶機時的痛苦感受,用戶希望可以獨占一臺機器比較長的時間,以便集中完成自己的工作,同時也希望隨時與機器交互,以便對自己的程序做出及時的調(diào)整。
設計思想分時系統(tǒng)將CPU處理時間進行分割,形成多個特定大小的時間片段,這些片段被稱為時間片。而分時系統(tǒng)中的每個用戶在獲取CPU控制權后,最長只能執(zhí)行一個時間片長度,然后就必須讓出CPU,交給其他等待用戶使用。1.2.4分時操作系統(tǒng)特點多路性:指的是多個用戶終端同時聯(lián)接在一臺主機之上,系統(tǒng)按照時間片輪轉的方式將CPU輪流交予各個用戶進程使用。用戶:單位時間內(nèi)每個用戶都感覺自己獨占終端并得到響應系統(tǒng):每個小時間片內(nèi)及時性:指的是用戶請求的響應時間要短。獨立性:指的是每個用戶均感覺自己獨占了一臺終端,且不知道其他用戶的存在,即每個用戶均獨立運作自己的程序,相互之間不干擾。交互性:指的是用戶使用終端與系統(tǒng)進行對話,以便向系統(tǒng)請求各種不同的系統(tǒng)服務,這些服務可以幫助用戶完成不同類型的需求。1.2.5個人計算機操作系統(tǒng)上世紀80年代初,大規(guī)模集成電路構成的微型計算機(個人計算機)問世,它具有極低廉的價格卻能夠做到原來由大型機才能完成的工作。微型計算機上配置的操作系統(tǒng)被稱為微機操作系統(tǒng),根據(jù)其運行方式,可以將整個發(fā)展過程中出現(xiàn)的微機操作系統(tǒng)分為以下幾類:單用戶單任務操作系統(tǒng):一段時間內(nèi)只能有一位用戶使用微型計算機,且這個用戶一次只能運行一個用戶程序。單用戶多任務操作系統(tǒng):一段時間內(nèi)由一個用戶獨享計算機,但這個用戶可以合理利用這段機時,一次運行多個任務,使它們并發(fā)執(zhí)行。這種做法通過提高多道程序度來增加系統(tǒng)吞吐量和資源利用率,縮短用戶任務的響應時間,從而大幅提高系統(tǒng)性能。多用戶多任務操作系統(tǒng):多個用戶同時登錄主機,但每個用戶要使用自己的終端來共享系統(tǒng)資源;在每個終端上,各個用戶可以同時運作多個并發(fā)任務,以進一步提高系統(tǒng)吞吐量和資源利用率。1.2.6實時操作系統(tǒng)在工業(yè)應用領域,實時操作系統(tǒng)(RealTimeSystem)更為常見。特征:時間是關鍵參數(shù),即系統(tǒng)應能及時獲取用戶請求,并在指定時間內(nèi)開始或完成規(guī)定任務,同時還要保證所有任務協(xié)調(diào)一致地工作。實時操作系統(tǒng)通常被用于進行實時控制或實時信息處理。實時控制:生產(chǎn)過程的控制均需要依賴計算機對數(shù)據(jù)的快速組織處理能力,由硬件采樣裝置采集上來的樣本值被及時(或即時)傳送到控制主機中,由主機根據(jù)事先制定的控制規(guī)則自動指定相關硬件動作,以完成產(chǎn)品的加工。實時信息處理:此類系統(tǒng)所管理的數(shù)據(jù)均放在服務器上,由多個終端通過網(wǎng)絡關聯(lián),服務器接收各終端發(fā)來的遠程服務請求,分析請求后對信息進行檢索和處理,然后將處理結果返回給提出申請的用戶。1.2.6實時操作系統(tǒng)分類按周期性分類周期性實時任務:由外部設備按照設備周期定期發(fā)送信號來啟動,主機收到信號后為該設備進行某些特定工作的執(zhí)行。非周期性實時任務:根據(jù)任務對截止時間的要求以及當前系統(tǒng)中資源使用情況選擇合適的時機啟動,該時機必須能保證任務滿足截止時間要求。按對截止時間要求的嚴格程度分類截止時間分為開始截止時間和完成截止時間兩種。前者要求實時任務在指定時刻(或之前)必須開始運作,后者要求實時任務在指定時刻(或之前)必須結束。硬實時:任務必須在指定截止時間(或之前)開始或完成軟實時:要求不是十分嚴格,偶爾可以超出時限,對系統(tǒng)正確性和安全性不會有太大的影響1.2.7網(wǎng)絡操作系統(tǒng)網(wǎng)絡操作系統(tǒng)(NetworkOperatingSystem,NOS)是網(wǎng)絡用戶和網(wǎng)絡之間的接口,除實現(xiàn)通用操作系統(tǒng)功能外,還需要管理網(wǎng)絡中的共享資源,實現(xiàn)用戶之間的通信,同時還要向用戶提供多種系統(tǒng)服務。網(wǎng)絡操作系統(tǒng)的基本功能:基本操作系統(tǒng)功能數(shù)據(jù)通信資源共享網(wǎng)絡管理1.2.7網(wǎng)絡操作系統(tǒng)網(wǎng)絡操作系統(tǒng)的基本功能:數(shù)據(jù)通信:建立與解除除應用層外的所有各網(wǎng)絡層次間為保障數(shù)據(jù)通信所設立的各種連接。正確拆分和組裝報文。實現(xiàn)傳輸控制。做到流量控制。提供差錯的檢測與糾正功能。1.2.7網(wǎng)絡操作系統(tǒng)網(wǎng)絡操作系統(tǒng)的基本功能:資源共享:對硬盤空間共享:既可以使用虛擬軟盤方式將服務器硬盤分區(qū)后分配給各用戶,也可以使用文件服務方式要求系統(tǒng)將服務器的文件系統(tǒng)中特定目錄或文件的存取權限交付給用戶。對網(wǎng)絡打印機共享:使用SPOOLing(假脫機)技術將網(wǎng)絡中的打印機共享給工作站或其它所有的計算機,每個工作站或服務器發(fā)送給打印機的任務將在打印機所在地進行排隊等待,直到全部打印工作完成。網(wǎng)絡資源的共享利于提高資源利用率,降低成本。1.2.7網(wǎng)絡操作系統(tǒng)網(wǎng)絡操作系統(tǒng)的基本功能:網(wǎng)絡管理:網(wǎng)絡管理軟件負責監(jiān)視網(wǎng)絡及其組件的運行情況它向不同設備不定時發(fā)送特定信息,并接收和分析響應信息,以確定該設備甚至整個網(wǎng)絡是否正常運作。網(wǎng)絡操作系統(tǒng)部署于單機,其運行性能取決于本地計算機。1.2.8分布式操作系統(tǒng)分布式系統(tǒng)是一個邏輯上的全局操作系統(tǒng),由若干個獨立的計算機構成,這些不同的處理器通過互聯(lián)網(wǎng)構成一個統(tǒng)一的系統(tǒng)。在該系統(tǒng)中使用了分布式計算結構,將原來單機系統(tǒng)CPU的任務分散給不同的處理器,這些處理器可以用來實現(xiàn)不同的功能,它們協(xié)調(diào)工作,共享系統(tǒng)軟硬件資源,共同控制分布式程序(進程)的運行。分布式系統(tǒng)能夠給用戶提供統(tǒng)一的界面、標準的接口,以便利用系統(tǒng)的各種資源實現(xiàn)所需要的全部操作。組成分布式系統(tǒng)的各個主機體系(包括處理器、存儲器、外設)既可以獨立處理本地任務,又可以合作完成大型工作。1.2.8分布式操作系統(tǒng)與網(wǎng)絡操作系統(tǒng)的區(qū)別系統(tǒng)透明性:分布式系統(tǒng)對用戶而言是透明的。不同主機的用戶可以看到統(tǒng)一的界面,每個用戶均認為整個系統(tǒng)運行于本地計算機,當用戶要求使用某資源時,無須了解資源位置和操作執(zhí)行的位置,只需使用本機的操作指令即可,分布式系統(tǒng)將自動解析用戶申請,選擇相應位置的主機運作指定操作,并利用相應位置的指定類型資源。在網(wǎng)絡操作系統(tǒng)對用戶而言是不透明的。用戶需要顯式給出所申請資源位置,要求用戶對整個網(wǎng)絡布局有深刻的了解。系統(tǒng)耦合度:分布式操作系統(tǒng)除了具有一般計算機網(wǎng)絡的模塊性、并行性、通信性等特征外,還有進一步的發(fā)展。為了完成某些大型工作,多個主機需要合作,因此分布式系統(tǒng)是邏輯上緊密耦合的系統(tǒng)。網(wǎng)絡操作系統(tǒng)中,各主機均有自己的一套處理機制,僅僅依靠通信鏈路上的消息傳遞為用戶提供一些服務,邏輯上并未構成一個整體,因此網(wǎng)絡操作系統(tǒng)是邏輯上松散耦合的系統(tǒng)。
1.2.8分布式操作系統(tǒng)特征:多機合作:多個處理器共同協(xié)作,由操作系統(tǒng)自動對任務進行分配和協(xié)調(diào)。分布式系統(tǒng)具有多機合作功能,使得其具有響應時間短、系統(tǒng)吞吐量高、可靠性高等優(yōu)點。健壯性:當系統(tǒng)中的一個甚至多個處理器出現(xiàn)故障時,剩余的處理器仍能自動重新構成一個新的基于較少處理器的操作系統(tǒng),該系統(tǒng)仍能繼續(xù)工作,甚至在配置了冗余處理器的分布式系統(tǒng)中,重構的新系統(tǒng)可以繼續(xù)失效部分的全部工作。一旦故障排除,系統(tǒng)將自動恢復為原來的狀態(tài)。1.2.9操作系統(tǒng)的進一步發(fā)展集群式系統(tǒng)兩個或多個獨立的系統(tǒng)單元組成的大型系統(tǒng),這里的單元可以是單處理器系統(tǒng),也可以是多處理器系統(tǒng)。多處理器系統(tǒng)指的是通過通信信道緊密通信的多個處理器組成的系統(tǒng),它分為對稱多處理器系統(tǒng)和非對稱多處理器系統(tǒng)對稱多處理器系統(tǒng):系統(tǒng)中每個處理器均安裝有一個操作系統(tǒng)的副本,它們相互通信,共享總線、時鐘等系統(tǒng)資源,在系統(tǒng)中的地位相同。非對稱多處理器系統(tǒng):系統(tǒng)中每個處理器的地位不同,有一個主處理器和多個協(xié)處理器,主處理器主控全局,協(xié)處理器向主處理器要任務或執(zhí)行預先設定的任務。特點:具有較高的性價比。提供優(yōu)秀的容錯能力。能及時檢測到故障的產(chǎn)生,并恢復故障節(jié)點的運作。1.2.9操作系統(tǒng)的進一步發(fā)展嵌入式系統(tǒng)在各種數(shù)字化設備中設置類似微型機的硬件構成,并將嵌入式系統(tǒng)植入這些硬件中,使其為各種用戶級嵌入式軟件提供支持,同時控制整個系統(tǒng)的各項操作,合理管理和分配系統(tǒng)資源除了具有操作系統(tǒng)的基本功能外,還具有實時性、微型化、可裁剪、高可靠性和高可移植性等特點。最典型的復雜嵌入式系統(tǒng)是Linux。1.3操作系統(tǒng)的結構使用軟件工程思想設計操作系統(tǒng)時,除了要滿足操作系統(tǒng)的基本設計目標外,還要根據(jù)用戶需求分析采用哪種形式的操作系統(tǒng)結構更適用。較有代表性的OS結構整體結構分層結構虛擬機結構外核結構客戶機/服務器結構。1.3.1整體結構整體結構又稱為模塊化結構,它采用結構化程序設計技術,將復雜的OS需求分解后根據(jù)相關性分類,每個類別使用一個或幾個模塊實現(xiàn)。模塊-接口法:整體結構OS的各模塊分別具有特定管理功能,且相互之間使用規(guī)定好的接口通信。各模塊進一步劃分為子模塊和通信接口。子模塊還可以進一步細分為更小的模塊。1.3.1整體結構特點內(nèi)聚度低耦合度高新加入的系統(tǒng)功能可以獨立設計、編碼和調(diào)試后再與原系統(tǒng)連接形成新的整體各模塊獨立開發(fā),縮短系統(tǒng)開發(fā)周期獨立開發(fā)的各模塊無法基于確定前趨模塊完成,這種無序性將會導致設計的基礎無法保證可靠1.3.1整體結構簡單的整體結構操作系統(tǒng)結構模型1.3.2分層結構將整體結構OS中的各個模塊按照決定次序分層,即每層都是在其下層的基礎上構建的。在裸機之上,根據(jù)模塊功能與系統(tǒng)硬件的相關性以及各模塊之間的調(diào)用關系,構建多個層次的軟件,最終形成完備的OS。分層結構實現(xiàn)過程通常采用自底向上的方法進行,以保證系統(tǒng)模塊按照設計過程中的決策次序鋪設。該結構的系統(tǒng)具有層次特性,每個層次由多個模塊構成,且只依賴于其緊鄰下層。1.3.2分層結構特點便于保證系統(tǒng)正確性便于進行功能擴充和系統(tǒng)維護。各層間都要定義通信機制,這樣當一個用戶請求需要使用較低層次的功能時,需要多次穿越層邊界,這樣的做法會增加通信開銷,導致系統(tǒng)效率降低。層號功能5操作員4用戶程序3I/O管理2操作員-進程通信1存儲器和磁盤管理0處理器分配和多道程序設計第一個分層結構OS——THE系統(tǒng)結構
1.3.3虛擬機第一個真正意義上的虛擬機結構OS是VM/370,它的設計初衷是實現(xiàn)兩個功能:提供多道程序環(huán)境和實現(xiàn)一個比裸機更方便的可擴展的虛擬計算機。VM/370的核心程序為虛擬機監(jiān)控器(virtualmachinemonitor),它運行于裸機之上并提供多道程序功能。該系統(tǒng)向上層提供多個對裸機硬件精確復制的虛擬機,這些復制品均具有真實機器的全部功能。由于在一臺物理裸機上運行的操作系統(tǒng)均可以出現(xiàn)在一個特定虛擬機上,因此分配給各用戶的不同虛擬機上可以隨用戶的個人愛好和操作習慣不同而采用不同的操作系統(tǒng)。所有虛擬機都是對整個物理裸機的精確復制,因此其可用空間均從0到最大編號,為確保正確定位用戶的實際文件所在地,虛擬機監(jiān)控器必須設置和維護一張地址重映射表。1.3.3虛擬機在VM/370的各虛擬機中,除了用來實現(xiàn)批處理和事務處理的系統(tǒng)功能程序外,還有用來保證分時共享的單用戶、交互式系統(tǒng)——會話監(jiān)控系統(tǒng)(ConversationalMonitorSystem,CMS)。1.3.4外核從虛擬機發(fā)展而來該系統(tǒng)為每個虛擬機指定連續(xù)空間,其核心程序稱為外核(exokernel),它在核心態(tài)運行,為虛擬機分配資源,并對虛擬機發(fā)送來的資源訪問申請進行檢查,以保證沒有任何虛擬機能訪問其他虛擬機(用戶)的空間。這種方法可以將每個用戶層虛擬機限定在已分配給它的指定資源環(huán)境中,保證各虛擬機的獨立性。優(yōu)點可以減少映射次數(shù)可以將外核內(nèi)的多道程序設計環(huán)境與用戶空間的操作系統(tǒng)代碼有效隔離外核處理虛擬機沖突的開銷較小1.3.5客戶機/服務器結構現(xiàn)代操作系統(tǒng)普遍采用的方法是將操作系統(tǒng)的大部分功能盡量從核心態(tài)中移出,只將最基本的操作組成一個很小的微內(nèi)核,這就形成了所謂客戶機/服務器結構(C/S結構)的操作系統(tǒng)。它將處理本地業(yè)務的用戶進程放在具有一定獨立處理能力的客戶機上,形成客戶機進程;而把網(wǎng)絡之上所有用戶同時共享的信息以及完成客戶機與服務器通信功能的微內(nèi)核放在服務器上,形成服務器進程。
用戶提出訪問系統(tǒng)資源申請時,客戶機進程先發(fā)送請求給服務器進程,由后者將請求轉發(fā)給能完成指定服務的客戶機,待其完成要求工作后將結果發(fā)送給服務器進程,再由服務器進程將結果回送給發(fā)出申請的客戶機進程。1.3.5客戶機/服務器結構優(yōu)點數(shù)據(jù)可以分布式處理和存儲重要數(shù)據(jù)可放在受到嚴密保護的服務器所在的局域網(wǎng)內(nèi),便于集中管理,以保證數(shù)據(jù)安全C/S結構有較好的靈活性和可擴充性易于修改用戶程序1.4常用操作系統(tǒng)簡介Windows系列操作系統(tǒng)個人桌面系統(tǒng)領域應用范圍最廣的操作系統(tǒng)UNIX和Linux系統(tǒng)UNIX:技術成熟度、穩(wěn)定性、可靠性好,是唯一被專業(yè)人士認可的、能在從巨型機到微型機甚至是嵌入式硬件平臺上穩(wěn)定運行的多用戶、多任務操作系統(tǒng)Linux:起源于UNIX社區(qū),是首要的開源類UNIX系統(tǒng)。在教育領域,對Linux的學習也有助于學生理解內(nèi)核工作方式。該系統(tǒng)本質(zhì)上只提供一個操作系統(tǒng)內(nèi)核,其它的擴展功能(尤其是直接面向用戶的shell層次的各種功能)則由分布在全球的各類公司、研究機構、大專院校等單位或個人根據(jù)自身或客戶需要自主開發(fā),是真正的定制系統(tǒng)。本章學習目標掌握操作系統(tǒng)的定義及其在計算機系統(tǒng)中的作用。掌握操作系統(tǒng)的特征與功能。了解操作系統(tǒng)的形成過程及其發(fā)展趨勢,掌握批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)的特點。了解操作系統(tǒng)的設計結構。了解常見操作系統(tǒng)的特點。第2章操作系統(tǒng)的界面2.1用戶工作環(huán)境2.2操作系統(tǒng)的用戶接口2.3操作系統(tǒng)提供的服務2.1用戶工作環(huán)境用戶環(huán)境指的是用戶以自己的賬號和密碼登錄到系統(tǒng)后所見到的整體操作環(huán)境,這個環(huán)境應該由操作系統(tǒng)和用戶自身設定綜合而成。操作系統(tǒng)會在用戶賬號下關聯(lián)一個操作偏好設置的記錄,當某用戶以自身賬號和相應密碼登錄系統(tǒng)后,操作系統(tǒng)將自動按照該記錄設置默認的用戶操作環(huán)境。對普通用戶而言,圖形化的環(huán)境更容易上手和操作對特殊應用領域的用戶而言,使用命令行形式能獲得更好的響應效率2.1.1用戶環(huán)境在設定用戶環(huán)境前,通常要求系統(tǒng)先啟動,即先將所有用戶的公共服務和基本的系統(tǒng)操作環(huán)境設置好,然后再根據(jù)各用戶的個人設定進行細微的調(diào)整。以linux為例,看到如下圖像表示系統(tǒng)正在開機自檢并配置基本操作環(huán)境。2.1.2系統(tǒng)的生成與引導操作系統(tǒng)需要完成生成與引導兩個步驟后才能為用戶提供正確的服務,確保用戶任務的順利完成。系統(tǒng)生成(SystemGeneration,SYSGEN):在為用戶建立工作環(huán)境前,需要先檢測硬件情況,并在特定硬件之上配置和構造操作系統(tǒng)。系統(tǒng)引導指的是將操作系統(tǒng)內(nèi)核裝入內(nèi)存并啟動系統(tǒng)的過程。2.1.2系統(tǒng)的生成與引導系統(tǒng)生成當裸機被啟動時,為了生成正確的操作系統(tǒng),需要根據(jù)硬件平臺的狀況進行一系列重要的安裝工作,為此需要設計一個特殊的程序來自動進行系統(tǒng)生成。系統(tǒng)生成程序從指定文件中讀取硬件系統(tǒng)的配置信息,或從操作人員處獲取這些信息,甚至在某些系統(tǒng)采用硬件直接檢測的信息獲取方式。配置信息用來幫助系統(tǒng)記錄硬件配置信息,以便能根據(jù)硬件選擇合適的操作系統(tǒng)模塊組。2.1.2系統(tǒng)的生成與引導系統(tǒng)生成時參考的重要配置信息CPU類型內(nèi)存大小當前關聯(lián)設備的類型和數(shù)量操作系統(tǒng)的重要功能選項和參數(shù)2.1.2系統(tǒng)的生成與引導系統(tǒng)生成方法表驅動法:所有的系統(tǒng)代碼(尤其是實現(xiàn)核心功能的內(nèi)核代碼)以文件形式出現(xiàn)在外存的指定位置。當系統(tǒng)實際運行時,根據(jù)自身當前運行需要選擇相應的功能模塊裝入內(nèi)存。這種方法的好處是能以最小的內(nèi)存空間保證最基本的系統(tǒng)功能運作,同時也加速了啟動速度。2.1.2系統(tǒng)的生成與引導系統(tǒng)生成方法其他方法:為了實現(xiàn)專有硬件平臺對實時性、快速性等特殊性能的更高要求,可根據(jù)用戶的特定需求定制操作系統(tǒng),并將其完全編譯,形成專用系統(tǒng)。此類系統(tǒng)將一些與用戶需求無關的功能直接裁掉,以犧牲全面性能的方式換取更快速響應。2.1.2系統(tǒng)的生成與引導系統(tǒng)引導系統(tǒng)引導由位于系統(tǒng)ROM中的啟動引導程序完成,整個系統(tǒng)引導過程包括定位內(nèi)核代碼在外存的具體位置、按照要求正確裝入內(nèi)核至內(nèi)存并最終使內(nèi)核運行起來。初始引導內(nèi)核初始化全系統(tǒng)初始化2.1.2系統(tǒng)的生成與引導
初始引導計算機BIOS完成,包括中斷服務程序、系統(tǒng)設置程序、上電自檢(PowerOnSelfTest,POST)和系統(tǒng)啟動自舉程序等中斷服務程序是系統(tǒng)軟硬件間的一個可編程接口,用于完成硬件初始化系統(tǒng)設置程序用來設置CMOSRAM中的各項參數(shù)上電自檢POST在通電后自動對系統(tǒng)中各關鍵和主要外設進行檢查,一旦在自檢中發(fā)現(xiàn)問題就通過鳴笛或提示信息警告用戶系統(tǒng)啟動自舉程序按照系統(tǒng)CMOS設置中保存的啟動順序搜索有效的硬件驅動器,讀入操作系統(tǒng)引導程序,接著將系統(tǒng)控制權交給引導程序,并由引導程序裝入內(nèi)核代碼,以便完成系統(tǒng)的順序啟動2.1.2系統(tǒng)的生成與引導內(nèi)核初始化引導程序將系統(tǒng)內(nèi)核裝入內(nèi)存后就將CPU控制權交給內(nèi)核內(nèi)核執(zhí)行對硬件、電路邏輯等的初始化操作,以及對內(nèi)核數(shù)據(jù)結構的初始化2.1.2系統(tǒng)的生成與引導全系統(tǒng)初始化該步驟的主要任務是啟動用戶接口,使系統(tǒng)處于等待命令輸入狀態(tài)此時操作系統(tǒng)做的主要工作是為用戶創(chuàng)建基本工作環(huán)境,接收、解釋和執(zhí)行用戶程序與指令。全系統(tǒng)初始化完成后,各用戶看到的接口表現(xiàn)會根據(jù)用戶自身設定顯示Linux用戶命令行登錄界面Linux用戶圖形登錄界面2.1.3實例分析:Linux系統(tǒng)啟動Linux的啟動過程需要多個環(huán)節(jié)的配合,首先需要由BIOS加載操作系統(tǒng)引導程序,由其加載操作系統(tǒng)內(nèi)核,內(nèi)核裝入時需要先進行代碼的解壓縮,然后才能開始初始化過程,初始化過程完成后陸續(xù)生成各終端進程,以便為用戶提供所需系統(tǒng)服務。BIOS初始化裝載啟動引導程序內(nèi)核初始化啟動系統(tǒng)2.1.3實例分析:Linux系統(tǒng)啟動BIOS初始化硬件配置檢測:檢查并獲取外設數(shù)量、類型、工作方式等重要的管控信息硬件初始化:可避免硬件設備操作不會造成硬件沖突,同時顯示系統(tǒng)中所有PCI設備列表裝入引導程序:根據(jù)用戶預定義次序依次訪問軟盤、硬盤和CD-ROM的第一個扇區(qū),并將搜索過程中遇到的第一個引導程序裝入內(nèi)存轉向引導程序:引導程序裝載完成后,復制主引導扇區(qū)到內(nèi)存起始位置為0x7C000處,并將此地址存放在指令指針寄存器里,此時下一條要執(zhí)行的就是該寄存器所指向單元處的指令,即系統(tǒng)啟動引導程序的第一條指令2.1.3實例分析:Linux系統(tǒng)啟動裝載啟動引導程序Linux中當前最流行的啟動引導程序為GRUBGRUB占用空間較大,無法一次性全部放入MBR,因此在BIOS初始化時裝入的只是最初的部分內(nèi)容(stage1)Stage1的工作是將GRUB的剩余功能代碼(Stage2)裝入內(nèi)存,Stage2將匯編語言環(huán)境轉化為C語言環(huán)境,接著顯示一個界面讓用戶選擇想要啟動的操作系統(tǒng)用戶選擇了要啟動的系統(tǒng)后,相應內(nèi)核將被裝入內(nèi)存RedHatEnterpriseLinux5的啟動菜單2.1.3實例分析:Linux系統(tǒng)啟動內(nèi)核初始化(
Setup.S程序)首先從BIOS中獲取有關內(nèi)存、磁盤以及其它設備的重要參數(shù)等數(shù)據(jù),并將這些數(shù)據(jù)放到內(nèi)存的特定空間對讀入的內(nèi)核信息進行檢測檢測并配置內(nèi)存、鍵盤、磁盤等各種設備,設置中斷描述符表、全局描述符表等表格以及中斷向量等數(shù)據(jù)結構啟動startup_32()函數(shù)裝入各數(shù)據(jù)段寄存器、初始化頁表、建立0號進程的內(nèi)核堆棧,重新設置中斷描述符表、全局描述符表,拷貝系統(tǒng)參數(shù)啟動init()函數(shù)(1號進程)。2.1.3實例分析:Linux系統(tǒng)啟動啟動系統(tǒng)啟動系統(tǒng)過程由init()函數(shù)完成,因此它又被稱為初始化進程,負責創(chuàng)建并初始化其它所有的新進程工作過程讀取設置文件/etc/inittab執(zhí)行系統(tǒng)初始化腳本、對系統(tǒng)進行基本設置、掛載根文件系統(tǒng)和其它文件系統(tǒng)確定啟動后進入的運行級別順序啟動并初始化系統(tǒng)重要服務工作啟動虛擬終端,并在運行級別5上運行X-windowLinux的圖形界面服務軟件2.1.3實例分析:Linux系統(tǒng)啟動Linux啟動過程實際上是一個CPU控制權的傳遞過程2.2操作系統(tǒng)的用戶接口操作系統(tǒng)是用戶程序執(zhí)行的平臺,為用戶進程提供系統(tǒng)服務操作系統(tǒng)的關鍵性、重要性要求用戶不能隨意直接訪問和調(diào)用系統(tǒng)功能模塊在現(xiàn)代計算機體系中,用戶使用系統(tǒng)服務必須通過規(guī)定好的接口2.2操作系統(tǒng)的用戶接口操作系統(tǒng)為用戶提供的接口有圖形接口、命令接口和程序接口幾種形式2.2操作系統(tǒng)的用戶接口命令接口使用方法:在終端上輸入命令,指定要獲取的系統(tǒng)服務名稱、具體服務內(nèi)容和被操作對象等信息,這些信息將被傳輸給服務程序,以便滿足用戶要求命令接口是交互式接口,由終端處理程序、命令解釋程序和指令集合組成終端處理程序:接收用戶輸入的命令,并將其顯示在屏幕上命令解釋程序:用戶核查無誤后,使用回車鍵通知該程序開始分析指令和發(fā)送解析結果,并等待服務程序的處理反饋指令集合:機器語言編寫的機器動作指令,由計算機硬件體系的各部件合作完成,該集合表征了計算機的功能2.2操作系統(tǒng)的用戶接口命令接口批處理文件可被視為特殊的命令接口使用方式批處理文件的特點以“行”為單位順序保存了一個指令序列,該指令序列可以幫助用戶完成一個例行任務的快速執(zhí)行簡化操作、減少輸入次數(shù)、節(jié)省時間可對指令流進行簡單有效的定制適合專業(yè)用戶使用:用戶必須按照指定格式和名稱申請系統(tǒng)服務,還要了解文件系統(tǒng)的目錄結構以確定被操作對象的具體位置批處理文件用于執(zhí)行例行性任務2.2操作系統(tǒng)的用戶接口圖形用戶接口便于非專業(yè)用戶正確、方便的使用操作系統(tǒng)使用圖形用戶界面的操作系統(tǒng)在執(zhí)行程序時,首先創(chuàng)建一個新的顯示區(qū)域,該區(qū)域稱為窗口,然后在該窗口中進行指定程序的執(zhí)行用戶在使用窗口時可以根據(jù)喜好自定義窗口屬性,并在窗口中使用鼠標選擇所需操作,此時的鼠標動作相當于命令接口中的各種功能指令2.2操作系統(tǒng)的用戶接口圖形用戶接口特點可以簡單、便捷、直觀地使用操作系統(tǒng)的各項系統(tǒng)服務拉近了計算機與普通用戶的距離,極大地促進了計算機應用的發(fā)展縮短指令學習周期幫助專業(yè)人員將更多的精力和時間放在更為重要的工作上去2.2操作系統(tǒng)的用戶接口命令接口與圖形接口的比較命令接口:優(yōu)勢在于對計算機資源的控制更為直接有效、系統(tǒng)與用戶的互動性更強、占用資源少、響應時間短,可以用于實現(xiàn)更為復雜和特殊的計算機操控要求圖形接口:具有美觀性、易用性、便捷性,利于非專業(yè)人士和無需控制系統(tǒng)環(huán)境的專業(yè)人士使用命令接口與圖形接口均用于人機交互2.2操作系統(tǒng)的用戶接口程序接口用戶程序中需要使用系統(tǒng)服務時必須使用OS提供的應用程序接口(API)系統(tǒng)程序:用于管理和分配系統(tǒng)資源,為用戶提供服務用戶程序:用于完成用戶自身任務,需要向系統(tǒng)提出資源申請并等待系統(tǒng)的審核分配,是服務的申請者操作系統(tǒng)的程序接口由一組能請求操作系統(tǒng)內(nèi)核完成特定功能的專用過程調(diào)用組成,用戶程序必須使用這種方式獲取核心態(tài)的系統(tǒng)服務2.3操作系統(tǒng)提供的服務操作系統(tǒng)提供的基本服務控制程序運行進行I/O操作操作文件系統(tǒng)實現(xiàn)通信錯誤處理操作系統(tǒng)提供的公共函數(shù)資源分配統(tǒng)計管理和控制數(shù)據(jù)提供系統(tǒng)資源保護2.3.1操作系統(tǒng)提供的基本服務控制程序運行系統(tǒng)通過服務將用戶程序裝入內(nèi)存并運行控制程序在規(guī)定時間內(nèi)結束將執(zhí)行過程中出現(xiàn)的錯誤和異常及時地報告給用戶或系統(tǒng)的其他錯誤處理程序進行I/O操作為保證各用戶合理、安全地共享設備資源,用戶不能直接控制設備,只能通過向系統(tǒng)發(fā)送設備申請來請求系統(tǒng)代其處理,因此系統(tǒng)應具有接收并解析設備請求、完成請求工作、反饋設備工作結果給請求用戶等一系列的I/O控制功能2.3.1操作系統(tǒng)提供的基本服務操作文件系統(tǒng)文件系統(tǒng)是OS用來管理、存取文件的機制,支持”按名存取“OS為用戶提供根據(jù)文件名稱創(chuàng)建、訪問、修改、刪除文件的方法,以確保文件數(shù)據(jù)的安全可靠以及正確存取對于多個用戶,操作系統(tǒng)可將不同用戶的文件分別保護實現(xiàn)通信當多個程序合作完成一個大型任務時,通常需要借助通信來控制程序的執(zhí)行順序,該通信任務由OS提供的服務完成2.3.1操作系統(tǒng)提供的基本服務錯誤處理在系統(tǒng)運行期間,各種級別的程序都有可能出現(xiàn)錯誤情況,嚴重者能造成系統(tǒng)崩潰操作系統(tǒng)通常都要設置錯誤檢查和處理機制,以便及時發(fā)現(xiàn)錯誤并采取正確的處理步驟,避免損害系統(tǒng)的正確性和統(tǒng)一性2.3.2操作系統(tǒng)提供的公共函數(shù)系統(tǒng)內(nèi)核中還提供大量公共基礎函數(shù),用來幫助系統(tǒng)高效運行,確保用戶合理共享資源,并提高系統(tǒng)效率資源分配:管理特殊系統(tǒng)資源,確保用戶和系統(tǒng)之間、用戶之間不會產(chǎn)生資源共享沖突,并能完成資源的及時回收統(tǒng)計管理和控制數(shù)據(jù):OS要保存每個用戶的資源使用情況,以便建立系統(tǒng)管理和控制所需的統(tǒng)計數(shù)據(jù)。統(tǒng)計結果需要經(jīng)過細致地分析,并根據(jù)分析結果設計一系列系統(tǒng)服務的改進措施提供系統(tǒng)資源保護:系統(tǒng)資源是操作系統(tǒng)的重要管理對象,其安全使用決定系統(tǒng)本身的安全性,系統(tǒng)資源保護函數(shù)根據(jù)用戶的角色要求管理資源,以保證用戶不會相互打擾,也不會訪問重要系統(tǒng)資源本章學習目標了解操作系統(tǒng)用戶的不同工作環(huán)境。掌握操作系統(tǒng)的生成和引導過程。了解操作系統(tǒng)為用戶提供的各種用戶接口的使用方法。了解系統(tǒng)調(diào)用的特點和用法第3章進程同步與死鎖3.1進程的引入3.2進程的概念3.3進程控制3.4線程3.5處理器調(diào)度3.6調(diào)度算法3.7多處理器調(diào)度和實時調(diào)度3.1.1程序的順序執(zhí)行在早期的單道程序計算機系統(tǒng)中,一次只能運行一個程序,當有多個程序需要運行時,程序的執(zhí)行方式必須是順序的,即必須在一個程序執(zhí)行完成之后,才允許執(zhí)行另一個程序。程序段的順序執(zhí)行示意圖:3.1.1程序的順序執(zhí)行程序順序執(zhí)行的特征如下:順序性。處理機在執(zhí)行程序時,嚴格按照程序所規(guī)定的順序執(zhí)行,即每一操作都必須在下一操作開始之前完成。封閉性。程序一旦開始運行就獨占系統(tǒng)資源,只有本程序才能改變資源的狀態(tài),執(zhí)行結果不受外界條件的影響。可再現(xiàn)性。只要初始條件和運行環(huán)境相同,多次執(zhí)行同一程序,都會得到相同的結果。3.1.2
程序的并發(fā)執(zhí)行程序的順序執(zhí)行降低了計算機系統(tǒng)的整體處理能力,使系統(tǒng)資源得不到充分利用,效率低下。為了提高計算機系統(tǒng)的資源利用率,現(xiàn)代計算機普遍采用并發(fā)操作,即若干個程序段同時在系統(tǒng)中運行,這些程序段的執(zhí)行在時間上是重疊的,當一個程序還未執(zhí)行結束時,另一個可能已經(jīng)開始運行了。3.1.2
程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行可以大大提高系統(tǒng)的吞吐量,具有以下三方面的特征:間斷性。為了完成同一項任務而相互合作的多個程序并發(fā)執(zhí)行時,由于互相協(xié)調(diào)、相互制約會導致“暫?!獔?zhí)行—暫?!钡拈g斷性運行規(guī)律。失去封閉性。程序在并發(fā)執(zhí)行時,多個程序需要共享系統(tǒng)中的多種資源。所以,這些資源的狀態(tài)是由多個程序改變的,從而使程序的運行失去了封閉性。不可再現(xiàn)性。程序在并發(fā)執(zhí)行時,由于失去了封閉性,從而導致其失去可再現(xiàn)性。3.2.1進程的定義引入“進程”的原因是為了使程序能夠并發(fā)執(zhí)行,并且能對并發(fā)的程序加以描述和控制而引入的。一般把進程理解為:“可并發(fā)執(zhí)行且具有獨立功能的程序在一個數(shù)據(jù)集合上的運行過程,它是操作系統(tǒng)進行資源分配和調(diào)度的基本單位”。進程是一個程序運行的動態(tài)過程,而且該程序必須具有并發(fā)運行的程序結構;運行過程必須依賴一個數(shù)據(jù)集合而獨立運行,從而形成了系統(tǒng)中的一個單位。3.2.1進程的定義進程的五大特性:動態(tài)性。進程的實質(zhì)是程序的一次執(zhí)行過程,是個動態(tài)的概念,有一定的生命周期,要經(jīng)歷創(chuàng)建、執(zhí)行、撤銷過程。結構性。它由進程控制塊、程序段和數(shù)據(jù)段組成。并發(fā)性。指在一個系統(tǒng)內(nèi)可以同時存在多個進程,它們通過交替使用處理器,從而實現(xiàn)并發(fā)執(zhí)行。異步性。指進程之間在交替使用計算機資源時沒有強制的順序,按各自獨立的、不可預知的速度向前推進。獨立性。指進程在系統(tǒng)中是一個可獨立運行的、具有獨立功能的基本單位,也是系統(tǒng)分配資源和進行調(diào)度的獨立單位。3.2.1進程的定義進程的分類:系統(tǒng)進程:它們是執(zhí)行操作系統(tǒng)核心代碼的進程,起到對系統(tǒng)資源的管理和控制作用。用戶進程:主要是執(zhí)行用戶程序的進程。系統(tǒng)進程和用戶進程的區(qū)別:(1)系統(tǒng)進程可以獨占分配給它們的資源,也能以最高優(yōu)先級運行;而用戶進程需要通過系統(tǒng)服務請求(系統(tǒng)調(diào)用)的方式來競爭使用系統(tǒng)資源。(2)用戶進程不能直接執(zhí)行I/O操作,而系統(tǒng)進程可以。(3)系統(tǒng)進程在內(nèi)核態(tài)(管態(tài))下活動,而用戶進程則是在用戶態(tài)(目態(tài))下活動。3.2.1進程的定義進程和程序既有區(qū)別也有聯(lián)系,主要體現(xiàn)在以下幾個方面:(1)程序是指令集合,是靜態(tài)概念。進程是程序在處理機上的一次執(zhí)行的過程,是動態(tài)的概念。(2)進程是一個獨立的運行單位,能與其它進程并發(fā)(并行)執(zhí)行。而程序則不可以并發(fā)執(zhí)行。(3)進程是進行計算機資源分配的基本單位,也是進行處理機調(diào)度的基本單位。(4)一個程序可以作為多個進程的運行程序,這些進程可以同時存在,而它們使用的是同一程序。3.2.2進程的狀態(tài)在系統(tǒng)中有多個進程存在時,它們是交替運行的,即進程會執(zhí)行一段時間、暫停一下、然后再執(zhí)行一段時間,重復該過程直到執(zhí)行完畢。進程運行的間斷性決定了進程可能具有多種狀態(tài)。3.2.2進程的狀態(tài)進程在運行過程中通常有三種基本狀態(tài),分別是:(1)就緒狀態(tài)(Ready)
進程已獲取到除CPU之外的所有必要資源,只要再得到CPU,就可以馬上投入運行,這時進程所處的狀態(tài)為就緒狀態(tài)。(2)運行狀態(tài)(Running)
處于就緒狀態(tài)的進程得到CPU控制權后,就可以使用處理器進行數(shù)據(jù)運算和處理,而其所處的狀態(tài)稱為運行狀態(tài)。(3)
阻塞狀態(tài)(Wait)
當一個進程正在等待某個事件的發(fā)生(如等待I/O的完成)而暫停執(zhí)行,這時,即使分配有CPU時間,它也無法執(zhí)行,則稱該進程處于阻塞狀態(tài),又稱等待狀態(tài)。3.2.2進程的狀態(tài)進程在執(zhí)行過程中的狀態(tài)會不斷變化,三種基本狀態(tài)之間的轉換關系如下圖所示:3.2.2進程的狀態(tài)在引入掛起狀態(tài)的操作系統(tǒng)中,又增加了靜止就緒和靜止阻塞兩個新的進程狀態(tài)。進程狀態(tài)之間的轉換關系如下圖所示:3.2.3進程控制塊進程控制塊(ProcessControlBlock,PCB)是操作系統(tǒng)為了管理進程而設置的一個專門的數(shù)據(jù)結構,用它來記錄進程的外部特征,描述進程的運動變化過程。系統(tǒng)利用PCB來控制和管理進程,所以PCB是系統(tǒng)感知進程存在的唯一標志。進程與PCB是一一對應的。3.2.3進程控制塊不同的操作系統(tǒng)對進程的控制和管理機制不同,PCB中的信息多少也不一樣。PCB通常包含如下信息:(1)進程標識符。每個進程都必須有一個唯一的標識符。(2)進程當前狀態(tài)。(3)進程相應的程序和數(shù)據(jù)地址,以便把PCB與其程序和數(shù)據(jù)聯(lián)系起來。(4)進程資源清單。(5)進程優(yōu)先級。(6)CPU現(xiàn)場保護區(qū)。(7)進程同步與通信機制。(8)進程所在隊列PCB的鏈接字。
(9)與進程有關的其它信息。如進程記賬信息、進程占用CPU的時間等。
3.3.1進程控制的概念進程控制是進程管理中的最基本功能。是對系統(tǒng)中所有進程從創(chuàng)建到消亡的全過程實施有效的控制,不但要完成對運行過程中狀態(tài)轉換的控制,還需要能夠創(chuàng)建新進程,或者撤銷已經(jīng)執(zhí)行完畢的進程。進程控制一般由操作系統(tǒng)內(nèi)核來完成。3.3.2進程控制機構進程的控制機構是由操作系統(tǒng)內(nèi)核實現(xiàn)的。通常將與硬件密切相關的模塊放在緊挨硬件的軟件層中,并使它們常駐內(nèi)存,以提高操作系統(tǒng)的運行效率,通常將這部分稱為操作系統(tǒng)內(nèi)核。操作系統(tǒng)內(nèi)核為系統(tǒng)對進程進行控制、對存儲器進行管理提供了有效的控制機制。3.3.2進程控制機構不同的操作系統(tǒng)內(nèi)核所包含的功能不同,但大多數(shù)操作系統(tǒng)內(nèi)核都包含支撐功能和資源管理功能。支撐功能:(1)中斷處理。操作系統(tǒng)的各種重要活動最終都依賴于中斷。(2)時鐘處理。(3)原語操作。內(nèi)核在執(zhí)行某些操作時,往往是通過原語操作實現(xiàn)的。原語是由若干條機器指令構成的、用于完成特定功能的一段程序。原語在執(zhí)行過程中是不可分割的。進程控制原語主要有:創(chuàng)建原語、撤銷原語、掛起原語、激活原語、阻塞原語以及喚醒原語。3.3.2進程控制機構資源管理功能:(1)進程管理。進程管理的大部分或者全部功能都放在內(nèi)核中,如進程的調(diào)度與分配、進程的創(chuàng)建和撤銷。(2)存儲器管理。內(nèi)存的分配和回收、內(nèi)存保護和對換等功能模塊都放在內(nèi)核中。(3)設備管理:設備驅動程序、緩沖區(qū)管理、設備分配等功能都放在內(nèi)核中。內(nèi)核中包含的原語主要有:進程控制、進程通信、資源管理以及其它原語。3.3.3進程創(chuàng)建一個進程在執(zhí)行的過程中可以創(chuàng)建新的進程,通常將這樣的進程稱為父進程,而將被創(chuàng)建的新進程稱為父進程的子進程。子進程還可以再創(chuàng)建子進程,被子進程新創(chuàng)建的進程被稱為孫子進程,從而形成進程樹,樹的根結點是整個進程家族的祖先。3.3.3進程創(chuàng)建當子進程被創(chuàng)建時,它可以直接向操作系統(tǒng)申請資源,也可以繼承父進程所擁有的資源。當子進程被撤銷時,應該把從父進程那里獲得的資源還給父進程。當撤銷父進程時,應當把它創(chuàng)建的所有子進程也一同撤銷。不論是系統(tǒng)還是用戶,創(chuàng)建進程的操作必須調(diào)用創(chuàng)建原語來實現(xiàn)。3.3.3進程創(chuàng)建創(chuàng)建原語的主要功能:新進程申請獲得惟一的數(shù)字標示符,并從PCB集合中獲取一個空白PCB;為新進程的程序和數(shù)據(jù)以及用戶棧分配必要的內(nèi)存空間;對PCB進程初始化;將新進程插入就緒隊列中,等待被調(diào)度執(zhí)行。3.3.4進程撤銷當進程完成任務或在執(zhí)行的過程中發(fā)生異常時,系統(tǒng)將調(diào)用進程終止原語來終止該進程。終止進程的過程如下:根據(jù)被終止進程的標示符從PCB集合中查找到該進程的PCB,從中讀出該進程的狀態(tài),終止該進程的執(zhí)行;如果該進程還有子孫進程,應該將它的所有子孫進程終止,防止它們成為不可控進程;然后回收進程所擁有的資源;最后將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其它程序來搜集信息。3.3.5進程阻塞正在運行的進程由于提出系統(tǒng)服務請求(如I/O操作),但因為某種原因而未得到操作系統(tǒng)的立即響應,或者需要從其它合作進程獲得的數(shù)據(jù)尚未到達等原因,該進程只能調(diào)用阻塞原語把自己阻塞,等待相應的事件出現(xiàn)后才被喚醒??梢钥闯?,進程的阻塞是進程自身的一種主動行為。3.3.6進程喚醒當阻塞進程所等待的事件出現(xiàn)時,比如所需的數(shù)據(jù)已到達,或者等待的I/O操作已經(jīng)完成,則由另外的與阻塞進程相關的進程(如用完并釋放該I/O設備的進程)調(diào)用喚醒原語,將等待該事件的進程喚醒。阻塞進程不能喚醒自己。喚醒原語執(zhí)行的過程為:首先把被阻塞的進程從等待該事件的隊列中移出,將其PCB中的狀態(tài)由阻塞修改為就緒,然后將該PCB插入到就緒隊列中。3.4線程自20世紀60年代推出進程概念后,在操作系統(tǒng)中都是以進程作為獨立運行的基本單位。直到20世紀80年代中期,人們又提出了比進程更小的能獨立運行的基本單位—線程。目的是提高系統(tǒng)內(nèi)程序并發(fā)執(zhí)行的程度,從而進一步提高系統(tǒng)的吞吐量。3.4.1線程的概念傳統(tǒng)的進程有兩個基本屬性:可擁有資源的獨立單位、可處理器調(diào)度和分配的基本單位。引入線程以后,將傳統(tǒng)進程的兩個基本屬性分開,線程作為處理器調(diào)度和運行的基本單位,進程作為分配資源的基本單位,可以通過創(chuàng)建線程來完成任務,以減少程序并發(fā)執(zhí)行時付出的時空開銷。線程是由線程ID、程序計數(shù)器、寄存器集合和堆棧組成。它與同屬一個進程的其它線程共享其代碼段、數(shù)據(jù)段和其它操作系統(tǒng)資源(如打開文件和信號)。一個傳統(tǒng)的進程只有一個控制線程。如果進程有多個控制線程,那么它就能同時做多個任務。3.4.2線程的特點與狀態(tài)線程是程序中一個單一的順序控制流程。在單個程序中可以同時運行多個線程完成不同的工作,稱為多線程。多線程是為了同步完成多項任務,通過提高資源使用效率來提高系統(tǒng)的效率。多線程是在同一時間需要完成多項任務的時候實現(xiàn)的。3.4.2線程的特點與狀態(tài)多線程編程具有以下優(yōu)點:(1)響應程度高。如果對一個交互式應用程序采用多線程,即使它部分阻塞或執(zhí)行較冗長的操作,那么,該程序仍然能繼續(xù)工作,從而提高對用戶的響應程度。(2)資源共享。線程默認共享自身所屬進程的內(nèi)存和資源。(3)經(jīng)濟。創(chuàng)建進程所需要的內(nèi)存和資源的分配比較昂貴,而由于線程允許共享自身所屬進程的資源,所以,創(chuàng)建線程和上下文切換會更經(jīng)濟。(4)多處理器體系結構的利用。多線程的優(yōu)點之一是能充分使用多處理器體系結構,以便每個線程能夠并行運行在不同的處理器上。3.4.3線程的實現(xiàn)許多現(xiàn)代操作系統(tǒng)都已實現(xiàn)了線程,但各系統(tǒng)的實現(xiàn)方式并不完全相同.主要分為兩種方式:用戶級線程和內(nèi)核級線程。3.4.3線程的實現(xiàn)用戶級線程僅存在于用戶空間中。用戶級線程的創(chuàng)建、撤銷、線程間的同步與通信等功能都無需通過系統(tǒng)調(diào)用來實現(xiàn)。用戶級線程的切換,常常發(fā)生在一個應用進程的諸多線程之間,同樣也無需內(nèi)核的支持。由于切換的規(guī)則遠比進程調(diào)度簡單,所以線程間的切換速度非?????梢钥闯?,用戶級線程是與內(nèi)核無關的。在一個應用程序中的線程個數(shù)可以達到數(shù)百甚至數(shù)千個。由于這些線程的PCB設置在用戶空間,而線程執(zhí)行的操作也無須內(nèi)核幫助,所以,內(nèi)核完全不知道用戶級線程的存在。值得注意的是,在設置了用戶級線程的操作系統(tǒng)中,仍然是以進程為單位進行調(diào)度的。3.4.3線程的實現(xiàn)內(nèi)核級線程是在內(nèi)核的支持下運行的。內(nèi)核線程的創(chuàng)建和管理要慢于用戶線程的創(chuàng)建和管理。內(nèi)核為每個內(nèi)核級線程設置了一個PCB,內(nèi)核根據(jù)該PCB感知線程的存在,并對其進行控制。3.4.4多線程模型1.多對一模型多對一模型將許多用戶級線程映射到一個內(nèi)核線程。線程管理是在用戶空間進行的,因此效率比較高。如果一個線程執(zhí)行了阻塞系統(tǒng)調(diào)用,那么,整個進程就會阻塞,而且,由于任何時刻只允許一個線程訪問內(nèi)核,因此多個線程不能并行運行在多處理器上。在這種模型中,處理器調(diào)度的單位仍然是進程。3.4.4多線程模型2.一對一模型一對一模型將每個用戶線程映射到一個內(nèi)核線程。當一個線程執(zhí)行阻塞時,該線程模型能夠允許另一個線程繼續(xù)執(zhí)行,所以,它提供了比多對一模型更好的并發(fā)功能。該模型也允許多個線程運行在多處理器系統(tǒng)上。這種模型的缺點是每創(chuàng)建一個用戶線程就需要創(chuàng)建一個相應的內(nèi)核線程。由于創(chuàng)建內(nèi)核線程的開銷會影響應用程序的性能,所以,這種模型的絕大多數(shù)實現(xiàn)限制了系統(tǒng)所支持的線程數(shù)量。WindowsNT/2000/XP和OS/2實現(xiàn)了一對一模型。3.4.4多線程模型2.一對一模型一對一模型將每個用戶線程映射到一個內(nèi)核線程。當一個線程執(zhí)行阻塞時,該線程模型能夠允許另一個線程繼續(xù)執(zhí)行,所以,它提供了比多對一模型更好的并發(fā)功能。該模型也允許多個線程運行在多處理器系統(tǒng)上。這種模型的缺點是每創(chuàng)建一個用戶線程就需要創(chuàng)建一個相應的內(nèi)核線程。由于創(chuàng)建內(nèi)核線程的開銷會影響應用程序的性能,所以,這種模型的絕大多數(shù)實現(xiàn)限制了系統(tǒng)所支持的線程數(shù)量。WindowsNT/2000/XP和OS/2實現(xiàn)了一對一模型。3.4.4多線程模型3、多對多模型多對多模型使用多路復用技術,使許多用戶級線程映射到同樣數(shù)量或更小數(shù)量的內(nèi)核線程上。多對多模型克服了前兩種模型的缺點,開發(fā)人員可以創(chuàng)建任意多個必要的線程,并且相應的內(nèi)核線程能夠在多處理器系統(tǒng)上并行運行。當一個線程執(zhí)行阻塞系統(tǒng)調(diào)用時,內(nèi)核能夠調(diào)度另一個線程來執(zhí)行。Solaris2、IRIX、HP-UX和Tru64Unix都支持這種模型。3.4.4多線程模型線程實現(xiàn)模型:3.4.5線程池線程池的實現(xiàn)原理類似于操作系統(tǒng)中的緩沖區(qū)概念。它的流程如下:預先創(chuàng)建若干數(shù)量的線程,并讓這些線程都處于睡眠狀態(tài),不消耗CPU資源,當客戶端有一個新請求時,就會喚醒線程池中的某一個睡眠線程,讓它來處理客戶端的這個請求,當處理完這個請求后,線程又處于睡眠狀態(tài)。3.4.5線程池基于這種預創(chuàng)建技術,線程池將線程創(chuàng)建和銷毀所帶來的開銷均攤到各個具體的任務上,執(zhí)行次數(shù)越多,每個任務分擔到的線程自身開銷就越小。線程池具有以下優(yōu)點:(1)用現(xiàn)有線程處理請求通常比等待創(chuàng)建新線程快.(2)線程池限定了任何時候可存在線程的數(shù)量。3.5處理器調(diào)度處理器調(diào)度的過程就是為待處理的作業(yè)或進程分配處理器的過程。在多道程序系統(tǒng)中,一個任務提交后,必須經(jīng)過處理器調(diào)度,方能獲得處理器而執(zhí)行。處理器調(diào)度的具體過程是由調(diào)度程序來完成的。不同的操作系統(tǒng)采用的調(diào)度方式也不相同。有的系統(tǒng)中僅采用一級調(diào)度,而有的系統(tǒng)采用兩級或三級,并且所用的調(diào)度算法也可能完全不同。通常,一個較為完善的操作系統(tǒng)會提供三級調(diào)度。3.5.1處理器調(diào)度的層次按照一個作業(yè)從進人系統(tǒng)的后備隊列,直到最后執(zhí)行完畢,可能要經(jīng)歷調(diào)度過程,可以把處理器調(diào)度的層次分為三級調(diào)度:高級調(diào)度、中級調(diào)度和低級調(diào)度。3.5.1處理器調(diào)度的層次
三級調(diào)度示意圖:3.5.1處理器調(diào)度的層次1.高級調(diào)度一對一模型將每個用戶線程映射到一個內(nèi)核線程。高級調(diào)度又稱宏觀調(diào)度或者作業(yè)調(diào)度。它需要做出兩個決定,一個是要從駐留在外存后備隊列中調(diào)入多少個作業(yè),二是要調(diào)入哪幾個作業(yè);為被選中的作業(yè)創(chuàng)建進程,并分配必要的系統(tǒng)資源,如內(nèi)存、外設等;把新創(chuàng)建的進程放入就緒隊列中,等待被調(diào)度執(zhí)行。高級調(diào)度的時間尺度通常是分鐘、小時或天。3.5.1處理器調(diào)度的層次2.中級調(diào)度中級調(diào)度主要涉及進程在內(nèi)存和外存之間的交換。引入中級調(diào)度的主要目的是為了提高內(nèi)存的利用率和系統(tǒng)吞吐量。當系統(tǒng)中的內(nèi)存使用情況緊張時,中級調(diào)度把內(nèi)存中暫時不能運行的進程調(diào)到外存中等待,等內(nèi)存有足夠的空閑空間時,再由中級調(diào)度決定將外存上的某些具備了運行條件的就緒進程調(diào)入內(nèi)存,把其狀態(tài)修改為就緒狀態(tài)并掛在就緒隊列中,等待進程調(diào)度。中級調(diào)度其實就是存儲器管理中的對換功能。3.5.2選擇調(diào)度算法的準則進程調(diào)度的算法較多,各具特點,適用于不同的操作系統(tǒng)。為了滿足用戶和系統(tǒng)的需要,選擇進程調(diào)度算法時需要考慮以下幾項準則:(1)處理器利用率要高(2)周轉時間要短(3)響應時間要快(4)保證截止時間(5)系統(tǒng)吞吐量要高3.5.2選擇調(diào)度算法的準則(1)處理器利用率要高
在實際系統(tǒng)中,處理器的利用率一般在40%(系統(tǒng)負荷較輕)到90%(系統(tǒng)負荷較重)之間。選擇算法時,應考慮盡可能地提高處理器利用率。3.5.2選擇調(diào)度算法的準則(2)周轉時間要短周轉時間包括作業(yè)在外存后備隊列上等待調(diào)度的時間,進程在就緒隊列上等待進程調(diào)度的時間,進程在CPU上執(zhí)行的時間,以及進程等待I/O操作完成的時間四個部分。計算機系統(tǒng)的管理者總是希望能使平均周轉時間最短,這樣既可有效地提高系統(tǒng)資源的利用率,而且還可使大多數(shù)用戶都感到滿意。3.5.2選擇調(diào)度算法的準則(2)周轉時間要短(續(xù))可把平均周轉時間描述為:
作業(yè)周轉時間T與系統(tǒng)為它提供服務的時間Ts之比,即W=T/Ts,稱為帶權周轉時間,而平均帶權周轉時間則可表示為:3.5.2選擇調(diào)度算法的準則(3)響應時間要快響應時間是指從用戶提交一個請求開始,到系統(tǒng)首次產(chǎn)生響應為止的時間間隔。響應時間的長短通常用來評價分時系統(tǒng)的性能,是選擇進程調(diào)度算法非常重要的準則之一。3.5.2選擇調(diào)度算法的準則(4)保證截止時間截止時間是指作業(yè)必須開始執(zhí)行的最遲時間,或必須完成的最遲時間。對于實時系統(tǒng),其調(diào)度方式和算法必須能保證這一點,否則將可能造成難以預料的后果。3.5.2選擇調(diào)度算法的準則(5)系統(tǒng)吞吐量要高吞吐量是指在單位時間內(nèi)系統(tǒng)所完成的作業(yè)數(shù),它與所處理的作業(yè)長度關系密切。對于大型作業(yè),一般吞吐量約為每小時一道作業(yè);對于中、小型作業(yè),其吞吐量可達到幾十道,甚至上百道之多。3.5.3作業(yè)調(diào)度作業(yè)調(diào)度是按照某種調(diào)度算法從后備作業(yè)隊列中選擇作業(yè)裝入內(nèi)存運行,并在作業(yè)運行結束后作善后處理。批處理作業(yè)從提交到最終執(zhí)行完成需要經(jīng)歷以下四種狀態(tài):
(1)提交狀態(tài)
(2)后備狀態(tài)。
(3)運行狀態(tài)。
(4)完成狀態(tài)。3.5.3作業(yè)調(diào)度批處理作業(yè)狀態(tài)變遷如圖所示:3.5.4進程調(diào)度處理器是計算機中最重要的資源,處理器的利用率及系統(tǒng)性能在很大程度上取決于進程調(diào)度(也稱處理器調(diào)度)性能的好壞。進程調(diào)度的時機與進程調(diào)度的方式有關。3.5.4進程調(diào)度當發(fā)現(xiàn)某些情況發(fā)生時,當前運行進程的CPU被收回,需要重新進行進程調(diào)度。引起進程調(diào)度的典型事件如下:
(1)正在執(zhí)行的進程正確完成,或由于某種錯誤而終止運行(陷阱或中斷)。
(2)執(zhí)行中的進程提出I/O請求,等待I/O完成。
(3)在分時系統(tǒng)中,分給進程的時間片用完。
(4)按照優(yōu)先級調(diào)度時,有更高優(yōu)先級進程變?yōu)榫途w狀態(tài)(搶占方式)。
(5)在進程通信中,執(zhí)行中的進程執(zhí)行了某種原語操作,如wait操作、阻塞原語或喚醒原語時,都可能引起進程調(diào)度。3.5.4進程調(diào)度進程調(diào)度的方式可分為非搶占方式和搶占方式兩種。(1)非搶占方式。在非搶占方式下,調(diào)度程序一旦把CPU分配給某一進程后便讓它一直運行下去,直到進程完成或發(fā)生某事件而不能運行時,才將CPU分給其它進程。(2)搶占方式。當一個進程正在執(zhí)行時,系統(tǒng)可以根據(jù)某種策略收回CPU,將其移入就緒隊列,然后選擇其它進程,將CPU分配給它,使之運行。3.5.4進程調(diào)度系統(tǒng)使用搶占方式進行進程調(diào)度時需要遵循一定的原則。主要有以下幾個方面:
1)時間片原則。各進程按系統(tǒng)分配給的一個時間片運行,當該時間片用完,系統(tǒng)就停止該進程的執(zhí)行而重新進行調(diào)度。2)優(yōu)先級原則。每個進程均賦于一個調(diào)度優(yōu)先級,通常一些重要和緊急的進程被賦于較高的優(yōu)先級。系統(tǒng)重新調(diào)度時將處理器分配給該優(yōu)先級高的進程,使之執(zhí)行。3)短進程優(yōu)先原則。當新到達的作業(yè)對應的進程比正在執(zhí)行的作業(yè)對應進程的運行時間明顯短時,系統(tǒng)剝奪當前進程的執(zhí)行,而將處理器分配給新的短進程,使之優(yōu)先執(zhí)行。3.5.4進程調(diào)度非搶占調(diào)度與搶占式調(diào)度對比非搶占調(diào)度方式的優(yōu)點是簡單、系統(tǒng)開銷小,通常用在批處理系統(tǒng)中。搶占式調(diào)度方式的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于大數(shù)據(jù)的2025年度冷藏車調(diào)度管理系統(tǒng)合同2篇
- 長沙衛(wèi)生職業(yè)學院《中國古典文獻學》2023-2024學年第一學期期末試卷
- 2025版智能建筑抹灰分項工程勞務服務協(xié)議書4篇
- 科技助力川菜館實現(xiàn)可持續(xù)發(fā)展
- 從用戶需求出發(fā)的未來酒店餐飲空間設計策略
- 小學科學課程中實踐活動的開展與問題解決
- 2025版門樓金屬卷簾門安裝與維護服務合同4篇
- 2025年度高端別墅定制設計與建造合同協(xié)議2篇
- 2024鋁質(zhì)板材市場銷售合作協(xié)議2篇
- 父母心理韌性培養(yǎng)家庭教育的關鍵要素
- 普通高中生物新課程標準
- 茉莉花-附指法鋼琴譜五線譜
- 結婚函調(diào)報告表
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設計規(guī)范-PDF解密
- 冷庫制冷負荷計算表
- 肩袖損傷護理查房
- 設備運維管理安全規(guī)范標準
- 辦文辦會辦事實務課件
- 大學宿舍人際關系
- 2023光明小升初(語文)試卷
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
評論
0/150
提交評論