




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng) 結(jié)構(gòu)和程序設(shè)計,數(shù)學(xué)與計算機學(xué)院 硬件教研室,操作系統(tǒng)編程的發(fā)展,在九十年代以前,程序員的精力集中于完成任務(wù)的過程,而不是用戶與該過程的交互方式,過去評價一個軟件的好壞往往是注意源程序的短小精悍和執(zhí)行的快速性??焖俚?、清晰的編程是許多程序員努力要達(dá)到的理想境界。Windows操作系統(tǒng)將用戶與計算機的交互方式的設(shè)計(即人機界面設(shè)計)放到了非常重要的位置。同時,Windows為不同形式的高層次交互提供了相應(yīng)的機制:應(yīng)用程序之間、操作系統(tǒng)和應(yīng)用程序之間、公共的共享代碼庫和數(shù)據(jù)庫之間。,編程語言簡史,機器語言: 以二進(jìn)制代碼“0”、“1”組成的機器指令集合; 匯編(Assembler)語言:
2、以助記符表示機器指令功能,例如,JOVIAL、forth; 高級語言:接近人類語言(英語)和數(shù)學(xué)語言的計算機語言,例如,BASIC、FORTRAN、Pascal、C、FoxBASE、ORACLE等; 進(jìn)程(Process)概念:例如,UNIX Shell、TCL、PERL和Marvel等; 面向?qū)ο蟮恼Z言:例如C+、Visual BASIC、java等; 新范例計算機語言:例如ML、Smalltalk、Eiffel等;,不同應(yīng)用領(lǐng)域的計算機語言,科學(xué)研究: 例如: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等。,結(jié)構(gòu)設(shè)計的目標(biāo),計算機操作系統(tǒng)一般都有兩種運行狀態(tài),即用戶態(tài)(user mode)和核心態(tài)(kernel mode)。計算機操作系統(tǒng)的結(jié)構(gòu)設(shè)計一般包括內(nèi)結(jié)構(gòu)和外結(jié)構(gòu)兩種結(jié)構(gòu)。傳統(tǒng)操作系統(tǒng)內(nèi)結(jié)構(gòu)是指內(nèi)部程序模塊的層次結(jié)構(gòu),每一層由若干數(shù)量不等的程序模塊組成。例如,
4、早期的UNIX操作系統(tǒng)版本,如圖所示。,結(jié)構(gòu)設(shè)計的目標(biāo),圖 傳統(tǒng)計算機操作系統(tǒng)的內(nèi)結(jié)構(gòu)(層次結(jié)構(gòu)),結(jié)構(gòu)設(shè)計的目標(biāo),當(dāng)計算機操作系統(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)有一定的特權(quán),使系統(tǒng)運行比較安全可靠。,設(shè)計目標(biāo),正確性:實現(xiàn)功能的正確性; 安全可靠性:系統(tǒng)工作穩(wěn)定,不容易被破壞,特別是用戶的不正常工作狀態(tài)不致影響系統(tǒng)垮臺; 可擴(kuò)充性和可移植性:能適應(yīng)較大范圍工作
5、的運行環(huán)境、硬件平臺的要求; 易維護(hù)性:系統(tǒng)具有的自動修補能力強。,分層原則,1、層次設(shè)計方法從兩個不同方向進(jìn)行: 1)自底向上:底層裸機經(jīng)某種軟件層的擴(kuò)充形成最終目標(biāo)系統(tǒng)即宿主系統(tǒng)(操作系統(tǒng)),由底層(0層)擴(kuò)展到N層頂端。例如,早期是先有微機硬件,再設(shè)計合適的操作系統(tǒng)。 2)自頂向下:已知目標(biāo)N層用戶要求,逐級向下進(jìn)行設(shè)計。例如,Windows的圖形控制界面。,分層原則,2、各層間僅有單向依賴關(guān)系,層間獨立,結(jié)構(gòu)清晰易懂。 一般是有序分層法,例如,上層能調(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、分塊原則 一般按功能分塊,形成簡單的相對獨立模塊,所編寫的程序模塊接口應(yīng)有比較明確的通訊規(guī)則,模塊間形成轉(zhuǎn)接、相互依賴甚至循環(huán)。 2、進(jìn)程的觀點 用進(jìn)程的觀點進(jìn)行操作系統(tǒng)設(shè)計是繼中斷概念后的又一重大突破,也就是計算機在執(zhí)行時不是以一條一條的指令為單元執(zhí)行,而是以一組特殊指令執(zhí)行。,分塊原則,3、模塊及模塊化程序設(shè)計 1)模塊及模塊化 模塊化是為了獲得使用上的靈活性和多樣性,是采用標(biāo)準(zhǔn)的可兼容的單元構(gòu)成系統(tǒng)的一種方法。 2)模塊化程序設(shè)計 模塊化程序設(shè)計是把一個大的軟件系統(tǒng)劃分為若干部分,使各部分之間的交往最少,且各自成為具有一定獨立功能的程序模塊,然后可以
7、對系統(tǒng)中每一部分單獨進(jìn)行設(shè)計。,分塊原則,4、模塊化程序設(shè)計的目的 1)使人們確信程序模塊的正確性,才能保證所構(gòu)成的大型軟件系統(tǒng)的正確性; 2)各模塊盡可能具有較大的獨立性,以便能方便地把不同場合下寫成的程序模塊組合成軟件系統(tǒng)。 5、模塊的兩個屬性和概念 1)模塊程序是相關(guān)過程的集合,通??捎脴錉羁刂屏鞒虂砻枋觯?2)每個模塊可以由它的輸入鏈路接受數(shù)據(jù),并以某種方式變換它,把所得的結(jié)果經(jīng)由它的輸出鏈路發(fā)送到其它模塊。,模塊接口法的設(shè)計步驟,1、按照結(jié)構(gòu)設(shè)計的原則,把一個大型軟件系統(tǒng),分成若干個具有一定獨立性和大小的模塊,每個模塊可以解決一部分問題或可實現(xiàn)某種功能,并規(guī)定好模塊之間的接口。這一步
8、稱為系統(tǒng)總體設(shè)計。 2、進(jìn)一步明確模塊每個模塊的內(nèi)部功能。當(dāng)模塊較大時,同樣又可將它進(jìn)一步細(xì)分為若干個子模塊。 3、當(dāng)所有的子模塊被設(shè)計出來后,按照它們的接口關(guān)系,把子模塊鏈接在一起組成一個大模塊,再鏈接這些大模塊便構(gòu)成軟件系統(tǒng)。,模塊接口法的優(yōu)缺點,1、模塊接口法的優(yōu)點 模塊接口法設(shè)計方法與非結(jié)構(gòu)設(shè)計方法比較,有如下一些優(yōu)點: 1)加速了操作系統(tǒng)的研制過程; 2)促進(jìn)操作系統(tǒng)的日益完善; 3)增加操作系統(tǒng)的靈活性。 2、模塊接口法的缺點 1)很難保證模塊設(shè)計的正確性; 2)裝配的困難性; 3)模塊相對獨立性差。,層次模塊化結(jié)構(gòu)設(shè)計的必要性,1、結(jié)構(gòu)程序設(shè)計的定義 所謂結(jié)構(gòu)程序設(shè)計是指為了使程
9、序具有一合理結(jié)構(gòu),以便于保證和驗證其正確性而規(guī)定的一套程序設(shè)計方法,或者說是“按照一組能增強程序的可閱讀性與可維護(hù)性的規(guī)則而進(jìn)行程序設(shè)計的方法”。用這種方法所設(shè)計的程序稱為結(jié)構(gòu)化程序。 2、結(jié)構(gòu)程序設(shè)計所包含的內(nèi)容 1)結(jié)構(gòu)碼; 2)逐步求精的設(shè)計方法; 3)模塊接口法; 4)有序分層法; 5)基于進(jìn)程和線程等的結(jié)構(gòu)設(shè)計。,操作系統(tǒng)的結(jié)構(gòu)模型,1、層次模型(layered modularization) 層次模塊模型包含模塊(相對獨立)化和模塊間接口定義。系統(tǒng)通常按功能劃分成一些模塊,有時模塊很小,進(jìn)一步按由下而上的順序從硬件層向上組織在若干層次上或自頂向下地組織。,操作系統(tǒng)的結(jié)構(gòu)模型,2、整
10、體內(nèi)核模型(monolithic kernel) 內(nèi)核(功能化的大模塊,內(nèi)部無進(jìn)程層)強調(diào)操作系統(tǒng)對外的整體性和友好界面。并不追求嚴(yán)格的模塊化和層次化。通常內(nèi)核在處理機的核心狀態(tài)下運行,具備各種特權(quán),而外層用戶程序運行于用戶狀態(tài)。當(dāng)用戶程序請求操作系統(tǒng)服務(wù)時,必須通過相應(yīng)的“訪管”或“捕獲”指令轉(zhuǎn)入核心態(tài),處理之后再返回用戶態(tài)。UNIX內(nèi)核為無序模塊結(jié)構(gòu),模塊間無層次概念,允許任意調(diào)用。核心雖無進(jìn)程概念,但它負(fù)責(zé)中斷處理、進(jìn)程生滅、進(jìn)程調(diào)度和進(jìn)程通訊,從而在核心以上提供了進(jìn)程的運行環(huán)境。,操作系統(tǒng)的結(jié)構(gòu)模型,3、進(jìn)程模型(process-model) 系統(tǒng)的基本模塊為進(jìn)程(一個獨立的控制流),
11、進(jìn)程這個概念是對控制流的一種抽象,因此,這種模型具有良好的并發(fā)性。除核心以外,操作系統(tǒng)的其它功能都是選擇若干進(jìn)程完成的。,操作系統(tǒng)的結(jié)構(gòu)模型,4、對象模型(object model) 面向?qū)ο蠓缎停╫bjectoriented paradigm)是以對客觀世界自然的抽象為基礎(chǔ)設(shè)計。對象(object)是對客觀事物的抽象。每個對象由界面和實體兩部分組成,界面規(guī)定其引入引出部分,實體定義狀態(tài)和操作的具體實現(xiàn)。,操作系統(tǒng)的結(jié)構(gòu)設(shè)計,1)總體設(shè)計 設(shè)計人員要把注意力集中在全局性問題上,即系統(tǒng)的功能設(shè)計和結(jié)構(gòu)設(shè)計。功能設(shè)計是確定系統(tǒng)應(yīng)具有的功能和實現(xiàn)該功能所采取的策略。以前的操作系統(tǒng)大都采用傳統(tǒng)的模塊接
12、口法,近年來有序分層法已開始流行起來,最近又提出具有吸引力的、基于線程的結(jié)構(gòu)設(shè)計方法。,操作系統(tǒng)的結(jié)構(gòu)設(shè)計,2)逐步求精 在確定操作系統(tǒng)的結(jié)構(gòu)后,便可采用逐步求精的結(jié)構(gòu)程序設(shè)計方法來進(jìn)行程序設(shè)計。這方法要求從每個問題的全局出發(fā),逐步精細(xì)化、具體化。直到成為一可在機器上執(zhí)行的程序。具體地說,首先把程序在邏輯上分解為若干子結(jié)構(gòu),對子結(jié)構(gòu)進(jìn)行描述,并確定相應(yīng)的數(shù)據(jù)基,然后再把子結(jié)構(gòu)進(jìn)行分為更小的結(jié)構(gòu),對它進(jìn)行更細(xì)微的描述。該過程一直繼續(xù)下去,直至構(gòu)成我們所需要的程序。,操作系統(tǒng)的結(jié)構(gòu)設(shè)計,3)結(jié)構(gòu)碼 在逐步求精時,應(yīng)采用單一入口和單一出口的結(jié)構(gòu)碼來構(gòu)成程序。事實上,只要有下述三種類型的結(jié)構(gòu)碼,即可構(gòu)
13、成任何程序的全部流程圖。 (a)序列結(jié)構(gòu)碼 它是完全由序列語句串在一起構(gòu)成的,一個復(fù)雜的序列結(jié)構(gòu)可分解為多個較簡單的序列結(jié)構(gòu),如:當(dāng)過程A結(jié)束后,一定執(zhí)行過程B。 (b)條件結(jié)構(gòu)碼(ifthenelse和ifthen) 它是由一個判定語句和兩個序列語句構(gòu)成,其中“條件”是布爾表達(dá)式。 (c)重復(fù)性結(jié)構(gòu)碼(whiledo;repeatuntil等) 用于循環(huán)控制,有序分層法的類型,有序分層法是在模塊接口法的基礎(chǔ)上,將模塊安置在高低不同的層次中,自底向上或子頂向下進(jìn)行設(shè)計和調(diào)試,從而把模塊間復(fù)雜的依賴關(guān)系改為單向依賴關(guān)系,把設(shè)計決定的無序性該為有序性,從而使設(shè)計具有可靠的基礎(chǔ)。有序分層結(jié)構(gòu)可分為三
14、種類型: 1)線性有序分層結(jié)構(gòu); 2)部分有序分層結(jié)構(gòu); 3)樹狀分層結(jié)構(gòu)。,操作系統(tǒng)的分層原則,1)按程序的嵌套情況排成有序的層次; 2)把活動頻繁的模塊和為很多模塊所公用的模塊放在最低軟件層,存儲器管理模塊設(shè)置在較低軟件層; 3)為獲得可移植性和可適應(yīng)性而設(shè)置的軟件層,應(yīng)分別放在較低的層次和最外層。,高層調(diào)用底層軟件的方法,在嚴(yán)格的層次結(jié)構(gòu)中,只允許高層調(diào)用底層中的軟件,決不允許底層調(diào)用高層的軟件。在高層調(diào)用底層軟件的方法有: 1)高層僅能調(diào)用它的下一層中的軟件; 2)高層能調(diào)用所有底層的軟件; 3)高層能部分地調(diào)用底層中的軟件。,微內(nèi)核(micro-kernel)結(jié)構(gòu)的概念,在層次化結(jié)構(gòu)
15、中,大部分的功能在“內(nèi)核”中執(zhí)行。隨著功能的擴(kuò)展,內(nèi)核逐漸擴(kuò)大,層次間調(diào)用設(shè)計大大影響了操作系統(tǒng)設(shè)計,功能的擴(kuò)充、移植、規(guī)模的伸縮和安全性等方面出現(xiàn)很多困難。因此產(chǎn)生了微內(nèi)核結(jié)構(gòu),只把最基本的操作系統(tǒng)核心功能放在內(nèi)核中,而把不是最基本功能的服務(wù)放在微內(nèi)核之上,在用戶模式中執(zhí)行。層次內(nèi)核和微內(nèi)核的結(jié)構(gòu)如圖,微內(nèi)核(micro-kernel)結(jié)構(gòu)的概念,(A)層次內(nèi)核,(B) 微內(nèi)核,圖 內(nèi)核結(jié)構(gòu)示意圖,微內(nèi)核結(jié)構(gòu)的特點,微內(nèi)核技術(shù)在概念、結(jié)構(gòu)、功能和實現(xiàn)等方面都與以往的操作系統(tǒng)實現(xiàn)有很大的區(qū)別。引入了許多成熟的技術(shù),例如:客戶/服務(wù)器(client/server)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、對稱多處理(
16、symmetric multiprocessing,SMP)等新技術(shù)日益實用化。一般地,內(nèi)核分為微內(nèi)核與服務(wù)器兩個層次,微內(nèi)核提供各種操作系統(tǒng)的公共基礎(chǔ),由服務(wù)器提供各種操作系統(tǒng)的子系統(tǒng)以及用戶界面。,微內(nèi)核的基本功能,微內(nèi)核的基本功能又稱為本質(zhì)功能,這些基本功能包括內(nèi)進(jìn)程通訊(inter-process communination,IPC)、虛擬存儲(virtual memory,VM)、任務(wù)(tasks)、線程(threads)管理和中斷(interrupt)處理等。,微內(nèi)核結(jié)構(gòu)的特點,1、統(tǒng)一的接口:在用戶態(tài)和核心態(tài)(微內(nèi)核)之間無需進(jìn)程識別; 2、可伸縮性好:能適應(yīng)硬件更新和應(yīng)用變化; 3、可移植性好:所有與具體機器特征相關(guān)的代碼,全部隔離在微內(nèi)核中,如果操作系統(tǒng)要移植到不同的硬件平臺上,只虛、需修改微內(nèi)核中極少代碼即可; 4、實時性好:微內(nèi)核可以方便地支持實時處
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度工傷事故賠償補償爭議解決協(xié)議
- 二零二五年度新能源汽車買賣合同分期付款協(xié)議
- 二零二五年度魚塘承包與漁業(yè)多元化經(jīng)營合作協(xié)議
- 二零二五年度新能源研發(fā)合作合伙人協(xié)議書
- 2025年度退房協(xié)議書規(guī)范范本
- 二零二五年度新型購物積分制合作協(xié)議合同
- 二零二五年度房屋租賃市場租金評估合同
- 2025年度離婚子女撫養(yǎng)權(quán)及財產(chǎn)分割協(xié)議書
- 二零二五年度定制木門研發(fā)創(chuàng)新與技術(shù)轉(zhuǎn)移合同
- 二零二五年度房產(chǎn)中介與員工簽訂的業(yè)績目標(biāo)與獎懲制度合同
- 2025年深圳市高三一模英語試卷答案詳解講評課件
- 2025年黑龍江民族職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫一套
- 年產(chǎn)60萬噸摻混肥項目可行性研究報告申請立項
- 2025年2月《公共安全視頻圖像信息系統(tǒng)管理條例》學(xué)習(xí)解讀課件
- 山東省聊城市冠縣2024-2025學(xué)年八年級上學(xué)期期末地理試卷(含答案)
- 2025年江蘇省中職《英語》學(xué)業(yè)水平考試高頻必練考試題庫400題(含答案)
- 敲響酒駕警鐘堅決杜絕酒駕課件
- 2025年濰坊工程職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年濟(jì)寧職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年江西青年職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
評論
0/150
提交評論