操作系統(tǒng)結構和程序設計.ppt_第1頁
操作系統(tǒng)結構和程序設計.ppt_第2頁
操作系統(tǒng)結構和程序設計.ppt_第3頁
操作系統(tǒng)結構和程序設計.ppt_第4頁
操作系統(tǒng)結構和程序設計.ppt_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、操作系統(tǒng) 結構和程序設計,數(shù)學與計算機學院 硬件教研室,操作系統(tǒng)編程的發(fā)展,在九十年代以前,程序員的精力集中于完成任務的過程,而不是用戶與該過程的交互方式,過去評價一個軟件的好壞往往是注意源程序的短小精悍和執(zhí)行的快速性。快速的、清晰的編程是許多程序員努力要達到的理想境界。Windows操作系統(tǒng)將用戶與計算機的交互方式的設計(即人機界面設計)放到了非常重要的位置。同時,Windows為不同形式的高層次交互提供了相應的機制:應用程序之間、操作系統(tǒng)和應用程序之間、公共的共享代碼庫和數(shù)據(jù)庫之間。,編程語言簡史,機器語言: 以二進制代碼“0”、“1”組成的機器指令集合; 匯編(Assembler)語言:

2、以助記符表示機器指令功能,例如,JOVIAL、forth; 高級語言:接近人類語言(英語)和數(shù)學語言的計算機語言,例如,BASIC、FORTRAN、Pascal、C、FoxBASE、ORACLE等; 進程(Process)概念:例如,UNIX Shell、TCL、PERL和Marvel等; 面向?qū)ο蟮恼Z言:例如C+、Visual BASIC、java等; 新范例計算機語言:例如ML、Smalltalk、Eiffel等;,不同應用領域的計算機語言,科學研究: 例如:FORTRAN、ALGOL、BASIC、APL、Pascal、C、C+、AUTOCAD等; 商業(yè): 例如:COBOL、C、PL/I、

3、4GLs、和spreadsheet等; 系統(tǒng): 例如:Assembler、JOVIAL、Forth、C、C+、Ada、java等; 出版: 例如:TeX、Postscript、word、WPS、和processing等; 人工智能(AI,artificial intelligence): 例如:LISP、SNOBOL和Prolog等。,結構設計的目標,計算機操作系統(tǒng)一般都有兩種運行狀態(tài),即用戶態(tài)(user mode)和核心態(tài)(kernel mode)。計算機操作系統(tǒng)的結構設計一般包括內(nèi)結構和外結構兩種結構。傳統(tǒng)操作系統(tǒng)內(nèi)結構是指內(nèi)部程序模塊的層次結構,每一層由若干數(shù)量不等的程序模塊組成。例如,

4、早期的UNIX操作系統(tǒng)版本,如圖所示。,結構設計的目標,圖 傳統(tǒng)計算機操作系統(tǒng)的內(nèi)結構(層次結構),結構設計的目標,當計算機操作系統(tǒng)內(nèi)的程序模塊運行時,機器處于核心態(tài),其它程序運行時,機器處于用戶態(tài),包括操作系統(tǒng)以外的其它系統(tǒng)程序與用戶程序一樣,都是運行在用戶態(tài)下而不是運行在核心態(tài)下,而可以統(tǒng)稱為用戶態(tài)程序,因而用戶程序僅是用戶態(tài)程序中的一部分。區(qū)分用戶態(tài)和核心態(tài)兩種運行狀態(tài),其目的是使操作系統(tǒng)有一定的特權,使系統(tǒng)運行比較安全可靠。,設計目標,正確性:實現(xiàn)功能的正確性; 安全可靠性:系統(tǒng)工作穩(wěn)定,不容易被破壞,特別是用戶的不正常工作狀態(tài)不致影響系統(tǒng)垮臺; 可擴充性和可移植性:能適應較大范圍工作

5、的運行環(huán)境、硬件平臺的要求; 易維護性:系統(tǒng)具有的自動修補能力強。,分層原則,1、層次設計方法從兩個不同方向進行: 1)自底向上:底層裸機經(jīng)某種軟件層的擴充形成最終目標系統(tǒng)即宿主系統(tǒng)(操作系統(tǒng)),由底層(0層)擴展到N層頂端。例如,早期是先有微機硬件,再設計合適的操作系統(tǒng)。 2)自頂向下:已知目標N層用戶要求,逐級向下進行設計。例如,Windows的圖形控制界面。,分層原則,2、各層間僅有單向依賴關系,層間獨立,結構清晰易懂。 一般是有序分層法,例如,上層能調(diào)用下層,下層不能調(diào)用上層;外層能調(diào)用內(nèi)層,內(nèi)層不能調(diào)用外層,避免產(chǎn)生環(huán)路等。其中又可分為: 1)半序:允許同一層互相調(diào)用。 2)全序:不

