版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2010軟件技術(shù)基礎(chǔ)復(fù)習(xí)課1/1001/100程序與軟件程序是計(jì)算機(jī)指令的序列,是一個(gè)用計(jì)算機(jī)語言描述的某一問題的解決步驟。這些指令非常簡(jiǎn)單(簡(jiǎn)單的四則運(yùn)算、邏輯運(yùn)算、數(shù)據(jù)傳送和跳轉(zhuǎn)指令)但它們的組合卻能完成非常復(fù)雜的任務(wù)。程序還有一個(gè)更為廣義的性質(zhì),它是信息。我們知道信息只有大小而無形狀,信息可用多種媒體(聲、文、圖)表示,信息的傳遞總要借助某種介質(zhì)(媒體)。信息作為商品要以有形的介質(zhì)作為載體進(jìn)行交易,故稱軟件(Software)。軟件是計(jì)算機(jī)程序,方法,規(guī)則,相關(guān)的文檔以及在計(jì)算機(jī)上運(yùn)行它時(shí)所必需的數(shù)據(jù)。1/100程序的特性程序的靜態(tài)與動(dòng)態(tài)屬性–程序的表示是靜態(tài)的,但程序必須能夠運(yùn)行,否則毫無用處。程序由程序語言抽象的符號(hào)表達(dá)–二進(jìn)制機(jī)器碼,它是機(jī)器可以直接“讀懂”的語言。但書寫時(shí)人們常用八進(jìn)制或十六進(jìn)制表示。–匯編語言,用一些特殊描述符表示操作符和操作數(shù),它與具體的硬件相關(guān),不可移植。–高級(jí)語言,類似人類語言,易懂,可移植。*程序設(shè)計(jì)的發(fā)展過程------語言愈高級(jí),愈自動(dòng),翻譯程序的任務(wù)愈重1/100高級(jí)程序設(shè)計(jì)語言實(shí)現(xiàn)計(jì)算的方式計(jì)算機(jī)只認(rèn)識(shí)機(jī)器語言,高級(jí)語言程序必須經(jīng)過翻譯才能被機(jī)器接收。把一種語言翻譯成另一種語言的程序叫翻譯器。直接翻成目標(biāo)(機(jī)器)語言的有兩種做法:–編譯器–解釋器1/100高級(jí)語言程序的編譯執(zhí)行–高級(jí)語言源程序經(jīng)編譯后得到目標(biāo)碼程序,但它還不能立即裝入
機(jī)器執(zhí)行,因?yàn)樗话悴粔蛲暾?。有些函?shù)是標(biāo)準(zhǔn)化了的,事先
已作為目標(biāo)碼存放在機(jī)器中,無需編寫,當(dāng)接到用戶的連接指示,機(jī)器將把連接程序(或連接器Linker)裝入內(nèi)存并開始工作,找出要調(diào)用哪些標(biāo)準(zhǔn)程序,到庫(kù)中找出被調(diào)用的模塊,輸入到內(nèi)存
并連接上,形成可執(zhí)行程序。然后是加載(Loading,裝入到內(nèi)存中合適的位置,此時(shí)得到的是內(nèi)存中的絕對(duì)地址),最后執(zhí)行(Running)得出結(jié)果。–例如:C語言中直接調(diào)用
sin()函數(shù)–特點(diǎn):編譯型語言可進(jìn)行優(yōu)化(或多次優(yōu)化),目標(biāo)碼效率很高,是目前軟件開發(fā)的最主要編程語言。用這些語言編寫的原程序,都要進(jìn)行編譯,連接,才能生成可執(zhí)行程序。C/C++,Pascal,Ada,FORTRAN等都是編譯型語言。源程序.C目標(biāo)程序.obj可執(zhí)行程序.exe結(jié)果編譯1/100連接執(zhí)行1/100高級(jí)語言程序的解釋執(zhí)行:–解釋執(zhí)行需要有一個(gè)解釋器(Interpreter),它將源代碼逐句讀入:作詞法分析,建立內(nèi)部符號(hào)表;作語法和語義分析,即以中間碼建立語法樹,并作類型檢查把每一語句壓入執(zhí)行堆棧,壓入后立即解釋執(zhí)行。–特點(diǎn):解釋執(zhí)行只看到一個(gè)語句,無法作整個(gè)程序優(yōu)化。例如,BASIC、VB等。解釋器不大,工作空間也不大、能根據(jù)程序執(zhí)行情況決定下一步做什么(人工智能經(jīng)常是這樣的)是它的優(yōu)點(diǎn)解釋執(zhí)行難于優(yōu)化、效率較低,這是這類語言的致命缺點(diǎn)。1/100Object-Oriented
language面向?qū)ο蟮恼Z言A
programming
language
that
reflects
theconcepts
of
object-oriented
programming.Example:SMALLTALK
and
C++.一種反映面向?qū)ο缶幊谈拍畹某绦蛟O(shè)計(jì)語言。例如SMALLTALK和C++對(duì)象、類、封裝、繼承面向?qū)ο螅綄?duì)象+類+繼承+通信(消息)1/100對(duì)象的概念:程序?qū)ο鬄槲覀兲峁┝酥苯用枋隹陀^世界對(duì)象的有力手段。每個(gè)對(duì)象可以用其一組屬性和它可以執(zhí)行的一組操作來定義。對(duì)象中的數(shù)據(jù)改稱為對(duì)象的屬性(Attribute),操作改稱為對(duì)象的方法(Method),即改變屬性的方法。對(duì)象間相互只有通信,叫發(fā)消息(Message)。因?qū)ο笫亲灾鞯某绦驅(qū)嶓w,發(fā)消息者可等可不等。接受消息的對(duì)象可以立即響應(yīng),也可以稍晚些時(shí)間響應(yīng),松弛了對(duì)象間的引用耦合,為并發(fā)程序,事件驅(qū)動(dòng)程序提供了程序?qū)崿F(xiàn)的技術(shù)基礎(chǔ)。使用者就不必關(guān)心對(duì)象內(nèi)部情況,只按接口規(guī)定的形式向它發(fā)消息就可以了,如對(duì)象的設(shè)計(jì)者發(fā)現(xiàn)某個(gè)操作的算法(過程體)不好,重新改寫一個(gè)換了,使用者也不用知道,只要接口形式不變就行。1/100類與對(duì)象類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合。沿用程序中表達(dá)數(shù)據(jù)的抽象辦法:定義一個(gè)類型、聲明該類型的變量,我們定義一類對(duì)象然后聲明它的不同實(shí)例(Instance):Dim
v
As
Double ‘v是雙精型的數(shù)據(jù)變量Dim OK
As
Command
Button ‘OK是按鈕類的對(duì)象變量這個(gè)類Command
Button是系統(tǒng)事先定義好的,OK是它的實(shí)例對(duì)象。OK有著和Command
Button一樣的屬性和方法,只是要給出各屬性的值。類是生成實(shí)例的樣板,是實(shí)例加工廠(給出一組屬性值就是一實(shí)例)。正是因?yàn)樽兞浚愋秃蛯?shí)例--類的相似性,許多語言(如:C++)
都把類看作是類型,類的定義如同以簡(jiǎn)單的類型構(gòu)造復(fù)雜的數(shù)據(jù)類型一樣。只不過類定義時(shí)還要定義類的方法(操作復(fù)雜類型的過程(或函數(shù))在復(fù)
雜(抽象)類型之外定義)。1/100類繼承類的封裝保證了程序的模塊獨(dú)立性,調(diào)試程序比較方便。但相同的數(shù)據(jù),相同的操作,每個(gè)類封裝一套就太繁雜了。繼承能解決這個(gè)問題。每個(gè)類都可以派生許多子類,子類(subclass)繼承父類(parentclass)的屬性和方法。子類可以派生它的子類……,老祖宗的屬性和方法可以一代一代傳到最新派生的(子)類?;悾╞aseclass)中的屬性和方法定義在派生類就不用寫了,只定義派生類’自己的’屬性和方法,這就構(gòu)成樹狀的繼承體系,我們把這個(gè)類繼承體系叫類庫(kù)。類的多重繼承讀C++程序1/100四常用算法枚舉法–枚舉法亦稱窮舉法,它的基本思想是:首先依據(jù)題目的部分條件確定答案的大致范圍,然后在此范圍內(nèi)對(duì)所有可能的情況逐一驗(yàn)證,直到全部情況驗(yàn)證完。若某個(gè)情況使驗(yàn)證符合題目的條件,則為本題的一個(gè)答案;若全部情況驗(yàn)證完后均不符合題目的條件,則本題無答案。–枚舉法的實(shí)質(zhì)是枚舉所有可能的解,用檢驗(yàn)條件判斷定哪些是有用的,哪些是無用的,而題目往往就是檢驗(yàn)條件。枚舉法的特點(diǎn)是算法簡(jiǎn)單,但有時(shí)運(yùn)算量大,對(duì)于可確定解的取值范圍且又一時(shí)找不到其他更好的算法時(shí),就可以用它。例題:百雞問題(28_17)*(1_6)=4401852迭代法重復(fù)同樣步驟,可以逐次求得更精確的值。這一過程即為迭代過程.使用迭代法構(gòu)造算法的基本方法是:首先確定一個(gè)合適的迭代公式,選取一個(gè)初始近似值以及解的誤差,然后用循環(huán)處理實(shí)現(xiàn)迭代過程,終止循環(huán)過程的條件是前后兩次得到的近似值之差的絕對(duì)值小于或等于預(yù)先給定的誤差。并認(rèn)為最后一次迭代得到的近似值為問題的解。這種迭代方法稱為逼近迭代。1/1001/100遞歸法–遞歸是構(gòu)造計(jì)算機(jī)算法的一種基本方法。如果一個(gè)過程直接或間接地調(diào)用它自身,則稱該過程是遞歸的,遞歸過程必須有一個(gè)遞歸終止條件,即存在“遞歸出口”。無條件的遞歸是毫無意義的。–
f(n)=n!=n*(n-1)!=n*f(n-1)遞推法–
所謂遞推法,它的數(shù)學(xué)公式也是遞歸的(如:f(n)=n!=n*(n-1)!=n*f(n-1)
)。只是在實(shí)現(xiàn)計(jì)算時(shí)迭代方向相反。從給定邊界出發(fā)逐步迭代到達(dá)指定計(jì)算參數(shù)。它不需反復(fù)調(diào)用自己(節(jié)省了很多調(diào)用參數(shù)匹配開銷)。效率較高。–遞推操作是提高遞歸函數(shù)執(zhí)行效率最有效的方法,科技計(jì)算中最常見。1/100–遞歸與遞推是既有區(qū)別又有聯(lián)系的兩個(gè)概念。遞推是從已知的初始條件出發(fā),逐次遞推出最后所求的值。遞歸則是從需求的函數(shù)本身出發(fā),逐次上溯調(diào)用其本身求解過程,直到遞歸的出口,然后再?gòu)睦锵蛲獾雇苹貋恚玫阶罱K的值。一般說來,一個(gè)遞推算法總可以轉(zhuǎn)換為一個(gè)遞歸算法。遞歸算法往往比非遞歸算法要付出更多的執(zhí)行時(shí)間,盡管如此,由于遞歸算法編程序非常容易,各程序設(shè)計(jì)語言隨計(jì)算機(jī)速度提高都設(shè)有遞歸語言機(jī)制。此外,用遞歸過程來描述算法不僅非常自然,而且證明算法的正確性也比相應(yīng)的非遞歸形式容易很多,因此,遞歸是算法設(shè)計(jì)的基本技術(shù)。1/100鏈表–用一組任意單元表示數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系。它包含兩個(gè)域,一個(gè)表示數(shù)據(jù)本身,一個(gè)表示數(shù)據(jù)元素間的關(guān)聯(lián)。這樣一個(gè)整體成為一個(gè)結(jié)點(diǎn)。結(jié)點(diǎn)中表示關(guān)聯(lián)的部分成為指針域,內(nèi)部存放指針或鏈。–鏈表一般有單鏈表、雙向鏈表和循環(huán)鏈表等。a1La2a3a4a5
^Head單鏈表(線性鏈表)單鏈表就是鏈?zhǔn)酱鎯?chǔ)的線性表,其結(jié)點(diǎn)除信息域外還含有一個(gè)指針域,用來指出其后繼結(jié)點(diǎn)的位置。單鏈表的最后一個(gè)結(jié)點(diǎn)沒有后繼結(jié)點(diǎn),
它的指針域?yàn)榭?記為NULL或∧)。另外還需要設(shè)置一個(gè)指針head,指向單鏈表的第一個(gè)結(jié)點(diǎn)。鏈表的一個(gè)重要特點(diǎn)是插入、刪除運(yùn)算靈活方便,不需移動(dòng)∧結(jié)點(diǎn),只要改變結(jié)點(diǎn)中指針域的值即可。infonext1/100信息域指針域單鏈表節(jié)點(diǎn)結(jié)構(gòu)單鏈表邏輯示意圖abpabpc單鏈表單鏈表插入結(jié)點(diǎn)時(shí)的情況單鏈表刪除結(jié)點(diǎn)時(shí)的情況abxsp1/100單鏈表結(jié)點(diǎn)插入和刪除棧–除了前面講的線性表外,棧(STACK)也是一種特殊的線性表,是一種“后進(jìn)先出”的結(jié)構(gòu),也是使用最為廣泛的數(shù)據(jù)結(jié)構(gòu)之一。它的運(yùn)算規(guī)則受到一些約束和限定,故又稱限定性數(shù)據(jù)結(jié)構(gòu)。棧的結(jié)構(gòu)特點(diǎn)貨棧穿衣服的順序子彈壓入子彈夾摞盤子a
n┆a
3a
2a
1進(jìn)棧出棧棧頂
top棧底1/100棧是限定僅在表尾進(jìn)行插入和刪除運(yùn)算的線性表,表尾稱為棧頂(top),表頭稱為棧底(bottom)。表中無元素時(shí)稱為空棧。在右上圖所示的棧中,棧中的元素按a1,a2,a3,…an的順序進(jìn)棧,a1稱為棧底元素。新元素進(jìn)棧要置于an之上,刪除或退棧必須先對(duì)an進(jìn)行,即棧的操作是按先進(jìn)后出的原則進(jìn)行。因此,棧又稱為L(zhǎng)IFO表(LastInFirstOut的縮寫)表。棧的物理存儲(chǔ)可以用順序存儲(chǔ)結(jié)構(gòu),也可以用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),如右圖所示。棧底1/100棧頂top樹的存儲(chǔ)結(jié)構(gòu)–直觀地看,樹的存儲(chǔ)結(jié)構(gòu)可以采用具有多個(gè)指針域的多重鏈表,結(jié)點(diǎn)中指針域的個(gè)數(shù)應(yīng)由樹的度來決定。例如,下圖中樹的度為3,可以采用含有3個(gè)指針域的結(jié)點(diǎn)的多重鏈表作存儲(chǔ)結(jié)構(gòu)。但在實(shí)際應(yīng)用中,這種存儲(chǔ)結(jié)構(gòu)并不方便,一般將樹轉(zhuǎn)化為二叉樹表示,再進(jìn)行處理。1/1001/100二叉樹的存儲(chǔ)結(jié)構(gòu)–通常使用具有兩個(gè)指針域的二叉鏈表作二叉樹的存儲(chǔ)結(jié)構(gòu),結(jié)點(diǎn)結(jié)構(gòu)如圖(a)所示,圖中LC為左指針域,指向結(jié)點(diǎn)的左子樹;RC為右指針域,指向結(jié)點(diǎn)的右子樹。1/100二叉樹的存儲(chǔ)結(jié)構(gòu)–圖(b)所示為一個(gè)二叉樹的二叉鏈表。有時(shí)亦可用
數(shù)組的下標(biāo)來模擬指針,即開辟三個(gè)一維數(shù)組DATA,
LC和RC分別存放結(jié)點(diǎn)的元素及其左、右指針,如圖
(c)所示。用一個(gè)結(jié)構(gòu)數(shù)組也可以。1/1001/100樹和二叉樹的遍歷(周游)–對(duì)于樹形結(jié)構(gòu)的運(yùn)算很多,但最重要、使用最為廣泛的是遍歷。遍歷一個(gè)樹形結(jié)構(gòu)就是按一定的次序,系統(tǒng)地訪問該結(jié)構(gòu)中的所有結(jié)點(diǎn),使每個(gè)結(jié)點(diǎn)恰被訪問一次。我們將重點(diǎn)討論二叉樹的遍歷。樹的遍歷–根據(jù)樹的遞歸定義,有兩種遍歷樹的方法:–先根(次序)遍歷:若樹中只有一個(gè)根結(jié)點(diǎn),則訪問樹的根結(jié)點(diǎn);否則,首先訪問樹的根結(jié)點(diǎn),然后依次先根遍歷每棵子樹。–后根(次序)遍歷:若樹中只有一個(gè)根結(jié)點(diǎn),則訪問樹的根結(jié)點(diǎn);否則,首先依次后根遍歷每一棵子樹,然后訪問樹的根結(jié)點(diǎn)。1/100二叉樹的遍歷–分析二叉樹的結(jié)構(gòu)特性可知,一棵非空的二叉樹是由根結(jié)點(diǎn)、左子樹、右子樹三個(gè)基本部分組成,則遍歷二叉樹只要依次遍歷這三部分即可。使用自然語言描述的遍歷二叉樹的算法如下:–前序遍歷二叉樹算法(DLR):若二叉樹不空,則依次進(jìn)行下列操作:訪問根結(jié)點(diǎn);前序遍歷左子樹;前序遍歷右子樹。1/100–中序遍歷二叉樹的算法(LDR)為:若二叉樹不空,則依次進(jìn)行下列操作:中序遍歷左子樹;訪問根結(jié)點(diǎn);中序遍歷右子樹。–后序遍歷二叉樹的算法(LRD)為:若二叉樹不空,則依次進(jìn)行下列操作:后序遍歷左子樹;后序遍歷右子樹;訪問根結(jié)點(diǎn)。對(duì)于右圖,使用前序遍歷,則處理順序?yàn)椋篈BEFCGDHIJ對(duì)于右圖,使用中序遍歷,則處理順序?yàn)椋篍FBGCHIJDA對(duì)于右圖,使用后序遍歷,則處理順序?yàn)椋篎EGJIHDCBA1/100圖的存儲(chǔ)–圖的結(jié)構(gòu)復(fù)雜,應(yīng)用廣泛,因此其存儲(chǔ)表示方法也多種多樣。下面給出兩種最常用的存儲(chǔ)表示方法。圖的相鄰矩陣表示法–相鄰矩陣是表示結(jié)點(diǎn)間的相鄰關(guān)系的矩陣,若G是一個(gè)具有n個(gè)結(jié)點(diǎn)的圖,則G的相鄰矩陣是如下定義的n×n矩陣。1,若(Vi,Vj)是圖G的邊
A[i,j]=0,若(Vi,Vj)不是圖G的邊1/1001/1001/100用相鄰矩陣表示圖,占用的存儲(chǔ)單元個(gè)數(shù)只與圖中結(jié)點(diǎn)個(gè)數(shù)有關(guān),而與邊的數(shù)目無關(guān)。一個(gè)n個(gè)結(jié)點(diǎn)的圖,若其邊數(shù)比n少得多,那么它的相鄰矩陣中就會(huì)有很多零元素,占用很多空間來存儲(chǔ)零元素當(dāng)然是個(gè)浪費(fèi)。如果用鄰接表表示法來表示圖,則占用的存儲(chǔ)單元個(gè)數(shù)不但與圖中結(jié)點(diǎn)個(gè)數(shù)有關(guān),而且與邊數(shù)有關(guān)。同是n個(gè)結(jié)點(diǎn)的圖,如果邊數(shù)少,則占用的存儲(chǔ)單元也少。1/100圖的鄰接表表示法–結(jié)點(diǎn)表、邊表–一個(gè)順序存儲(chǔ)的結(jié)點(diǎn)表。結(jié)點(diǎn)表有n個(gè)表目,每個(gè)表目對(duì)應(yīng)于圖的一個(gè)結(jié)點(diǎn)。每個(gè)表目包括兩個(gè)字段:一個(gè)是結(jié)點(diǎn)的數(shù)據(jù)或指向結(jié)點(diǎn)數(shù)據(jù)的指針;另一個(gè)是指向此結(jié)點(diǎn)的邊表的指針。圖的每個(gè)結(jié)點(diǎn)都有一個(gè)邊表,一個(gè)結(jié)點(diǎn)的邊表的每個(gè)表目對(duì)應(yīng)于該結(jié)點(diǎn)相關(guān)聯(lián)的一條邊。–n個(gè)鏈接存儲(chǔ)的邊表。每個(gè)表目包括兩個(gè)字段:一個(gè)是與此邊相關(guān)聯(lián)的另一個(gè)結(jié)點(diǎn)在結(jié)點(diǎn)表中的序號(hào);另一個(gè)是指向邊表的下一個(gè)表目的指針。1/100分塊查找分塊查找又稱索引順序查找,它是一種性能介于順序查找和二分查找之間的查找方法,其特點(diǎn)是要求文件中記錄關(guān)鍵字“分塊有序”。所謂“分塊有序”指的是文件可按關(guān)鍵字分成若干塊,且前一塊中最大關(guān)鍵字小于后一塊中最小關(guān)鍵字,而各塊內(nèi)部的關(guān)鍵字不一定有序。1R(1:20)
171/1002
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2008
21
19
31
33
22
25
42
37
40
52
61
73
78
55
94
88
79
85分塊查找分塊查找的基本思想是:先抽取各塊中的最大關(guān)鍵字構(gòu)成一個(gè)索引表,由于文件中的記錄按關(guān)鍵字分塊有序,則索引表呈遞增有序狀態(tài)。查找分兩步進(jìn)行,第一步先對(duì)索引表進(jìn)行二分查找或順序查找,以確定待查記錄在哪一塊,第二步在已限定的那一塊中進(jìn)行順序查找。下圖:其記錄符合分塊有序約定,每塊包含4個(gè)記錄,第一塊記錄的最大關(guān)鍵字21小于第二塊記錄中的最小關(guān)鍵字22等。1/1001/100插入排序插入排序的基本思想是:每步將一個(gè)待排序的記錄,按其關(guān)鍵碼值的大小插入到前面已排序的文件的適當(dāng)位置上,直到全部插完為止。直接插入排序–在已排好的序列中用順序法查找插入位置,找到后將該位置原來的記錄及其后面所有記錄順序后移一個(gè)位置,空出該位置來插入新記錄。用直接插入法排序n個(gè)記錄的文件,關(guān)鍵碼比較次數(shù)為n2量級(jí),記錄移動(dòng)個(gè)數(shù)也為
n2
量級(jí)。1/100初始關(guān)鍵字序列:[64]
57
89
6
2464]
7
89
6
242424第一次排序:
[5第二次排序:
[5第三次排序:
[5第四次排序:
[5第五次排序:
[57
64]
89
67
64 89]
66
7
64
89]
246
7
24
64
89]1/100選擇排序選擇排序的基本思想是:每次從待排序的記錄中選出關(guān)鍵字最小(或最大)的記錄,順序放在已排序的記錄序列的最后,直到全部排完為止。直接選擇排序是從待排序的所有記錄中,選取關(guān)鍵字最小的記錄并將他與原始序列中的第一個(gè)記錄交換位置;然后從去掉了關(guān)鍵字最小的記錄的剩余記錄中選擇關(guān)鍵字最小的記錄并將他與原始序列中第二個(gè)記錄交換位置,…,如此重復(fù),直到序列中全部記錄排序完畢。1/100選擇排序(續(xù))初始關(guān)鍵字序列:[64]5789624第一次排序:[5]64789624第二次排序:[56]7896424第三次排序:[567]896424第四次排序:[56724]6489第五次排序:[5672464]89最后結(jié)果序列:
[5
6
7
24
64
89]1/100操作系統(tǒng)的功能四大管理處理機(jī)(CPU)管理存儲(chǔ)器管理設(shè)備管理文件管理作業(yè)管理1/100處理機(jī)(CPU)管理處理機(jī)管理的主要功能就是對(duì)處理機(jī)的分配、調(diào)度實(shí)施最有效的管理,以最大限度地提高處理機(jī)的處理能力。
在多任務(wù)環(huán)境中,處理機(jī)的分配、調(diào)度都是以進(jìn)程為單位的。所以處理機(jī)的管理可以歸結(jié)為進(jìn)程管理。
進(jìn)程管理的主要任務(wù)是為運(yùn)行程序創(chuàng)建進(jìn)程,進(jìn)程調(diào)度,進(jìn)程間通訊和最后程序運(yùn)行完成后撤消進(jìn)程。
需要注意的是,進(jìn)程管理是由操作系統(tǒng)來完成的,用戶并不會(huì)感覺到它的存在。1/100存儲(chǔ)器管理
為每個(gè)進(jìn)程分配內(nèi)存,當(dāng)進(jìn)程被撤消時(shí)回收分配出去的內(nèi)存是內(nèi)存管理的主要內(nèi)容。
內(nèi)存保護(hù),每個(gè)進(jìn)程只能在自己的內(nèi)存空間中運(yùn)行,否則會(huì)相互干擾甚至于破壞整個(gè)系統(tǒng)。
內(nèi)存映射,把應(yīng)用程序的邏輯地址正確地映射到物理地址。
操作系統(tǒng)最好能提供一種“虛擬”的內(nèi)存也就是比實(shí)際內(nèi)存大得多的“內(nèi)存”供應(yīng)用程序使用。1/100設(shè)備管理
計(jì)算機(jī)系統(tǒng)中的設(shè)備主要是指諸如鍵盤、鼠標(biāo)、顯示器、打印機(jī)、掃描儀、數(shù)碼相機(jī)、磁盤、
磁帶、光盤驅(qū)動(dòng)器等輸入、輸出設(shè)備。
計(jì)算機(jī)系統(tǒng)的輸入、輸出設(shè)備千差萬別種類繁多,所以,設(shè)備管理除了對(duì)設(shè)備進(jìn)行分配、調(diào)度,提高整個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行效率之外,還必須屏蔽各種設(shè)備的物理特性,向用戶提供一個(gè)方便、易用、高效的操作界面。1/100文件管理
計(jì)算機(jī)中的所有信息都是以文件的形式保存在外部存儲(chǔ)介質(zhì)上,供授權(quán)用戶使用的。
操作系統(tǒng)必須提供一套高效、方便、易用的信息管理機(jī)制,我們把它稱作文件系統(tǒng)。
文件系統(tǒng)應(yīng)當(dāng)具有這樣一些功能:數(shù)據(jù)存儲(chǔ)空間的分配、回收;文件的讀寫和查找機(jī)制和安全機(jī)制。
最后,操作系統(tǒng)還應(yīng)當(dāng)屏蔽掉各種存儲(chǔ)設(shè)備的物理特性,向用戶提供一套簡(jiǎn)單、方便、易用的服務(wù)接口。1/100進(jìn)程管理進(jìn)程:進(jìn)程是一個(gè)可并發(fā)執(zhí)行的程序在其數(shù)據(jù)集上的一次運(yùn)行,是操作系統(tǒng)進(jìn)行系統(tǒng)資源分配的單位和獨(dú)立運(yùn)行的基本單位。操作系統(tǒng)用于組織它必須完成的多項(xiàng)任務(wù)、實(shí)現(xiàn)并發(fā)執(zhí)行的一種手段。進(jìn)程擁有4個(gè)特性。進(jìn)程的狀態(tài)
進(jìn)程之間的狀態(tài)轉(zhuǎn)換并非都是可逆的。事實(shí)上,進(jìn)程既不能從阻塞變?yōu)檫\(yùn)行,也不能從就緒變?yōu)樽枞?/p>
進(jìn)程之間的狀態(tài)轉(zhuǎn)換并非都是主動(dòng)的,在很多情況下是“被動(dòng)的”。事實(shí)上,只有“運(yùn)行阻塞”的轉(zhuǎn)換是進(jìn)程的主動(dòng)行為,其它都是被動(dòng)的。一個(gè)進(jìn)程在任一指定時(shí)刻必須且只能處于上述諸狀態(tài)中的某一種狀態(tài)。當(dāng)進(jìn)程處于運(yùn)行態(tài)時(shí),它是微觀意義下的運(yùn)行。從宏觀來說,不管進(jìn)程處于何1/100種狀態(tài),它都是“正在運(yùn)行”,用戶無從知道進(jìn)程到底處于哪個(gè)狀態(tài)。線程-thread
為了描述進(jìn)程狀態(tài)的變化和對(duì)進(jìn)程進(jìn)行資源分配和運(yùn)行調(diào)度,加大了系統(tǒng)在空間方面和時(shí)間方面的開銷。-->線程
線程是進(jìn)程內(nèi)的一個(gè)可調(diào)度實(shí)體、是一個(gè)執(zhí)行單元、輕量進(jìn)程。
引入進(jìn)程是為了實(shí)現(xiàn)并發(fā)執(zhí)行,提高系統(tǒng)資源的利用率和吞吐量。1/1001/100線程具有進(jìn)程的四大特征,線程包含于進(jìn)程中并使用進(jìn)程的地址空間。線程是可以獨(dú)立地被調(diào)度和執(zhí)行的,因此可以方便、快捷地實(shí)現(xiàn)并發(fā)操作。屬于同一個(gè)進(jìn)程的若干線程共享進(jìn)程的地址空間和其他資源,所以,線程之間的切換比進(jìn)程之間的切換要快得多。1/100存儲(chǔ)管理
存儲(chǔ)管理研究的問題:如何更好地管理和合理地使用計(jì)算機(jī)的存儲(chǔ)器。存儲(chǔ)器資源是計(jì)算機(jī)系統(tǒng)中最為重要的資源,也
是系統(tǒng)進(jìn)程和用戶進(jìn)程爭(zhēng)奪最激烈的資源。存儲(chǔ)管理的好壞,往往直接影響到整個(gè)計(jì)算機(jī)系統(tǒng)的效率。
存儲(chǔ)管理的管理對(duì)象:內(nèi)存儲(chǔ)器以及作為內(nèi)存的擴(kuò)展和延伸的外存儲(chǔ)器。內(nèi)存儲(chǔ)器用來臨時(shí)存放系統(tǒng)運(yùn)行時(shí)所需的信息,它具有存取速度快和隨機(jī)存取的特點(diǎn),但容量一般較小,價(jià)
格也較昂貴。磁帶、磁盤、光盤等稱為外存儲(chǔ)器(簡(jiǎn)稱外存),外存儲(chǔ)器用來存放永久信息,它具有容量大和非隨機(jī)存取的
特點(diǎn),但存取速度較慢。1/100存儲(chǔ)管理要解決的問題:一是存儲(chǔ)空間的分配和回收;二是地址映射,就是把程序使用的地址映射成內(nèi)存空間地址;三是內(nèi)存的保護(hù),就是系統(tǒng)要保證內(nèi)存中的進(jìn)程不會(huì)相互干擾,影響整個(gè)系統(tǒng)的穩(wěn)定性、可靠性。1/100存儲(chǔ)管理方式分區(qū)管理
分區(qū)管理的基本思想是,把內(nèi)存空間靜態(tài)地或動(dòng)態(tài)地分割成若干大小不等的區(qū)域,每個(gè)作業(yè)分配一片連續(xù)的存儲(chǔ)空間,程序一次整體裝入。分區(qū)管理分為:固定式分區(qū)管理可變式分區(qū)管理可重定位分區(qū)管理1/100分頁管理分頁存儲(chǔ)管理的基本思想
將每個(gè)進(jìn)程的虛擬地址空間按固定大小(如2KB或4KB)分成若干個(gè)相等的頁面,并用0、1、2…等序號(hào)表示,叫做虛頁面;
把內(nèi)存空間也按同樣大小分為若干個(gè)相等的頁面,也用0、1、2…等序號(hào)表示,叫做實(shí)頁面。
在對(duì)進(jìn)程進(jìn)行存儲(chǔ)分配時(shí),將進(jìn)程的虛頁面映射到內(nèi)存中的實(shí)頁面上,這些實(shí)頁面可以是不連續(xù)的。1/100分段存儲(chǔ)管理
一個(gè)用戶程序通常由一個(gè)主程序、若干個(gè)子程序和數(shù)據(jù)區(qū)組成,我們把每一個(gè)像這樣的邏輯信息組稱做“段”,這時(shí)用戶程序的邏輯地址空間變成了二維地址空間(把整個(gè)邏輯地址空間分為若干段,每一個(gè)段段內(nèi)又從0開始記數(shù))。我們可以以“段”為單位進(jìn)行內(nèi)存管理。這就是“分段式”內(nèi)存管理的思想。
“段”是信息的邏輯單位,是由程序設(shè)計(jì)人員規(guī)定的,其長(zhǎng)度隨程序的不同而變化的;1/100段頁結(jié)合存儲(chǔ)管理段內(nèi)再進(jìn)行分頁
段頁結(jié)合是指在分段的基礎(chǔ)上,對(duì)各個(gè)段又進(jìn)行分頁。把段調(diào)入內(nèi)存時(shí),虛頁面與對(duì)實(shí)頁面相對(duì)應(yīng),一頁一頁地存放。
同一信息段的各頁可以不連續(xù)地存放于內(nèi)存中,減少了移動(dòng)的開銷。
不需要把一個(gè)段整段地調(diào)進(jìn)內(nèi)存,而是在程序執(zhí)行過程中根據(jù)需要按該段的分頁逐頁請(qǐng)調(diào),分段的最大長(zhǎng)度不受內(nèi)存大小的限制。1/100設(shè)備驅(qū)動(dòng)程序一種低級(jí)的系統(tǒng)過程,它直接控制硬件設(shè)備的操作。因?yàn)樵O(shè)備驅(qū)動(dòng)程序直接與設(shè)備控制、設(shè)備提供的寄
存器打交道,所以一般使用匯編語言來編寫。設(shè)備驅(qū)動(dòng)程序是和具體的硬件設(shè)備以及所處的系統(tǒng)緊密相關(guān)的。驅(qū)動(dòng)程序可以負(fù)責(zé)數(shù)據(jù)的傳輸,在數(shù)據(jù)傳送完成之后,驅(qū)動(dòng)程序把操作情況報(bào)告給“輸入輸出控制系統(tǒng)”。
當(dāng)某一進(jìn)程需要使用某種輸入輸出設(shè)備時(shí),首先向“輸入輸出控制系
統(tǒng)”發(fā)出請(qǐng)求,該子系統(tǒng)阻塞進(jìn)程、分析進(jìn)程發(fā)出的請(qǐng)求,并根據(jù)進(jìn)程
的請(qǐng)求調(diào)用適當(dāng)?shù)脑O(shè)備驅(qū)動(dòng)程序。
設(shè)備驅(qū)動(dòng)程序接到“輸入輸出控制
系統(tǒng)”發(fā)出的調(diào)用請(qǐng)求后,寫設(shè)備
控制器的寄存器,完成設(shè)備的初始
化,操作設(shè)備完成具體的輸入輸出
工作,完成數(shù)據(jù)傳輸之后,把設(shè)備
的狀態(tài)信息反饋給“輸入輸出控制
系統(tǒng)”。“輸入輸出控制系統(tǒng)”檢驗(yàn)設(shè)備狀態(tài),喚醒請(qǐng)求進(jìn)程,并把
操作狀態(tài)信息返回給請(qǐng)求進(jìn)程。1/1001/100–關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),主流的產(chǎn)品有Microsoft公司的SQL
Server、SYBASE公司的Sybase、ORACLE公司的
Oracle、INFORMIX公司的Informix和IBM公司的DB2。–微軟公司的ODBC(Open
DataBaseConnectivity,即:開放數(shù)據(jù)庫(kù)互連)。1/100ODBC是Microsoft公司開發(fā)的一套開放數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用程序接口規(guī)范,目前它已成為一種工業(yè)標(biāo)準(zhǔn),它提供了統(tǒng)一的數(shù)據(jù)庫(kù)應(yīng)用編程接口(API),為應(yīng)用程序提供了一套高層調(diào)用接口規(guī)范和基于動(dòng)態(tài)連接庫(kù)的運(yùn)行支持環(huán)境。使用ODBC開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),應(yīng)用程序調(diào)用的是標(biāo)準(zhǔn)的ODBC函數(shù)和SQL語句,數(shù)據(jù)庫(kù)底層操作由各個(gè)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序完成。因此使應(yīng)用程序有很好的適應(yīng)性和可移植性,并且具備了同時(shí)訪問多種數(shù)據(jù)庫(kù)管理系統(tǒng)的能力,從而徹
底克服了傳統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用程序的缺陷。1/100關(guān)系型數(shù)據(jù)庫(kù)組成關(guān)系運(yùn)算傳統(tǒng)的集合運(yùn)算:–并(Union)、差(Difference)、交(Intersection選擇運(yùn)算投影運(yùn)算聯(lián)接運(yùn)算1/100SQL:Structured
Query
Language(結(jié)構(gòu)化查詢語言)關(guān)系數(shù)據(jù)庫(kù)操作語言,標(biāo)準(zhǔn)的計(jì)算機(jī)數(shù)據(jù)庫(kù)語言
SQL語言基本上獨(dú)立于數(shù)據(jù)庫(kù)本身,獨(dú)立于所使用的機(jī)器、網(wǎng)絡(luò)、操縱系統(tǒng),具有良好的可移植性
一種交互式查詢語言,允許用戶直接查詢存儲(chǔ)的數(shù)據(jù),也可以把SQL語句嵌入到某種高級(jí)語言,如:C語言、COBOL等中。SQL語言不是一個(gè)完整的程序設(shè)計(jì)語言SQL的主要功能是數(shù)據(jù)定義、操縱和控制功能SQL語言1/100SQL中的數(shù)據(jù)操縱語句有:SELECT:檢索、INSERT:插入U(xiǎn)PDATE:更新二SQL中的數(shù)據(jù)操縱1/100數(shù)據(jù)檢索語句SELECT:◆SELECT語句的一般形式為:SELECT
[DISTINCT]
列表[,列表]◆◆FROM
基本表(或視圖)[WHERE
條件表達(dá)式][GROUP
BY列名[HAVING條件表達(dá)式]]
[ORDER
BY列名[ASC/DESC]];◆◆◆其中:‘DISTINCT’為去掉查詢結(jié)果中的重復(fù)的行;
‘GROUP
BY’是分組依據(jù);‘HAVING’是分組提取條件;
‘ORDERBY’是查詢結(jié)果的排序方式,ASC為升序;DESC為降序。1/100例1:select
*
from卷面select
Max(總評(píng))from卷面select
Min(總評(píng))from卷面select
Avg(總評(píng))from卷面這里,*代表全部列,這是一種簡(jiǎn)化的寫法。
例2:查詢學(xué)生成績(jī)?cè)?0分到90分之間的學(xué)生的姓名和總評(píng)成績(jī):SELECT姓名,總評(píng)FROM卷面WHERE總評(píng)
BETWEEN
80
AND
90
Order
By總評(píng)ASC此語句等價(jià)于:SELECT姓名,總評(píng)FROM卷面WHERE總評(píng)>=80
AND總評(píng)<=901/100例3:查詢姓張的同學(xué)的成績(jī):SELECT
*
FROM卷面WHERE姓名LIKE"張%"這里,“%”代表任意個(gè)字符。例4:SELECT產(chǎn)品.產(chǎn)品名稱,供應(yīng)商.公司名稱FROM供應(yīng)商,產(chǎn)品WHERE供應(yīng)商.供應(yīng)商ID=產(chǎn)品.供應(yīng)商ID;–在這個(gè)查詢中,使用到2個(gè)表。在訪問多個(gè)表的列時(shí),采用這種形式:表名.列名。1/100
SQL還提供了“聚集函數(shù)”,用戶可以使用它們來完成簡(jiǎn)單的統(tǒng)計(jì)。這些函數(shù)有:計(jì)數(shù)函數(shù)
COUNT,求和函數(shù)SUM,求平均函數(shù)AVG等。請(qǐng)參看下面的例子。例6:統(tǒng)計(jì)“供應(yīng)商”表中的供應(yīng)商數(shù)目SELECT
COUNT(*)FROM供應(yīng)商例7:統(tǒng)計(jì)“供應(yīng)商”表中的美國(guó)供應(yīng)商數(shù)目SELECT
COUNT(*)FROM供應(yīng)商WHERE國(guó)家="美國(guó)"1/100數(shù)據(jù)更新語句SQL的數(shù)據(jù)更新語句包括修改、插入和刪除三類語句,即
UPDATE語句,INSERT語句和DELETE語句??梢允褂肬PDATE語句來更新表中的數(shù)據(jù),UPDATE語句的格式為:UPDATE表名SET列名=表達(dá)式[,列名=表達(dá)式]…
[WHERE條件]
“SET”后緊跟的是需要更新的列及其值,“WHERE”是需要更新的條件。例8:將300211同學(xué)的“總評(píng)”成績(jī)加5分。UPDATE卷面SET總評(píng)=總評(píng)+5
WHERE班號(hào)="300211"1/100
錄入數(shù)據(jù)是很自然的要求,此時(shí)應(yīng)當(dāng)使用數(shù)據(jù)插入語句
INSERT,插入語句的格式如下:INSERT
INTO表名[(列名[,列名]…)]VALUES(常量[,常量]…)例9:向課程表中增加一個(gè)新的課程記錄:INSERT
INTO
test
values
(12,"zhxj","100")
利用插入語句插入數(shù)據(jù)時(shí),要注意數(shù)據(jù)的一致性,新增加的記錄的各個(gè)域值的類型和長(zhǎng)度應(yīng)該與表中的定義完全一致。比如:主鍵不能空,且與表中已有記錄的主關(guān)鍵字不重。1/100
刪除一些已經(jīng)過時(shí)的數(shù)據(jù)。使用刪除語句
DELETE來完成。刪除語句的一般格式為:DELETE
FROM
表名
[WHERE
條件]若WHERE子句缺省,則是無條件刪除表中的全部數(shù)據(jù),但表仍然存在。例10:刪除學(xué)生選課表SC中的全部數(shù)據(jù)。DELETE
FROM
test例11:刪掉某一個(gè)記錄:delete
from
test
where
name="zhxj"1/100
SQL的數(shù)據(jù)定義包括三類對(duì)象的定義:基本表、視圖和索引。從用戶的觀點(diǎn)看,基本的數(shù)據(jù)定義語句有三類:定義、修改和刪除。表的定義、修改與刪除定義基本表的語句格式為:CREATE
TABLE表名(列定義[,列定義]…);其中“列定義”為:列名列數(shù)據(jù)類型[NOT
NULL]CREATE
TABLE
test(ID
text(8),NAME
text(10),分?jǐn)?shù)
INT)三SQL中的數(shù)據(jù)定義1/100
如果我們需要修改表的結(jié)構(gòu),就需用到表修改語句。修改表的結(jié)構(gòu)的語句格式為:ALTER
TABLE
表名ADD列名類型;
當(dāng)然,刪除表是可能的,在某些情況下也是需要的。
SQL中的表刪除語句很簡(jiǎn)單:DELETE
TABLE
表名;ACCESS中:drop
table1/100索引的建立和刪除
索引是數(shù)據(jù)存取的路徑。為一個(gè)表創(chuàng)建索引,可以顯著地提高查詢效率。創(chuàng)建索引的語句為:CREATE[UNIQUE]INDEX索引名ON表名(列名[次序][,列名[次序]]…)索引順序有兩種,升序(ASC)和降序(DESC)其中,UNIQUE表示每一索引值只對(duì)應(yīng)唯一的數(shù)據(jù)記錄,一般在主鍵上建立這樣的索引。比如,我們?cè)凇皩W(xué)生信息
S的主鍵SNO上建立一個(gè)索引:CREATE
INDEX
t
ON
test
(ID)1/100
視圖(VIEW)是用戶看到的數(shù)據(jù)內(nèi)容,它是由基本表重構(gòu)的虛表。視圖對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)中的外模式。視圖具有這樣一些的特點(diǎn):視圖是虛表,它只有定義的數(shù)據(jù),沒有實(shí)際存儲(chǔ)的數(shù)據(jù),它的數(shù)據(jù)散列在有關(guān)聯(lián)的基本表中。對(duì)視圖
內(nèi)容的操作最終都轉(zhuǎn)換為對(duì)與視圖相關(guān)的基本表的
操作。視圖向不同用戶提供各自需求的虛表結(jié)構(gòu),
隔離用戶與其不相干的數(shù)據(jù),是一種安全控制手段。視圖所包含的屬性還可來自于多個(gè)基本表,是多個(gè)基本表的部分屬性的綜合。用于定義視圖的表可以是基本表也可以是已定義好的視圖。需要注意的是,如果在視圖的基礎(chǔ)上再定義視圖,那會(huì)大大降低查詢效率。1/100完善的安全機(jī)制,一般采用基于角色的多級(jí)授權(quán)安全機(jī)制
任何級(jí)別的用戶在使用數(shù)據(jù)庫(kù)系統(tǒng)時(shí),除了必須擁有的授權(quán)外,還必須提供正確的用戶名稱和用戶口令
數(shù)據(jù)庫(kù)系統(tǒng)管理員(即DBA)負(fù)責(zé)完成整個(gè)系統(tǒng)的管理工作,獲得DBA授權(quán)的用戶可以創(chuàng)建數(shù)據(jù)庫(kù)、表等而成為這些數(shù)據(jù)庫(kù)對(duì)象的擁有者。
擁有者對(duì)自己所擁有的對(duì)象有完全控制權(quán),同時(shí)擁有者也可以授權(quán)其他用戶使用其所擁有的對(duì)象。數(shù)據(jù)控制功能1/100
SQL的數(shù)據(jù)控制功能是指控制用戶對(duì)數(shù)據(jù)的存取權(quán)力,語句有兩條:授權(quán)語句(GRANT)和收權(quán)語句(REVOKE)。例1:假設(shè)把對(duì)表LTemp的所有操作權(quán)限授權(quán)給用戶LUSER –
GRANT
ALL
ON
LTemP
TO
LUSER
例2:假設(shè)只把查看(即SELECT)的權(quán)限授權(quán)給用戶
JUSER–
GRANT
SELECT
ON
LTemp
TO
JUSER1/100在星型網(wǎng)絡(luò)中,每臺(tái)計(jì)算機(jī)由電纜連接到一個(gè)集中的站點(diǎn)上,可以是集線器(hub)或交換機(jī)(switch)。集線器能將所有計(jì)算機(jī)的報(bào)文轉(zhuǎn)發(fā)給其它所有計(jì)算機(jī)(在廣播式星型網(wǎng)絡(luò)中)或者只發(fā)給目標(biāo)計(jì)算機(jī)(交換式星型網(wǎng)絡(luò)中)。為了擴(kuò)展星型網(wǎng)絡(luò)的規(guī)模,可以在適當(dāng)?shù)牡胤皆僭O(shè)置一個(gè)或幾個(gè)集線器,進(jìn)行互連。星型網(wǎng)絡(luò)是目前最流行的一種網(wǎng)絡(luò)結(jié)構(gòu)。星型結(jié)構(gòu)1/100優(yōu)點(diǎn)–星型網(wǎng)絡(luò)可以提供集中的資源管理。易于擴(kuò)展和維護(hù)。–故障易于隔離。如果某臺(tái)計(jì)算機(jī)發(fā)生故障,整個(gè)網(wǎng)絡(luò)不會(huì)受到影響。集線器可以檢測(cè)到網(wǎng)絡(luò)故障,并隔離有問題的計(jì)算機(jī)或網(wǎng)絡(luò)電纜,網(wǎng)絡(luò)的其余部分可正常運(yùn)行。缺點(diǎn)–要求中央節(jié)點(diǎn)的可靠性較高。如果中央節(jié)點(diǎn)失敗,整個(gè)網(wǎng)絡(luò)就會(huì)癱瘓。星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的優(yōu)缺點(diǎn)1/100計(jì)算機(jī)網(wǎng)絡(luò)的基本功能就是進(jìn)行數(shù)據(jù)通信,不同計(jì)算機(jī)交換信息時(shí)必須遵循一定規(guī)則。一般把計(jì)算機(jī)通信雙方在通信時(shí)必須遵循的一組規(guī)范稱之為網(wǎng)絡(luò)協(xié)議(Protocol)。從某種意義上來說,協(xié)議就是計(jì)算機(jī)網(wǎng)絡(luò)的核心。網(wǎng)絡(luò)協(xié)議與網(wǎng)絡(luò)操作系統(tǒng)1/100
國(guó)際標(biāo)準(zhǔn)化組織ISO在1979年提出開放
系統(tǒng)互連參考模型OSI/RM,根據(jù)“分層”的思想制訂計(jì)算機(jī)網(wǎng)絡(luò)互連的標(biāo)準(zhǔn),建
立了網(wǎng)絡(luò)協(xié)議模型。
OSI/RM是一個(gè)網(wǎng)絡(luò)協(xié)議模型,并不是一個(gè)實(shí)際的網(wǎng)絡(luò)實(shí)現(xiàn)。OSI參考模型1/100OSI采用了分層的結(jié)構(gòu)化技術(shù)。在邏輯上把功能分為若干層,每一層實(shí)現(xiàn)一個(gè)定義明確的功能。分層時(shí)遵循這樣的原則:–層次間相對(duì)獨(dú)立,每一層使用下層提供的服務(wù)實(shí)現(xiàn)自己的功能;–每一層的目的都是向它的上一層提供服務(wù)并且向上層屏蔽掉實(shí)現(xiàn)細(xì)節(jié)–下層對(duì)上層來說是“透明的”,對(duì)下層的任何修改不會(huì)影響到上層OSI/RM的協(xié)議層次1/100應(yīng)用層會(huì)話層表示層應(yīng)用層應(yīng)用層協(xié)議表示層表示層協(xié)議會(huì)話層網(wǎng)絡(luò)層傳送層傳送層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層
物理層協(xié)議
物理層表示層協(xié)議表示層協(xié)議網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)鏈路層協(xié)議7654321接口接口接口接口接口接口OSI/RM開放系統(tǒng)互連參考模型1/100TCP/IP(Transmission
Control
Protocol/Internet
Protocol)協(xié)議是目前應(yīng)用最廣泛的網(wǎng)絡(luò)互連協(xié)議。全球最大的互連網(wǎng)Internet就采用了TCP/IP協(xié)議。TCP/IP不是國(guó)際標(biāo)準(zhǔn),但它是眾多廠商和用戶支持的事實(shí)標(biāo)準(zhǔn),OSI標(biāo)準(zhǔn)非常龐雜,產(chǎn)品比較少,無法取代
TCP/IP的市場(chǎng)主導(dǎo)地位。TCP/IP協(xié)議
TCP/IP協(xié)議采用分層的體系
結(jié)構(gòu)(如圖所
示),共分為
四層:網(wǎng)絡(luò)接
口層,網(wǎng)際層,傳輸層和應(yīng)用
層。TCP/IP協(xié)議層次1/100IPARP
ARP硬件協(xié)議(鏈路控制和介質(zhì)訪問)TCPUDPTELNETSMTPFTP
DNSTFTPSMTP1/100負(fù)責(zé)接受IP數(shù)據(jù)報(bào),并通過網(wǎng)絡(luò)進(jìn)行傳送。網(wǎng)絡(luò)的接口有兩種:1、設(shè)備驅(qū)動(dòng)程序;2、使用專用數(shù)據(jù)鏈路協(xié)議的子系統(tǒng)。本層的協(xié)議標(biāo)準(zhǔn)很多,包括各種邏輯鏈路控制和介質(zhì)訪問協(xié)議。1/100IP協(xié)議提供主機(jī)間的數(shù)據(jù)傳送能力。地址解析協(xié)議ARP實(shí)現(xiàn)了物理地址和IP地址間的映射,起著屏蔽物理地址細(xì)節(jié)的作用??刂茀f(xié)議ICMP。1/100提供端到端的通信。傳輸控制協(xié)議TCP,面向連接的協(xié)議。用戶數(shù)據(jù)報(bào)協(xié)議UDP,無連接協(xié)議。1/100為用戶提供一組高層協(xié)議,依賴于TCP或UDP。FTP、Telnet、HTTP等1/100在任何一個(gè)物理網(wǎng)絡(luò)中,各站點(diǎn)都有一個(gè)機(jī)器可識(shí)別的物理地址(如:MAC)。網(wǎng)際層的IP協(xié)議提供了一種全網(wǎng)通用的地址格式,即IP地址,在統(tǒng)一管理下進(jìn)行地址分配。IP地址是一種層次型地址,由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)組成,如圖所示:網(wǎng)絡(luò)號(hào)+主機(jī)號(hào)1/100IP地址IP地址的長(zhǎng)度為32比特,按網(wǎng)絡(luò)規(guī)模的大小,可分為三類IP地址的分類1/1001/100子網(wǎng)掩碼(Subnet
mask)是一個(gè)32位的位模式,若某位為“1”,表示該位對(duì)應(yīng)著IP地址中網(wǎng)絡(luò)號(hào)部分中的一位,若某位為“0”,則表示它對(duì)應(yīng)著IP地址中的主機(jī)號(hào)部分。–例如:一個(gè)C類地址:6,用前24
位標(biāo)識(shí)網(wǎng)絡(luò)號(hào)部分,最后8位標(biāo)識(shí)主機(jī),則它的子網(wǎng)掩碼可以標(biāo)識(shí)為:(用點(diǎn)分十進(jìn)制表示)。(4)子網(wǎng)掩碼1/100主機(jī)號(hào)部分可進(jìn)一步劃分成子網(wǎng)號(hào)和主機(jī)號(hào)兩部分,這樣可以擴(kuò)展地址中的網(wǎng)絡(luò)號(hào)部分,但節(jié)點(diǎn)的編號(hào)范圍會(huì)減少子網(wǎng)掩碼主要與路由選擇有關(guān)。示例:子網(wǎng)掩碼24(11111111
11111111
11111111
11100000)下面給出各種網(wǎng)絡(luò)類別的缺省子網(wǎng)掩碼。
A類地址:B類地址:C類地址:1/100傳統(tǒng)的軟件工程---生存周期模型瀑布(waterfall)式的生存周期模型,把軟件的生命周期分為七
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 青少年如何預(yù)防糖尿病
- 成都高爾夫球場(chǎng)租賃合同范本
- 電力公司入駐管理
- 酒店網(wǎng)絡(luò)營(yíng)銷人員勞動(dòng)合同模板
- 融資風(fēng)險(xiǎn)防范確保企業(yè)資金安全
- 智能家居招投標(biāo)基本知識(shí)介紹
- 國(guó)有企業(yè)采購(gòu)政策制定
- 電力工程鋼板租賃協(xié)議
- 市場(chǎng)營(yíng)銷技能工資管理
- 環(huán)??萍脊救耸陆?jīng)理聘用合同
- 人教版九年級(jí)道德與法治 上冊(cè) 第三單元《文明與家園》大單元整體教學(xué)設(shè)計(jì)
- 銘記歷史勿忘國(guó)恥(課件)小學(xué)生主題班會(huì)通用版
- 電能表安裝作業(yè)指導(dǎo)書
- 新時(shí)代外語教育課程思政建設(shè)的幾點(diǎn)思考
- 食堂副食品配送服務(wù)投標(biāo)方案(技術(shù)方案)
- 大象版五年級(jí)科學(xué)上冊(cè)第四單元《地殼》全部課件(共5課時(shí))
- (4.43)-在馬克思墓前的講話?cǎi)R克思主義基本原理
- 石材保溫一體板計(jì)算書分解
- 神經(jīng)源性膀胱診療指南解讀課件
- 施工作業(yè)單位安全培訓(xùn)教育試題(含答案)
- 企業(yè)經(jīng)營(yíng)狀況問卷調(diào)查表
評(píng)論
0/150
提交評(píng)論