資源簡介 計算機操作系統千鋒教研院·索爾誰 壹 好學敢 零 的不像爭 陣 實力派鋒 矩R&D incubation -BaseThe Best R&D Courses操作系統的目標和作用操作系統的目標與應用環境有關。例如在查詢系統中所用的OS,希望能提供良好的人—機交互性;對于應用于工業控制、武器控制以及多媒體環境下的OS,要求其具有實時性;而對于微機上配置的OS,則更看重的是其使用的方便性。The Best R&D Courses操作系統的目標和作用操作系統的目標 1. 方便性 2. 有效性 3. 可擴充性 4. 開放性The Best R&D Courses操作系統的目標和作用OS作為接口的示意圖The Best R&D CoursesOS作為計算機系統資源的管理者在一個計算機系統中,通常都含有多種硬件和軟件資源。歸納起來可將這些資源分為四類:處理機、存儲器、I/O設備以及文件(數據和程序)。相應地,OS的主要功能也正是對這四類資源進行有效的管理。處理機管理是用于分配和控制處理機;存儲器管理主要負責內存的分配與回收;I/O設備管理是負責I/O設備的分配(回收)與操縱;文件管理是用于實現對文件的存取、共享和保護。可見,OS的確是計算機系統資源的管理者。The Best R&D CoursesOS實現了對計算機資源的抽象對于一臺完全無軟件的計算機系統(即裸機),由于它向用戶提供的僅是硬件接口(物理接口),因此,用戶必須對物理接口的實現細節有充分的了解,這就致使該物理機器難于廣泛使用。為了方便用戶使用I/O設備,人們在裸機上覆蓋上一層I/O設備管理軟件,如圖1-2所示,由它來實現對I/O設備操作的細節,并向上將I/O設備抽象為一組數據結構以及一組I/O操作命令,如read和write命令,這樣用戶即可利用這些數據結構及操作命令來進行數據輸入或輸出,而無需關心I/O是如何具體實現的。The Best R&D CoursesI/O軟件隱藏了I/O操作實現的細節The Best R&D Courses操作系統引論推動操作系統發展的主要動力 1. 不斷提高計算機資源利用率 2. 方便用戶 3. 器件的不斷更新換代 4. 計算機體系結構的不斷發展 5. 不斷提出新的應用需求The Best R&D Courses操作系統的發展過程1.2.1 未配置操作系統的計算機系統1. 人工操作方式 早期的操作方式是由程序員將事先已穿孔的紙帶(或卡片),裝入紙帶輸入機(或卡片輸入機),再啟動它們將紙帶(或卡片)上的程序和數據輸入計算機,然后啟動計算機運行。僅當程序運行完畢并取走計算結果后,才允許下一個用戶上機。這種人工操作方式有以下兩方面的缺點: (1) 用戶獨占全機,即一臺計算機的全部資源由上機用戶所獨占。 (2) CPU等待人工操作。當用戶進行裝帶(卡)、卸帶(卡)等人工操作時,CPU及內存等資源是空閑的。The Best R&D CoursesThe Best R&D Courses操作系統的發展過程2. 脫機輸入/輸出(Off-Line I/O)方式 為了解決人機矛盾及CPU和I/O設備之間速度不匹配的矛盾,20世紀50年代末出現了脫機I/O技術。該技術是事先將裝有用戶程序和數據的紙帶裝入紙帶輸入機,在一臺外圍機的控制下,把紙帶(卡片)上的數據(程序)輸入到磁帶上。當CPU需要這些程序和數據時,再從磁帶上高速地調入內存。外圍機把程序提前存到磁帶里The Best R&D Courses操作系統的發展過程1.2.2 單道批處理系統 1. 單道批處理系統(Simple Batch Processing System)的處理過程 為實現對作業的連續處理,需要先把一批作業以脫機方式輸入到磁帶上,并在系統中配上監督程序(Monitor),在它的控制下,使這批作業能一個接一個地連續處理。The Best R&D Courses操作系統的發展過程2. 單道批處理系統的缺點 單道批處理系統最主要的缺點是,系統中的資源得不到充分的利用。這是因為在內存中僅有一道程序,每逢該程序在運行中發出I/O請求后,CPU便處于等待狀態,必須在其I/O完成后才繼續運行。又因I/O設備的低速性,更使CPU的利用率顯著降低。下圖顯示出了單道程序的運行情況,從圖可以看出:在t2~t3、t6~t7時間間隔內CPU空閑。The Best R&D Courses操作系統的發展過程1.2.3 多道批處理系統(Multiprogrammed Batch Processing System) 1. 多道程序設計的基本概念 為了進一步提高資源的利用率和系統吞吐量,在20世紀60年代中期引入了多道程序設計技術,由此形成了多道批處理系統。The Best R&D Courses操作系統的發展過程2. 多道批處理系統的優缺點 多道批處理系統的優缺點如下: (1) 資源利用率高。引入多道批處理能使多道程序交替運行,以保持CPU處于忙碌狀態;在內存中裝入多道程序可提高內存的利用率;此外還可以提高I/O設備的利用率。 (2) 系統吞吐量大。能提高系統吞吐量的主要原因可歸結為:① CPU和其它資源保持“忙碌”狀態;② 僅當作業完成時或運行不下去時才進行切換,系統開銷小。 (3) 平均周轉時間長。由于作業要排隊依次進行處理,因而作業的周轉時間較長,通常需幾個小時,甚至幾天。 (4) 無交互能力。用戶一旦把作業提交給系統后,直至作業完成,用戶都不能與自己的作業進行交互,修改和調試程序極不方便。The Best R&D Courses操作系統的發展過程 3. 多道批處理系統需要解決的問題 多道批處理系統是一種十分有效,但又非常復雜的系統,為使系統中的多道程序間能協調地運行,系統必須解決下述一系列問題: (1) 處理機爭用問題。既要能滿足各道程序運行的需要,又要能提高處理機的利用率。 (2) 內存分配和保護問題。系統應能為每道程序分配必要的內存空間,使它們“各得其所”,且不會因某道程序出現異常情況而破壞其它程序。 (3) I/O設備分配問題。系統應采取適當的策略來分配系統中的I/O設備,以達到既能方便用戶對設備的使用,又能提高設備利用率的目的The Best R&D Courses操作系統的發展過程 (4) 文件的組織和管理問題。系統應能有效地組織存放在系統中的大量的程序和數據,使它們既便于用戶使用,又能保證數據的安全性。 (5) 作業管理問題。系統中存在著各種作業(應用程序),系統應能對系統中所有的作業進行合理的組織,以滿足這些作業用戶的不同要求。 (6) 用戶與系統的接口問題。為使用戶能方便的使用操作系統,OS還應提供用戶與OS之間的接口。The Best R&D Courses操作系統的發展過程1.2.4 分時系統(Time Sharing System) 1. 分時系統的引入 如果說推動多道批處理系統形成和發展的主要動力是提高資源利用率和系統吞吐量,那么,推動分時系統形成和發展的主要動力,則是為了滿足用戶對人—機交互的需求,由此形成了一種新型OS。用戶的需求具體表現在以下幾個方面: (1) 人—機交互。 (2) 共享主機。The Best R&D Courses操作系統的發展過程 2. 分時系統實現中的關鍵問題 在多道批處理系統中,用戶無法與自己的作業進行交互的主要原因是:作業都先駐留在外存上,即使以后被調入內存,也要經過較長時間的等待后方能運行,用戶無法與自己的作業進行交互。 1) 及時接收 2) 及時處理The Best R&D Courses操作系統的發展過程 3. 分時系統的特征 分時系統與多道批處理系統相比,具有非常明顯的不同特性,可以歸納成以下四個方面: (1) 多路性。 (2) 獨立性。 (3) 及時性。 (4) 交互性。The Best R&D Courses操作系統的發展過程1.2.5 實時系統(Real Time System) 1. 實時系統的類型 隨著計算機應用的普及,實時系統的類型也相應增多,下面列出當前常見的幾種: (1) 工業(武器)控制系統。 (2) 信息查詢系統。 (3) 多媒體系統。 (4) 嵌入式系統。The Best R&D Courses操作系統的發展過程 2. 實時任務的類型 (1) 周期性實時任務和非周期性實時任務。 (2) 硬實時任務和軟實時任務。The Best R&D Courses操作系統的發展過程 3. 實時系統與分時系統特征的比較 (1) 多路性。 (2) 獨立性。 (3) 及時性。 (4) 交互性。 (5) 可靠性。The Best R&D Courses操作系統的基本特性1.3 操作系統的基本特性 前面所介紹的多道批處理系統、分時系統和實時系統這三種基本操作系統都具有各自不同的特征,如批處理系統有著高的資源利用率和系統吞吐量;分時系統能獲得及時響應;實時系統具有實時特征。除此之外,它們還共同具有并發、共享、虛擬和異步四個基本特征。The Best R&D Courses操作系統的基本特性1.3.1 并發(Concurrence) 正是系統中的程序能并發執行這一特征,才使得OS能有效地提高系統中的資源利用率,增加系統的吞吐量。 1. 并行與并發 并行性和并發性是既相似又有區別的兩個概念。并行性是指兩個或多個事件在同一時刻發生。而并發性是指兩個或多個事件在同一時間間隔內發生。The Best R&D Courses操作系統的基本特性 2. 引入進程 在一個未引入進程的系統中,在屬于同一個應用程序的計算程序和I/O程序之間只能是順序執行,即只有在計算程序執行告一段落后,才允許I/O程序執行;反之,在程序執行I/O操作時,計算程序也不能執行。但在為計算程序和I/O程序分別建立一個進程(Process)后,這兩個進程便可并發執行。若對內存中的多個程序都分別建立一個進程,它們就可以并發執行,這樣便能極大地提高系統資源的利用率,增加系統的吞吐量。The Best R&D Courses操作系統的基本特性1.3.2 共享(Sharing) 一般情況下的共享與操作系統環境下的共享其含義并不完全相同。 1. 互斥共享方式 系統中的某些資源,如打印機、磁帶機等,雖然可以提供給多個進程(線程)使用,但應規定在一段時間內,只允許一個進程訪問該資源。為此,在系統中應建立一種機制,以保證多個進程對這類資源的互斥訪問。The Best R&D Courses操作系統的基本特性 2. 同時訪問方式 系統中還有另一類資源,允許在一段時間內由多個進程“同時”對它們進行訪問。這里所謂的“同時”,在單處理機環境下是宏觀意義上的,而在微觀上,這些進程對該資源的訪問是交替進行的。典型的可供多個進程“同時”訪問的資源是磁盤設備。一些用重入碼編寫的文件也可以被“同時”共享,即允許若干個用戶同時訪問該文件。The Best R&D Courses操作系統的基本特性1.3.3 虛擬(Virtual) 1. 時分復用技術 (1) 虛擬處理機技術。 (2) 虛擬設備技術。The Best R&D Courses操作系統的基本特性 2. 空分復用技術 20世紀初,電信業中就已使用頻分復用技術來提高信道的利用率。它是指將一個頻率范圍比較寬的信道劃分成多個頻率范圍較窄的信道(稱為頻帶),其中的任何一個頻帶都僅供一對用戶通話。早期的頻分復用技術只能將一條物理信道劃分為幾條到幾十條話路,后來又很快發展到成千上萬條話路,每條話路供一對用戶通話。再后來在計算機中也把空分復用技術用于對存儲空間的管理,用以提高存儲空間的利用率。The Best R&D Courses操作系統的基本特性1.3.4 異步(Asynchronism) 在多道程序環境下,系統允許多個進程并發執行。在單處理機環境下,由于系統中只有一臺處理機,因而每次只允許一個進程執行,其余進程只能等待。當正在執行的進程提出某種資源要求時,如打印請求,而此時打印機正在為其它進程打印,由于打印機屬于臨界資源,因此正在執行的進程必須等待,并釋放出處理機,直到打印機空閑,并再次獲得處理機時,該進程方能繼續執行。可見,由于資源等因素的限制,使進程的執行通常都不可能“一氣呵成”,而是以“停停走走”的方式運行。The Best R&D CoursesOS結構設計早期OS的規模很小,如只有幾十KB,完全可以由一個人以手工方式,用幾個月的時間編制出來。此時,編制程序基本上是一種技巧,OS是否是有結構的并不那么重要,重要的是程序員的程序設計技巧。但隨著OS規模的愈來愈大,其所具有的代碼也愈來愈多,往往需要由數十人或數百人甚至更多的人參與,分工合作,共同來完成操作系統的設計。這意味著,應采用工程化的開發方法對大型軟件進行開發。由此產生了“軟件工程學”The Best R&D CoursesOS結構設計1.5.1 傳統操作系統結構 1. 無結構操作系統 在早期開發操作系統時,設計者只是把他的注意力放在功能的實現和獲得高的效率上,缺乏首尾一致的設計思想。此時的OS是為數眾多的一組過程的集合,每個過程可以任意地相互調用其它過程,致使操作系統內部既復雜又混亂,因此,這種OS是無結構的,也有人把它稱為整體系統結構。The Best R&D CoursesOS結構設計2. 模塊化結構OS 1) 模塊化程序設計技術的基本概念 模塊化程序設計技術是20世紀60年代出現的一種結構化程序設計技術。該技術基于“分解”和“模塊化”的原則來控制大型軟件的復雜度。為使OS具有較清晰的結構,OS不再是由眾多的過程直接構成的,而是按其功能精心地劃分為若干個具有一定獨立性和大小的模塊。右圖示出了由模塊、子模塊等組成的模塊化OS結構。The Best R&D CoursesOS結構設計 2) 模塊獨立性 在模塊-接口法中,關鍵問題是模塊的劃分和規定好模塊之間的接口。如果我們在劃分模塊時將模塊劃分得太小,雖然可以降低模塊本身的復雜性,但會引起模塊之間的聯系過多,從而會造成系統比較混亂;如果將模塊劃分得過大,又會增加模塊內部的復雜性,使內部的聯系增加,因此在劃分模塊時,應在兩者間進行權衡。The Best R&D CoursesOS結構設計 3) 模塊接口法的優缺點 利用模塊-接口法開發的OS,較之無結構OS具有以下明顯的優點: (1) 提高OS設計的正確性、可理解性和可維護性。 (2) 增強OS的可適應性。 (3) 加速OS的開發過程。The Best R&D CoursesOS結構設計 模塊化結構設計仍存在下述問題: (1) 在OS設計時,對各模塊間的接口規定很難滿足在模塊設計完成后對接口的實際需求。 (2) 在OS設計階段,設計者必須做出一系列的決定(決策),每一個決定必須建立在上一個決定的基礎上,但模塊化結構設計中,各模塊的設計齊頭并進,無法尋找一個可靠的決定順序,造成各種決定的“無序性”,這將使程序人員很難做到“設計中的每一步決定”都是建立在可靠的基礎上,因此模塊-接口法又被稱為“無序模塊法”。The Best R&D CoursesOS結構設計 3. 分層式結構OS 1) 分層式結構的基本概念 為了將模塊-接口法中“決定順序”的無序性變為有序性,引入了有序分層法,分層法的設計任務是,在目標系統An和裸機系統(又稱宿主系統)A0之間,鋪設若干個層次的軟件A1、A2、A3、…、An-1,使An通過An-1、An-2、…、A2、A1層,最終能在A0上運行。在操作系統中,常采用自底向上法來鋪設這些中間層。The Best R&D CoursesOS結構設計 2) 分層結構的優缺點 分層結構的主要優點有: (1) 易保證系統的正確性。 (2) 易擴充和易維護性。 分層結構的主要缺點是系統效率降低。由于層次結構是分層單向依賴的,必須在每層之間都建立層次間的通信機制,OS每執行一個功能,通常要自上而下地穿越多個層次,這無疑會增加系統的通信開銷,從而導致系統效率的降低。The Best R&D CoursesOS結構設計1.5.4 微內核OS結構 1. 微內核操作系統的基本概念 1) 足夠小的內核 在微內核操作系統中,內核是指精心設計的、能實現現代OS最基本核心功能的小型內核,微內核并非是一個完整的OS,而只是將操作系統中最基本的部分放入微內核,通常包含有:① 與硬件處理緊密相關的部分;② 一些較基本的功能;③客戶和服務器之間的通信。這些OS最基本的部分只是為構建通用OS提供一個重要基礎,這樣就可以確保把操作系統內核做得很小。The Best R&D CoursesOS結構設計 2) 基于客戶/服務器模式 由于客戶/服務器模式具有非常多的優點,故在單機微內核操作系統中幾乎無一例外地都采用客戶/服務器模式,將操作系統中最基本的部分放入內核中,而把操作系統的絕大部分功能都放在微內核外面的一組服務器(進程)中實現,如用于提供對進程(線程)進行管理的進程(線程)服務器、提供虛擬存儲器管理功能的虛擬存儲器服務器、提供I/O設備管理的I/O設備管理服務器等,它們都是被作為進程來實現的,運行在用戶態,客戶與服務器之間是借助微內核提供的消息傳遞機制來實現信息交互的。下圖示出了在單機環境下的客戶/服務器模式。The Best R&D CoursesOS結構設計 3) 應用“機制與策略分離”原理 在現在操作系統的結構設計中,經常利用“機制與策略分離”的原理來構造OS結構。所謂機制,是指實現某一功能的具體執行機構。而策略,則是在機制的基礎上借助于某些參數和算法來實現該功能的優化,或達到不同的功能目標。The Best R&D CoursesOS結構設計 4) 采用面向對象技術 操作系統是一個極其復雜的大型軟件系統,我們不僅可以通過結構設計來分解操作系統的復雜度,還可以基于面向對象技術中的“抽象”和“隱蔽”原則控制系統的復雜性,再進一步利用“對象”、“封裝”和“繼承”等概念來確保操作系統的“正確性”、“可靠性”、“易修改性”、“易擴展性”等,并提高操作系統的設計速度。正因為面向對象技術能帶來如此多的好處,故面向對象技術被廣泛應用于現代操作系統的設計中。The Best R&D CoursesOS結構設計 2. 微內核的基本功能 微內核應具有哪些功能,或者說哪些功能應放在微內核內,哪些應放在微內核外,目前尚無明確的規定。現在一般都采用“機制與策略分離”的原理,將機制部分以及與硬件緊密相關的部分放入微內核中。由此可知微內核通常具有如下幾方面的功能: 1) 進程(線程)管理 2) 低級存儲器管理 3) 中斷和陷入處理The Best R&D CoursesOS結構設計 3. 微內核操作系統的優點 由于微內核OS結構是建立在模塊化、層次化結構的基礎上的,并采用了客戶/服務器模式和面向對象的程序設計技術,因此,微內核結構的操作系統是集各種技術優點之大成,因而使之具有如下優點: (1) 提高了系統的可擴展性。 (2) 增強了系統的可靠性。 (3) 可移植性強。 (4) 提供了對分布式系統的支持。 (5) 融入了面向對象技術。The Best R&D CoursesOS結構設計 4. 微內核操作系統存在的問題 應當指出,在微內核操作系統中,由于采用了非常小的內核,客戶/服務器模式和消息傳遞機制雖給微內核操作系統帶來了許多優點,但由此也使微內核OS存在著潛在缺點,其中最主要的是,較之早期的操作系統,微內核操作系統的運行效率有所降低。 實際情況是往往還會引起更多的上下文切換。例如,當某個服務器自身尚無能力完成客戶請求而需要其它服務器的幫助時,如圖1-12所示,其中的文件服務器還需要磁盤服務器的幫助,這時就需要進行8次上下文的切換。The Best R&D CoursesOS結構設計 4. 微內核操作系統存在的問題 應當指出,在微內核操作系統中,由于采用了非常小的內核,客戶/服務器模式和消息傳遞機制雖給微內核操作系統帶來了許多優點,但由此也使微內核OS存在著潛在缺點,其中最主要的是,較之早期的操作系統,微內核操作系統的運行效率有所降低。 實際情況是往往還會引起更多的上下文切換。例如,當某個服務器自身尚無能力完成客戶請求而需要其它服務器的幫助時,右圖所示,其中的文件服務器還需要磁盤服務器的幫助,這時就需要進行8次上下文的切換。The Best R&D Courses 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