6、允許同一層內(nèi)互相調(diào)用。,分塊原則,1、分塊原則 一般按功能分塊,形成簡單的相對獨立模塊,所編寫的程序模塊接口應有比較明確的通訊規(guī)則,模塊間形成轉(zhuǎn)接、相互依賴甚至循環(huán)。 2、進程的觀點 用進程的觀點進行操作系統(tǒng)設計是繼中斷概念后的又一重大突破,也就是計算機在執(zhí)行時不是以一條一條的指令為單元執(zhí)行,而是以一組特殊指令執(zhí)行。,分塊原則,3、模塊及模塊化程序設計 1)模塊及模塊化 模塊化是為了獲得使用上的靈活性和多樣性,是采用標準的可兼容的單元構成系統(tǒng)的一種方法。 2)模塊化程序設計 模塊化程序設計是把一個大的軟件系統(tǒng)劃分為若干部分,使各部分之間的交往最少,且各自成為具有一定獨立功能的程序模塊,然后可以

7、對系統(tǒng)中每一部分單獨進行設計。,分塊原則,4、模塊化程序設計的目的 1)使人們確信程序模塊的正確性,才能保證所構成的大型軟件系統(tǒng)的正確性; 2)各模塊盡可能具有較大的獨立性,以便能方便地把不同場合下寫成的程序模塊組合成軟件系統(tǒng)。 5、模塊的兩個屬性和概念 1)模塊程序是相關過程的集合,通??捎脴錉羁刂屏鞒虂砻枋觯?2)每個模塊可以由它的輸入鏈路接受數(shù)據(jù),并以某種方式變換它,把所得的結果經(jīng)由它的輸出鏈路發(fā)送到其它模塊。,模塊接口法的設計步驟,1、按照結構設計的原則,把一個大型軟件系統(tǒng),分成若干個具有一定獨立性和大小的模塊,每個模塊可以解決一部分問題或可實現(xiàn)某種功能,并規(guī)定好模塊之間的接口。這一步

8、稱為系統(tǒng)總體設計。 2、進一步明確模塊每個模塊的內(nèi)部功能。當模塊較大時,同樣又可將它進一步細分為若干個子模塊。 3、當所有的子模塊被設計出來后,按照它們的接口關系,把子模塊鏈接在一起組成一個大模塊,再鏈接這些大模塊便構成軟件系統(tǒng)。,模塊接口法的優(yōu)缺點,1、模塊接口法的優(yōu)點 模塊接口法設計方法與非結構設計方法比較,有如下一些優(yōu)點: 1)加速了操作系統(tǒng)的研制過程; 2)促進操作系統(tǒng)的日益完善; 3)增加操作系統(tǒng)的靈活性。 2、模塊接口法的缺點 1)很難保證模塊設計的正確性; 2)裝配的困難性; 3)模塊相對獨立性差。,層次模塊化結構設計的必要性,1、結構程序設計的定義 所謂結構程序設計是指為了使程

9、序具有一合理結構,以便于保證和驗證其正確性而規(guī)定的一套程序設計方法,或者說是“按照一組能增強程序的可閱讀性與可維護性的規(guī)則而進行程序設計的方法”。用這種方法所設計的程序稱為結構化程序。 2、結構程序設計所包含的內(nèi)容 1)結構碼; 2)逐步求精的設計方法; 3)模塊接口法; 4)有序分層法; 5)基于進程和線程等的結構設計。,操作系統(tǒng)的結構模型,1、層次模型(layered modularization) 層次模塊模型包含模塊(相對獨立)化和模塊間接口定義。系統(tǒng)通常按功能劃分成一些模塊,有時模塊很小,進一步按由下而上的順序從硬件層向上組織在若干層次上或自頂向下地組織。,操作系統(tǒng)的結構模型,2、整

10、體內(nèi)核模型(monolithic kernel) 內(nèi)核(功能化的大模塊,內(nèi)部無進程層)強調(diào)操作系統(tǒng)對外的整體性和友好界面。并不追求嚴格的模塊化和層次化。通常內(nèi)核在處理機的核心狀態(tài)下運行,具備各種特權,而外層用戶程序運行于用戶狀態(tài)。當用戶程序請求操作系統(tǒng)服務時,必須通過相應的“訪管”或“捕獲”指令轉(zhuǎn)入核心態(tài),處理之后再返回用戶態(tài)。UNIX內(nèi)核為無序模塊結構,模塊間無層次概念,允許任意調(diào)用。核心雖無進程概念,但它負責中斷處理、進程生滅、進程調(diào)度和進程通訊,從而在核心以上提供了進程的運行環(huán)境。,操作系統(tǒng)的結構模型,3、進程模型(process-model) 系統(tǒng)的基本模塊為進程(一個獨立的控制流),

11、進程這個概念是對控制流的一種抽象,因此,這種模型具有良好的并發(fā)性。除核心以外,操作系統(tǒng)的其它功能都是選擇若干進程完成的。,操作系統(tǒng)的結構模型,4、對象模型(object model) 面向?qū)ο蠓缎停╫bjectoriented paradigm)是以對客觀世界自然的抽象為基礎設計。對象(object)是對客觀事物的抽象。每個對象由界面和實體兩部分組成,界面規(guī)定其引入引出部分,實體定義狀態(tài)和操作的具體實現(xiàn)。,操作系統(tǒng)的結構設計,1)總體設計 設計人員要把注意力集中在全局性問題上,即系統(tǒng)的功能設計和結構設計。功能設計是確定系統(tǒng)應具有的功能和實現(xiàn)該功能所采取的策略。以前的操作系統(tǒng)大都采用傳統(tǒng)的模塊接

12、口法,近年來有序分層法已開始流行起來,最近又提出具有吸引力的、基于線程的結構設計方法。,操作系統(tǒng)的結構設計,2)逐步求精 在確定操作系統(tǒng)的結構后,便可采用逐步求精的結構程序設計方法來進行程序設計。這方法要求從每個問題的全局出發(fā),逐步精細化、具體化。直到成為一可在機器上執(zhí)行的程序。具體地說,首先把程序在邏輯上分解為若干子結構,對子結構進行描述,并確定相應的數(shù)據(jù)基,然后再把子結構進行分為更小的結構,對它進行更細微的描述。該過程一直繼續(xù)下去,直至構成我們所需要的程序。,操作系統(tǒng)的結構設計,3)結構碼 在逐步求精時,應采用單一入口和單一出口的結構碼來構成程序。事實上,只要有下述三種類型的結構碼,即可構

13、成任何程序的全部流程圖。 (a)序列結構碼 它是完全由序列語句串在一起構成的,一個復雜的序列結構可分解為多個較簡單的序列結構,如:當過程A結束后,一定執(zhí)行過程B。 (b)條件結構碼(ifthenelse和ifthen) 它是由一個判定語句和兩個序列語句構成,其中“條件”是布爾表達式。 (c)重復性結構碼(whiledo;repeatuntil等) 用于循環(huán)控制,有序分層法的類型,有序分層法是在模塊接口法的基礎上,將模塊安置在高低不同的層次中,自底向上或子頂向下進行設計和調(diào)試,從而把模塊間復雜的依賴關系改為單向依賴關系,把設計決定的無序性該為有序性,從而使設計具有可靠的基礎。有序分層結構可分為三

14、種類型: 1)線性有序分層結構; 2)部分有序分層結構; 3)樹狀分層結構。,操作系統(tǒng)的分層原則,1)按程序的嵌套情況排成有序的層次; 2)把活動頻繁的模塊和為很多模塊所公用的模塊放在最低軟件層,存儲器管理模塊設置在較低軟件層; 3)為獲得可移植性和可適應性而設置的軟件層,應分別放在較低的層次和最外層。,高層調(diào)用底層軟件的方法,在嚴格的層次結構中,只允許高層調(diào)用底層中的軟件,決不允許底層調(diào)用高層的軟件。在高層調(diào)用底層軟件的方法有: 1)高層僅能調(diào)用它的下一層中的軟件; 2)高層能調(diào)用所有底層的軟件; 3)高層能部分地調(diào)用底層中的軟件。,微內(nèi)核(micro-kernel)結構的概念,在層次化結構

15、中,大部分的功能在“內(nèi)核”中執(zhí)行。隨著功能的擴展,內(nèi)核逐漸擴大,層次間調(diào)用設計大大影響了操作系統(tǒng)設計,功能的擴充、移植、規(guī)模的伸縮和安全性等方面出現(xiàn)很多困難。因此產(chǎn)生了微內(nèi)核結構,只把最基本的操作系統(tǒng)核心功能放在內(nèi)核中,而把不是最基本功能的服務放在微內(nèi)核之上,在用戶模式中執(zhí)行。層次內(nèi)核和微內(nèi)核的結構如圖,微內(nèi)核(micro-kernel)結構的概念,(A)層次內(nèi)核,(B) 微內(nèi)核,圖 內(nèi)核結構示意圖,微內(nèi)核結構的特點,微內(nèi)核技術在概念、結構、功能和實現(xiàn)等方面都與以往的操作系統(tǒng)實現(xiàn)有很大的區(qū)別。引入了許多成熟的技術,例如:客戶/服務器(client/server)結構、面向?qū)ο蠹夹g、對稱多處理(

16、symmetric multiprocessing,SMP)等新技術日益實用化。一般地,內(nèi)核分為微內(nèi)核與服務器兩個層次,微內(nèi)核提供各種操作系統(tǒng)的公共基礎,由服務器提供各種操作系統(tǒng)的子系統(tǒng)以及用戶界面。,微內(nèi)核的基本功能,微內(nèi)核的基本功能又稱為本質(zhì)功能,這些基本功能包括內(nèi)進程通訊(inter-process communination,IPC)、虛擬存儲(virtual memory,VM)、任務(tasks)、線程(threads)管理和中斷(interrupt)處理等。,微內(nèi)核結構的特點,1、統(tǒng)一的接口:在用戶態(tài)和核心態(tài)(微內(nèi)核)之間無需進程識別; 2、可伸縮性好:能適應硬件更新和應用變化; 3、可移植性好:所有與具體機器特征相關的代碼,全部隔離在微內(nèi)核中,如果操作系統(tǒng)要移植到不同的硬件平臺上,只虛、需修改微內(nèi)核中極少代碼即可; 4、實時性好:微內(nèi)核可以方便地支持實時處

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論