版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件設(shè)計師知識點總結(jié)一、軟件工程1軟件工程基礎(chǔ)知識?軟件生命周期:軟件的生存期劃分為制定計劃、需求分析、設(shè)計、編程實現(xiàn)、測試、運行維護等幾個階段,稱為軟件生命周期。?軟件開發(fā)模型常見的軟件開發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型瀑布模型(WaterfallModel):缺點:瀑布模型缺乏靈活性,無法通過開發(fā)活動澄清本來不夠明確的活動。因此,當用戶需求比較明確時才使用此模型。演化模型(EvolutionaryModel):也稱為快速原型模型??焖僭头椒梢钥朔俨寄P偷娜秉c,減少由于軟件需求不明確帶來的開發(fā)風(fēng)險,具有顯著的效果。螺旋模型(SpiralModel):將瀑布模型和演化模型相結(jié)合,綜合了瀑布模型和演化模型的優(yōu)點,并增加了風(fēng)險分析。包含4個方面活動:制定計劃:風(fēng)險分析:實施工程:客戶評價:噴泉模型(WaterFountainModel):主要用于描述面向?qū)ο蟮拈_發(fā)過程。噴泉一詞體現(xiàn)了面向?qū)ο箝_發(fā)過程的迭代和無間隙特征。即允許開發(fā)活動交叉、迭代地進行。迭代:模型中的開發(fā)活動常常需要重復(fù)多次,在迭代過程中不斷完善軟件系統(tǒng)。無間隙:指在開發(fā)活動(如分析、設(shè)計、編碼)之間不存在明顯的邊界。V模型(VModel):該模型強調(diào)測試過程應(yīng)如何與分析、設(shè)計等過程相關(guān)聯(lián)。增量模型(IncrementalModel):好處是軟件開發(fā)可以較好地適應(yīng)變化,客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風(fēng)險。構(gòu)件:是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成.軟件開發(fā)方法軟件開發(fā)方法是一種使用早已定義好的技術(shù)集及符號表示習(xí)慣來組織軟件生產(chǎn)的過程。包括:結(jié)構(gòu)化的方法、Jackson方法、面向?qū)ο箝_發(fā)方法結(jié)構(gòu)化方法指導(dǎo)思想是自頂向下、逐層分解,基本原則是功能的分解與抽象。Jackson方法:是面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法,包括JSP(JacksonStructureprogramming)和JSD(JacksonSystemDevelopment)面向?qū)ο箝_發(fā)方法:面向?qū)ο蠓椒ㄊ且詫ο鬄樽罨镜脑?,對象也是分析問題和解決問題的核心。開發(fā)方法包括面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計、面向?qū)ο髮崿F(xiàn)面向?qū)ο箝_發(fā)方法有Booch方法、Coad方法和OMT方法等。為了統(tǒng)一各種面向?qū)ο蠓椒ǖ男g(shù)語、概念和模型,1997年推出了統(tǒng)一建模語言UML(UnifiedModelingLanguage),它有標準的建模語言,通過統(tǒng)一的語義和符號表示。軟件項目管理軟件項日管理包括:成本估計、風(fēng)險分析、進度管理、人員管理。成本估算方法:有自頂向下估算法、專家估算法……。成本估算模型:IBM模型、Putnam模型、COCOMO模型。風(fēng)險分析包括4種風(fēng)險評估活動:風(fēng)險識別一建立風(fēng)險概念的尺度。試圖系統(tǒng)化確定對項日計劃(估算、進度、資源分配)的威脅。(一個方法是建立風(fēng)險條日檢查表。該風(fēng)險表可以用于識別風(fēng)險,并使得人們集中來識別下列常見的、已知的及可預(yù)測的風(fēng)險)風(fēng)險預(yù)測一描述風(fēng)險引起的后果。確定風(fēng)險發(fā)生的可能性或概率以及如果風(fēng)險發(fā)生了所產(chǎn)生的后果。風(fēng)險評估一估計風(fēng)險影響的大小。風(fēng)險控制一確定風(fēng)險估計的正確性。輔助項日組建立處理風(fēng)險的策略。進度管理:就是對軟件開發(fā)進度的合理安排,它是如期完成軟件項日的重要保證,也是合理分配資源的重要保證。進度安排的常用描述方法有:甘特圖(Gantt圖)計劃評審技術(shù)圖(PERT圖)關(guān)鍵路徑法(CPM圖)CPM和PERT的區(qū)別是:CPM是以經(jīng)驗數(shù)據(jù)為基礎(chǔ)來確定各項工作的時間,而PERT則把各項工作的時間作為隨機變量來處理。所以,前者往往被稱為肯定型網(wǎng)絡(luò)計劃技術(shù),而后者往往被稱為非肯定型網(wǎng)絡(luò)計劃技術(shù)。前者是以縮短時間、提高投資效益為日的,而后者則能指出縮短時間、節(jié)約費用的關(guān)鍵所在。軟件過程管理軟件過程一人們用于開發(fā)和維護軟件及其相關(guān)產(chǎn)品(項日計劃、設(shè)計文檔、代碼、測試用例、用戶手冊等)的一系列活動、包括軟件工程活動和軟件管理活動,其中必然涉及相關(guān)的方法和技術(shù)。淤軟件能力成熟度模型(CMM)淤統(tǒng)一軟件開發(fā)過程(RUP)淤極限編程(XP)軟件能力成熟度模型(CapabilityMaturityModel,簡稱CMM)軟件過程能力----描述(開發(fā)組織和項日組)通過遵循其軟件過程能夠?qū)崿F(xiàn)預(yù)期結(jié)果的程度。軟件能力成熟度個特定軟件過程被明確和有效地定義、管理、測量及控制的程度。成熟度可指明一個軟件開發(fā)組織軟件過程的能力的增長潛力。CMM模型將軟件過程能力成熟度劃分為5個級別:(1)初始級(2)可重復(fù)級(3)已定義級(4)已管理級(5)優(yōu)化級RUP(RationalUnifiedProcess,統(tǒng)一軟件開發(fā)過程,統(tǒng)一軟件過程):是一個面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開發(fā)方法論。RUP好像一個在線的指導(dǎo)者,它可以為所有方面和層次的程序開發(fā)提供指導(dǎo)方針,模版以及事例支持。軟件工程過程定義誰在做什么、怎么做以及什么時候做,RUP用四個主要的建模元素表達:?角色(Workers)“誰”?活動(Activities)“怎么做"?產(chǎn)品(工件)(Artifacts)“做什么"?工作流(Workflows)——“什么時候做”角色:它定義的是所執(zhí)行的一組活動和所擁有的一組文檔與模型。是抽象的職責(zé)定義,描述某個人或者一個小組的行為與職責(zé)。角色并不代表個人,而是說明個人在業(yè)務(wù)中應(yīng)該如何表現(xiàn)以及他們應(yīng)該承擔(dān)的責(zé)任。RUP預(yù)先定義了很多角色:分析員角色集:分析員角色集用于組織主要從事需求獲取和研究的各種角色開發(fā)角色集:開發(fā)人員角色集用于組織主要從事軟件設(shè)計與開發(fā)的各種角色。測試員角色集:測試員角色集用于組織主要從事軟件測試的各種角色。經(jīng)理角色集:經(jīng)理角色集用于組織主要從事軟件工程流程的管理與配置的各種角色?;顒樱菏且粋€有明確日的的獨立工作單元。即承擔(dān)這一角色的人必須完成的一組工作。產(chǎn)品(工件):產(chǎn)品是一個過程所生產(chǎn)、修改或使用的一段信息。產(chǎn)品是項日切實的成果,是項日為生產(chǎn)出最終的產(chǎn)品而制造或使用的東西。產(chǎn)品可以具有不同的形式,如?模型,如用例模型或設(shè)計模型。?模型元素,如類,用例或子系統(tǒng)。?文檔,如商業(yè)用例或軟件體系結(jié)構(gòu)文檔。?源代碼。?可執(zhí)行程序工作流:僅僅把所有的角色、活動和產(chǎn)品都列舉出來還不能夠組成過程,另外還需要一種有效的方式,把產(chǎn)生有價值結(jié)果的活動序列描述出來,并顯示角色之間的交互。工作流是一個產(chǎn)生具有可觀察的結(jié)果活動序列。UML中,可以用一個序列圖、協(xié)作圖或活動圖來表示工作流。RUP被劃分為六個核心“工程”工作流:商業(yè)建模工作流、需求工作流、分析和設(shè)計工作流、實現(xiàn)工作流、測試工作流、展開工作流RUP把一個開發(fā)周期劃分為四個連續(xù)的階段:初始階段(Inceptionphase):為系統(tǒng)建立商業(yè)用例,確定項日的邊界。一生命周期目標里程碑。精化階段(Elaborationphase):分析問題領(lǐng)域,建立一個健全的體系結(jié)構(gòu)基礎(chǔ),編制項日規(guī)劃,淘汰項日中風(fēng)險最高的元素?!芷隗w系結(jié)構(gòu)里程碑。構(gòu)造階段(Constructionphase):將開發(fā)所有剩余的構(gòu)件和應(yīng)用部件,對它們進行測試,并集成到產(chǎn)品中。一一初始運行能力里程碑。移交階段(Transitionphase):把軟件產(chǎn)品交付給用戶群。一產(chǎn)品發(fā)布里程碑。軟件質(zhì)量管理軟件質(zhì)量是指反映軟件系統(tǒng)或軟件產(chǎn)品滿足規(guī)定或隱含需求的能力的特征和特性全體。軟件質(zhì)量保證是指為軟件系統(tǒng)或軟件產(chǎn)品充分滿足用戶要求的質(zhì)量而進行的有計劃、有組織的活動,其日的是產(chǎn)生質(zhì)量的軟件。軟件質(zhì)量模型:ISO/IEC9126軟件質(zhì)量模型McCall軟件質(zhì)量模1.2系統(tǒng)分析基礎(chǔ)知識系統(tǒng)分析側(cè)重于從業(yè)務(wù)全過程的角度進行分析,主要任務(wù)。主要內(nèi)容有:>業(yè)務(wù)和數(shù)據(jù)的流程是否通暢,是否合理>數(shù)據(jù)、業(yè)務(wù)過程和組織管理之間的關(guān)系>原系統(tǒng)管理模式改革和新系統(tǒng)管理方法的實現(xiàn)是>否具有可行性等。系統(tǒng)分析的步驟>對當前系統(tǒng)進行詳細調(diào)查,收集數(shù)據(jù);>建立當前系統(tǒng)的邏輯模型;>對現(xiàn)狀進行分析,提出改進意見和新系統(tǒng)應(yīng)達到的日標;>建立新系統(tǒng)的模型;>編寫系統(tǒng)方案說明書?結(jié)構(gòu)化分析方法數(shù)據(jù)流圖(DataFlowDiagram,DFD):數(shù)據(jù)流圖就是組織中信息運動的抽象,是信息系統(tǒng)邏輯模型的主要形式。它是一種便于用戶理解、分析系統(tǒng)數(shù)據(jù)流程的圖形工具。數(shù)據(jù)流圖的基本組成及符號-外部項(外部實體):外部項在數(shù)據(jù)流圖中表示所描述系統(tǒng)的數(shù)據(jù)來源和去處的各種實體或工作環(huán)節(jié)。系統(tǒng)開發(fā)不能改變這些外部項本身的結(jié)構(gòu)和固有屬性。-加工(數(shù)據(jù)加工):又稱數(shù)據(jù)處理邏輯,描述系統(tǒng)對信息進行處理的邏輯功能。-數(shù)據(jù)存儲:邏輯意義上的數(shù)據(jù)存儲環(huán)節(jié),即系統(tǒng)信息處理功能需要的、不考慮存儲物理介質(zhì)和技術(shù)手段的數(shù)據(jù)存儲環(huán)節(jié)。-數(shù)據(jù)流:與所描述系統(tǒng)信息處理功能有關(guān)的各類信息的載體,是各加工環(huán)節(jié)進行處理和輸出的數(shù)據(jù)集合。給出了常用的三類數(shù)據(jù)流圖基本成分的符號繪制數(shù)據(jù)流圖的幾點注記:關(guān)于自頂向下、逐層分解數(shù)據(jù)流必須通過加工,即送去加工或從加工環(huán)節(jié)發(fā)出。數(shù)據(jù)存儲環(huán)節(jié)一般作為兩個加工環(huán)節(jié)的界面。命名>名稱要反映被命名的成分的真實和全部的意義;>名稱要意義明確,易理解,無歧義;>進出數(shù)據(jù)存儲環(huán)節(jié)的數(shù)據(jù)流如內(nèi)容和存貯者的數(shù)據(jù)相同,可采用同一名稱。編號每個數(shù)據(jù)加工環(huán)節(jié)和每張數(shù)據(jù)流圖都要編號。按逐層分解的原則,父圖與子圖的編號要有一致性,一般子圖的圖號是父圖上對應(yīng)的加工的編號。類似地,在分層數(shù)據(jù)流圖中,如下層圖上的數(shù)據(jù)流或數(shù)據(jù)存儲是由上層圖某個成分的分解而得,則父項與子項的編號要體現(xiàn)數(shù)據(jù)流圖分解的完整性與一致性的原則,如父項編號為F1或D1,則其子項分別為F1.1,F(xiàn)1.2,…,或D1.1,D1.2,…等。1.3系統(tǒng)設(shè)計基礎(chǔ)知識耦合:系統(tǒng)內(nèi)不同模塊之間互連程度的度量。塊間耦合強弱取決于模塊間聯(lián)系形式及接口的復(fù)雜程度。模塊間接口的復(fù)雜性越高,說明耦合的程度也越高。數(shù)據(jù)耦合:如果兩個模塊彼此間通過數(shù)據(jù)交換信息,而且每一個參數(shù)僅僅為數(shù)據(jù),那么這種塊間耦合稱之為數(shù)據(jù)耦合??刂岂詈?如果兩個模塊彼此間傳遞的信息中有控制信息,那么這種塊間耦合稱為控制耦合。公共耦合:如果兩個模塊彼此之間通過一個公共的數(shù)據(jù)區(qū)域傳遞信息時,則稱之為公共耦合或公共數(shù)據(jù)域耦合。內(nèi)容耦合:如果一個模塊需要涉及另一個模塊的內(nèi)部信息時,則這種聯(lián)系稱為內(nèi)容耦合。塊間耦合形式可讀性錯誤擴散能力可修改性通用性數(shù)據(jù)耦合好弱好好控制耦合中中中中公共耦合不強不好較內(nèi)容耦合4F最最強最差差內(nèi)聚:模塊內(nèi)部元素的聯(lián)系方式,塊內(nèi)聯(lián)系標志一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度,主要表現(xiàn)在模塊內(nèi)部各個元素為了執(zhí)行某一功能而結(jié)合在一起的程度。強IIIIIII弱功能順序通訊過程時間邏輯偶然U內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚內(nèi)聚口偶然內(nèi)聚:如果一個模塊所要完成的動作之間沒有任何關(guān)系,或者即使有某種關(guān)系,也是非常松散的,就稱之為偶然組合。邏輯內(nèi)聚:如果一個模塊內(nèi)部的各個組成部分在邏輯上具有相似的處理動作,但功能上、用途上卻彼此無關(guān),則稱之為邏輯組合。時間內(nèi)聚:如果一個模塊內(nèi)部的各個組成部分所包含的處理動作必須在同一時間內(nèi)執(zhí)行,則稱之為時間組合。過程內(nèi)聚:如果一個模塊內(nèi)部的各個組成部分所要完成的動作彼此間沒什么關(guān)系,但必須以特定的次序(控制流)執(zhí)行,則稱之為過程組合。通信內(nèi)聚:如果一個模塊內(nèi)部的各個組成部分所完成的動作都使用了同一個輸入數(shù)據(jù)或產(chǎn)生同一個輸出數(shù)據(jù),則稱之為通信組合。順序內(nèi)聚:對于一個模塊內(nèi)部的各個組成部分,如果前一部分處理動作的輸出是后一部分處理動作的輸入,則稱之為順序組合。功能內(nèi)聚:如果一個模塊內(nèi)部的各個組成部分全部為執(zhí)行同一功能而合成為一個整體,則稱之為功能組合方式的模塊。1.4系統(tǒng)實施基礎(chǔ)知識?系統(tǒng)測試系統(tǒng)測試:是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程系統(tǒng)測試的目的:系統(tǒng)測試是以找錯誤為目的,我們不是要證明程序無錯,而是要精心選取那些易于發(fā)生錯誤的測試數(shù)據(jù),以十分挑剔的態(tài)度,去尋找程序的錯誤。系統(tǒng)測試的基本原則:?測試工作應(yīng)避免由原開發(fā)軟件的個人或小組來承擔(dān)?設(shè)計測試用例不僅要包括合理、有效的輸入數(shù)據(jù),還要包括無效的或不合理的輸入數(shù)據(jù)。?設(shè)計測試案例時,不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預(yù)期輸出的結(jié)果。?不僅要檢驗程序做了該做的事,還要檢查程序是否同時做了不該做的事。?嚴格按照測試計劃進行,避免測試的隨意性?保留測試用例,將會給重新測試和追加測試帶來方便。測試過程:制定測試計劃編制測試大綱根據(jù)測試大綱設(shè)計和生成測試用例實施測試生成測試報告系統(tǒng)測試的方法:靜態(tài)測試:被測程序不在機器上運行,而是采用人工檢測和計算機輔助靜態(tài)分析的手段對程序進行檢測。動態(tài)測試:通過運行程序發(fā)現(xiàn)錯誤。有黑盒測試法和白盒測試法。系統(tǒng)測試的步驟:單元測試:程序中的一個模塊或一個子程序,是程序設(shè)計的最小單元,是程序最小的獨立編譯單位。集成測試(組裝測試):在每個模塊完成了單元測試以后,需要按照設(shè)計時作出的層次模塊圖把它們連接起來,進行組裝測試。確認測試:經(jīng)過組裝測試,軟件已裝配完畢,接下來進行的確認測試和系統(tǒng)測試將是以整個軟件做為測試對象,且采用黑盒測試方法。系統(tǒng)測試:將信息系統(tǒng)的所有組成部分包括軟件、硬件、用戶以及環(huán)境等綜合在一起進行測試,以保證系統(tǒng)的各組成部分協(xié)調(diào)運行。系統(tǒng)可維護性概念:維護人員理解、改正、改動和改進這個軟件的難易程度。系統(tǒng)的可維護性的評價指標:可理解性、可測試性、可修改性。系統(tǒng)維護的內(nèi)容和類型:硬件維護、軟件維護、數(shù)據(jù)維護。軟件維護:根據(jù)需求變化或硬件環(huán)境的變化對應(yīng)用程序進行部分或全部修改。軟件維護包括:正確性維護:改正在系統(tǒng)開發(fā)階段已發(fā)生而系統(tǒng)測試階段尚未發(fā)現(xiàn)的錯誤。占整個維護工作量的17%-20%。適應(yīng)性維護:使應(yīng)用軟件適應(yīng)信息技術(shù)變化和管理需求變化而進行的修改。占整個維護工作量的18%-25%。完善性維護:為擴充功能和改善性能而進行的修改,主要是對已有的軟件系統(tǒng)增加一些在系統(tǒng)分析和設(shè)計階段中沒有規(guī)定的功能與性能特征。占整個維護工作量的50%-60%。預(yù)防性維護:為改進應(yīng)用軟件的可靠性和可維護性,為了使用硬件環(huán)境的變化,主動增加預(yù)防性的新的功能,以使應(yīng)用系統(tǒng)適應(yīng)各類變化而不被淘汰。占整個維護工作量的4%左右。??二.數(shù)據(jù)庫技術(shù)基礎(chǔ)知識2.1數(shù)據(jù)庫系統(tǒng)的基本概念DB、DBMS和DBS的定義DB(數(shù)據(jù)庫)是長期存儲在計算機內(nèi)、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。DBMS(數(shù)據(jù)庫管理系統(tǒng))是數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。位于用戶與操作系統(tǒng)之間的一層管理軟件。DBS(數(shù)據(jù)庫管理系統(tǒng))在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)。是數(shù)據(jù)庫、硬件、軟件、數(shù)據(jù)庫管理員及用戶的集合。數(shù)據(jù)庫管理系統(tǒng)的功能1、數(shù)據(jù)庫的定義功能DBMS提供數(shù)據(jù)定義語言(DDL)定義數(shù)據(jù)庫的三級結(jié)構(gòu),兩級映象,定義數(shù)據(jù)2、數(shù)據(jù)庫的操作DBMS提供數(shù)據(jù)操作語言(DML)實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的操作?;緮?shù)據(jù)操作有:檢索(查詢)、和更新(插入、刪除、修改)。3、數(shù)據(jù)庫的保護功能DBMS對數(shù)據(jù)的保護主要通過四個方面實現(xiàn),因而DBMS中包括四個子系統(tǒng)。數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫的并發(fā)控制數(shù)據(jù)庫的完整性控制數(shù)據(jù)庫的安全性控制4、數(shù)據(jù)庫存儲管理DBMS的存儲管理子系統(tǒng)提供了數(shù)據(jù)庫中數(shù)據(jù)和應(yīng)用程序的一個界面,DBMS存儲管理子系統(tǒng)的職責(zé)是把各種DML語句轉(zhuǎn)換成底層的與磁盤中數(shù)據(jù)打交道的操作系統(tǒng)的文件系統(tǒng)命令,起到數(shù)據(jù)的存儲、檢索和更新的作用。數(shù)據(jù)庫的維護功能:數(shù)據(jù)裝載程序、備份程序、文件重組織程序、性能監(jiān)控程序數(shù)據(jù)字典(DD)數(shù)據(jù)庫系統(tǒng)中存放三級結(jié)構(gòu)定義的數(shù)據(jù)庫稱為數(shù)據(jù)字典。對數(shù)據(jù)庫的操作都要通過訪問DD才能實現(xiàn)。DD中還存放數(shù)據(jù)庫運行的統(tǒng)計信息,例如記錄個數(shù)、訪問次數(shù)等。2.2數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)一三級結(jié)構(gòu)兩級映象?三級結(jié)構(gòu):外模式、概念模式、內(nèi)模式?兩級映象:外模式/模式映象、模式/內(nèi)模式映象?三級結(jié)構(gòu):外模式:單個用戶使用到的那部分數(shù)據(jù)的描述。概念模式:是用戶定義的數(shù)據(jù)庫中全部數(shù)據(jù)邏輯結(jié)構(gòu)的描述。內(nèi)模式:是數(shù)據(jù)庫在物理存儲方面的描述,接近于物理存儲設(shè)備,涉及到實際數(shù)據(jù)存儲的結(jié)構(gòu)。?兩級映象模式/內(nèi)模式映象:存在于概念級和內(nèi)部級之間,用于定義概念模式和內(nèi)模式之間的對應(yīng)性。外模式/模式映象:存在于外部級和概念級之間,用于定義外模式和概念模式之間的對應(yīng)性。兩級數(shù)據(jù)獨立性數(shù)據(jù)獨立性是指應(yīng)用程序和數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間相互獨立,不受影響。分成物理數(shù)據(jù)獨立性和邏輯數(shù)據(jù)獨立性兩個級別。物理數(shù)據(jù)獨立性:數(shù)據(jù)的內(nèi)模式修改,模式/內(nèi)模式也要進行相應(yīng)的修改,但概念模式盡可能保持不變。邏輯數(shù)據(jù)獨立性:數(shù)據(jù)的概念模式修改,外模式/模式也要進行相應(yīng)的修改,但外模式盡可能保持不變。?2.3數(shù)據(jù)模型?數(shù)據(jù)模型:表示實體類型及實體間聯(lián)系的模型.根據(jù)模型應(yīng)用的不同日的可以將模型化分為概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型概念模型一ER模型(實體聯(lián)系模型)實體間的聯(lián)系:實體集內(nèi)部以及實體集的聯(lián)系。包括一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系。描述實體間聯(lián)系的模型稱為實體聯(lián)系模型簡稱ER模型。結(jié)構(gòu)數(shù)據(jù)模型:層次模型、網(wǎng)狀模型、關(guān)系模型層次模型:用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。
特點:有且只有一個結(jié)點無父結(jié)點;其它結(jié)點有且只有一個父結(jié)點;適用于一對多的實體聯(lián)系。網(wǎng)狀模型:用有向圖表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型.特點:任何一個結(jié)點可以有一個或一個以上的父結(jié)點;任何一個結(jié)點可以沒有父結(jié)點;適用于多對多的實體聯(lián)系。關(guān)系模型:用二維表格結(jié)構(gòu)表達實體間的聯(lián)系的數(shù)據(jù)模型關(guān)系模型中的基本術(shù)語:關(guān)系:二維的數(shù)據(jù)表,它描述了實體之間的聯(lián)系。元組(實體):數(shù)據(jù)表中的每一行表示一個實體。屬性(字段):數(shù)據(jù)表中的每一列。域:屬性的取值范圍。關(guān)系模式:對關(guān)系的描述稱為關(guān)系模式。關(guān)系名(屬性名1,屬性名2,……,屬性名n)超鍵(超碼):在關(guān)系模式中,能唯一標識元組的屬性集。這個屬性集可能含有多余的屬性。候選鍵(候選碼):能唯一標識元組,且又不含有多余的屬性一個屬性集,即超鍵中刪除多余屬性剩下的屬性集。主鍵(主碼):從候選鍵中選擇一個作為關(guān)系模式中用戶使用的候選鍵稱為主鍵。主屬性:包含在任何候選鍵中的屬性稱為主屬性。不包含在任何候選鍵中的屬性稱為非主屬性。外鍵(外碼):當關(guān)系R中的某個屬性(或?qū)傩越M)雖然不是該關(guān)系的碼,但卻是另一個關(guān)系S的碼,稱該屬性(或?qū)傩越M)為R關(guān)系的外鍵。全鍵(全碼):關(guān)系模型中所有屬性都是這個關(guān)系的關(guān)鍵字關(guān)系模型的完整性約束(數(shù)據(jù)完整性)用來確保數(shù)據(jù)庫中數(shù)據(jù)的正確性和可靠性。數(shù)據(jù)完整性包括:實體完整性:主鍵的取值必須唯一,并且不能為空。域完整性:保證數(shù)據(jù)的取值在有效的范圍內(nèi)。參照完整性:參照完整性是通過主鍵和外鍵來保證相關(guān)聯(lián)的表間數(shù)據(jù)保持一致,避免因一個表的數(shù)據(jù)修改,而導(dǎo)致關(guān)聯(lián)生效。
2.4數(shù)據(jù)操作關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操作語言(DML)的語句分成查詢語句和更新語句兩大類。查詢語句用于描述用戶的各種檢索要求;更新語句用于描述用戶進行插入、刪除、修改等操作。關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成兩大類:關(guān)系代數(shù)語言:查詢操作是以集合操作為基礎(chǔ)的DML語言。關(guān)系演算語言:查詢操作是以謂詞演算為基礎(chǔ)的DML語言。?關(guān)系代數(shù)?關(guān)系代數(shù)的五個基本操作一一并、差、笛卡爾積、投影、選擇?關(guān)系代數(shù)的四個組合操作一一交、聯(lián)接、自然連接、除法?關(guān)系演算?元組關(guān)系演算域?關(guān)系演算關(guān)系代數(shù)的五個基本操作:(1)并(Union)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為RUSO形式定義如下:RUSRUS三{ttERVtES},t是元組變量,R和S的元數(shù)相同。差(Difference)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為R—S。形式定義如下:R-S^(t|tERAtES},R和S的元數(shù)相同。笛卡爾積設(shè)關(guān)系R和S的元數(shù)分別為r和s。定義R和S的笛卡爾積是一個(r+s)元的元組集合,每個元組的前r個分量(屬性值)來自R的一個元組,后s個分量來自R的一個元組,記為RXSo形式定義如下:RXS=(t|t=<tr,ts>AtrERAtsES}若R有m個元組,S有n個元組,則RXS有mXn個元組。投影(Projection)這個操作是對一個關(guān)系進行垂直分割,消去某些列,并重新安排列的順序。設(shè)關(guān)系R是k元關(guān)系,R在其分量Ai1,…,Aim(mWk,i1,…,im為1到k間的整數(shù))上的投影用ni1,…,im(R)表示,它是一個m元元組集合,形式定義如下:ni1,…,im(R)=(t|t=〈ti1,…,tim〉A(chǔ)〈t1,…,tk〉ER}選擇(Selection)選擇操作是根據(jù)某些條件對關(guān)系做水平分割,即選取符合條件的元組。條件可用命題公式(即計算機語言中的條件表達式)F表示。F中有兩種成分:運算對象和運算符。形式定義如下:aF(R)={t|tERAF(t)=true}。為選擇運算符,。F(R)表示從R中挑選滿足公式F為真的元組所構(gòu)成的關(guān)系。關(guān)系代數(shù)的四個組合操作交(intersection)關(guān)系R和S的交是由屬于R又屬于S的元組構(gòu)成的集合,記為RCS,這里要求R和S定義在相同的關(guān)系模式上。形式定義如下:RCS={t|tERAtES},R和S的元數(shù)相同。連接(join)連接有兩種:0連接和F連接0連接(0是算術(shù)比較符)0連接是從關(guān)系R和S的笛卡兒積中選取屬性間滿足某一0操作的元組,RxS三{t|t=<tr,ts>AtrERAtsESAtri0tsj}因此,0連接由笛卡爾積和選擇操作組合而成。RxS三ai0(r+j)(RXS)F連接(F是公式)F連接是從關(guān)系R和S的笛卡兒積中選取屬性間滿足某一公式F的元組,這里F是形為F1AF2A?AFn的公式,每個FP是形為i0j的式子,而i和j分別為關(guān)系R和S的第i、第j個分量的序號。自然連接(naturaljoin)兩個關(guān)系R和S的自然連接操作具體計算過程如下:計算RXS;設(shè)R和S的公共屬性是A1,…,AK,挑選RXS中滿足R.A1二S.A1,…,R.AK=S.AK的那些元組;去掉S.A1,…,S.AK這些列。形式定義如下:RS三ni1,…,im(oR.A1=S.A1A...AR.AK=S.AK(RXS)),其中i1,?,im為R和S的全部屬性,但公共屬性只出現(xiàn)一次。自然連接就是等值連接去掉重復(fù)列。除法(division)設(shè)關(guān)系R和S的元數(shù)分別為r和s(設(shè)r>s>0),那么R-S是一個(r-s)元的元組的集合。(R:S)是滿足下列條件的最大關(guān)系:其中每個元組t與S中每個元組u組成的新元組<t,u>必在關(guān)系R中。R:S三n1,2,…,r-s(R)-n1,2,,,r-s((n1,2,…,r-s(R)XS)-R)關(guān)系演算元組關(guān)系演算在元組關(guān)系演算中,元組關(guān)系演算表達式簡稱為元組表達式,其般形式為:{tP(t)}其中,t是元組變量,表示一個元數(shù)固定的元組;P是公式,在數(shù)理邏輯中也稱為謂詞,也就是計算機語言中的條件表達式。{t|P(t)}表示滿足公式P的所有元組t的集合。在元組表達式中,公式由原子公式組成。原子公式(Atoms)有下列三種形式:R(s):s是R的一個元組。s[i]0u[j]:元組s的第i個分量與元組u的第j個分量之間滿足e關(guān)系。s[i]ea或aeu[j]:a是常量。在定義關(guān)系演算操作時,要用到“自由”和“約束”變量概念。在一個公式中,如果元組變量未用存在量詞或全稱量詞V符號定義,那么稱為自由元組變量,否則稱為約束元組變量。關(guān)系代數(shù)表達式到元組表達式的轉(zhuǎn)換:RUS可用{t|R(t)VS(t)}表示;R-S可用{t|R(t)AnS(t)}表示;RXS可用(t|(3u)(3v)(R(u)AS(v)At[1]=u[1]At[2]=u[2]At[3]=u[3]At[4]=v[1]At[5]=v[2]At[6]=v[3])}表示。關(guān)系數(shù)據(jù)庫SQL語言:SQL的數(shù)據(jù)定義、SQL的數(shù)據(jù)查詢、SQL的數(shù)據(jù)更新SQL的數(shù)據(jù)定義——創(chuàng)建表涉及相應(yīng)屬性列的完整性約束條件:主鍵約束:PRIMARYKEY檢查約束:CHECK外鍵約束:FOREIGNKEY唯一性約束:UNIQUE是否為空值約束:NULL/NOTNULL默認值:DEFAULTSQL的數(shù)據(jù)查詢>數(shù)據(jù)查詢語句基本格式如下>SELECT〈查詢項的列表>>FROM〈表名>>WHERE〈條件表達式>6個聚合函數(shù):SUM(列名):求某一列的總和(此列的值必須是數(shù)值型)AVG(列名):求某一列的平均值(此列的值必須是數(shù)值型)MIN(列名):求某一列中的最小值MAX(列名):求某一列中的最大值COUNT(列名):傳回一列中的非NULL值的個數(shù)COUNT(*):傳回符合查詢條件的元組的個數(shù)ORDERBY子句——對查詢的結(jié)果進行排序SELECT語句中可以使用ORDERBY子句對查詢的結(jié)果進行排序,帶ASC參數(shù)時為升序,帶DESC參數(shù)時為降序,不待任何參數(shù)時為默認方式升序。SELECT〈查詢項的列表>FROM〈表名>W(wǎng)HERE〈條件表達式>ORDERBY〈排序表達式>[ASC|DESC]GROUPBY子句、HAVING子句——按條件分類統(tǒng)計在SELECT語句中可以使用GROUPBY子句進行分類統(tǒng)計。GROUPBY子句可以將表達式的值相同的記錄歸為同一組,從而進行統(tǒng)計。語法格式如下:GROUPBY<分組表達式>HAVING子句指定組或聚合的搜索條件,只能和SELECT語句一起使用,通常和GROUPBY連用。語法格式如下:〔HAVING<組條件表達式>范式:滿足特定要求得關(guān)系模式。設(shè)有關(guān)系模式R(U),X和Y是屬性集U的子集,r是R任一具體關(guān)系,如果對r的任意兩個元組t1和t2,都有t1[X]=t2[X]導(dǎo)致t1[Y]=t2[Y],那么稱X函數(shù)決定Y或Y函數(shù)依賴X,記為X-Y,X-Y為模式R的一個函數(shù)依賴。第一范式如果關(guān)系模式R的每個關(guān)系r的屬性值都是不可分的原子值,那么稱R是第一范式(firstnormalform,簡記為1NF)的模式。滿足1NF的關(guān)系稱為規(guī)范化的關(guān)系,否則稱為非規(guī)范化的關(guān)系。關(guān)系數(shù)據(jù)庫研究的關(guān)系都是規(guī)范化的關(guān)系。1NF是關(guān)系模式應(yīng)具備的最起碼的條件。在建立關(guān)系數(shù)據(jù)模型時,必須將非規(guī)范化形式規(guī)范化,第一范式如果關(guān)系模式R是1NF,且每個非主屬性完全函數(shù)依賴于候選鍵,那么稱R是第一范式(2NF)模式。如果數(shù)據(jù)庫模式中每個關(guān)系模式都是2NF,則稱數(shù)據(jù)庫模式為2NF的數(shù)據(jù)庫模式。對于函數(shù)依賴W-A,如果存在XW有X-A成立,那么稱W-A是局部依賴(A局部依賴TW);否則稱W-A是完全依賴。第二氾式如果關(guān)系模式R是1NF,且每個非主屬性都不傳遞依賴于R的候選鍵,那么稱R是第三范式(3NF)的模式。如果數(shù)據(jù)庫模式中每個關(guān)系模式都是3NF,則稱其為3NF的數(shù)據(jù)庫模式。如果X-Y,Y-A,且Y-X和AEY,那么稱X-A是傳遞依賴(A傳遞依賴于X)。數(shù)據(jù)庫模式設(shè)計原則:關(guān)系模式R相對于函數(shù)依賴集分解成數(shù)據(jù)庫模式p={R1,R2,。。。Rk},一般應(yīng)具有下面幾項特性。P中每個關(guān)系模式上應(yīng)有某種分時性質(zhì)(3NF或BCNF)無損聯(lián)接。保持函數(shù)的依賴集。無損聯(lián)接設(shè)R是一個關(guān)系模式,F(xiàn)是R上的一個函數(shù)依賴集。R分解成數(shù)據(jù)庫模式p={R1,…,Rk}。如果對R中滿足F的每一個關(guān)系r,都有r=nR1(r)^nR2(r)x?.?mKRk(r)那么稱分解p相對于F是“無損聯(lián)接分解”簡稱為“無損分解”,否則稱為“損失分解”。無損聯(lián)接測試:設(shè)p={R1,R2}是關(guān)系模式R的一個分解,F(xiàn)是R上成立的FD集,那么分解p相對于F是無損分解的充分必要條件是:(R1CR2)一(R1—R2)或(R1CR2)一(R2—R1)。保持函數(shù)的依賴集保持關(guān)系模式一個分解是等價的另一個重要條件是關(guān)系模式的函數(shù)依賴集在分解后仍在數(shù)據(jù)庫模式中保持不變。設(shè)p={R1,…,Rk}是R的一個分解,F(xiàn)是R上的函數(shù)依賴,如果有UnRi(F)=F,那么稱分解p保持函數(shù)依賴集F。三.操作系統(tǒng)知識3.1操作系統(tǒng)的基本概念操作系統(tǒng)的定義能有效地組織和管理系統(tǒng)中的各種軟、硬件資源,合理地組織計算機系統(tǒng)工作流程,控制程序的執(zhí)行,并且向用戶提供一個良好的工作環(huán)境和友好的接口。硬件資源:包括CPU,存儲器,輸入/輸出資源等物理設(shè)備。軟件資源:以文件形式保存在存儲器上的程序和數(shù)據(jù)等信息。操作系統(tǒng)的2個重要作用:通過資源管理提高計算機系統(tǒng)的效率改善人機界面,向用戶提供友好的工作環(huán)境操作系統(tǒng)的4個特征并發(fā)性:計算機系統(tǒng)存在著許多并發(fā)執(zhí)行的活動(2)共享性:系統(tǒng)中各個并發(fā)活動要共享計算機系統(tǒng)中的各種軟,硬件資源。虛擬性:虛擬是操作系統(tǒng)中的重要特征,所謂虛擬就是把物理上的一臺設(shè)備變成邏輯上的多臺設(shè)備。不確定性(異步性):指進程的執(zhí)行順序和執(zhí)行時間及執(zhí)行結(jié)果的不確定性。操作系統(tǒng)的5大管理功能進程管理存儲管理設(shè)備管理文件管理作業(yè)管理多道程序設(shè)計原理:在計算機內(nèi)存中同時存放幾道相互獨立的程序,它們在管理程序的控制下相互穿插地運行,共享CPU和外設(shè)等資源。程序:具有特定功能的一組指令集合,它指出了處理器執(zhí)行操作的步驟。進程:進程是一個程序在一個數(shù)據(jù)集合上的一次執(zhí)行。3.2進程管理程序和進程區(qū)別:程序是動態(tài)的,進程是動態(tài)的。進程與程序的對應(yīng)關(guān)系:通過多次執(zhí)行,一個程序可對應(yīng)多個進程;通過調(diào)用關(guān)系,一個進程可包括多個程序。進程是暫時的,程序的永久的:進程是一個狀態(tài)變化的過程,程序可長久保存。進程與程序的組成不同:進程的組成包括程序、數(shù)據(jù)進程控制塊(即進程狀態(tài)信息)。進程通常由三部分組成:程序:描述了進程所要完成的功能,是進程執(zhí)行時不可修改的部分。數(shù)據(jù)集合:程序執(zhí)行時所需要的數(shù)據(jù)和工作區(qū),為一個進程專用,可修改。進程控制塊PCB(ProcessControlBlock):包含了進程的描述信息和控制信息,是進程的動態(tài)特性的集中反映。PCB包含以下幾類信息:進程描述信息、進程控制信息、資源占用信息、CPU現(xiàn)場保護結(jié)構(gòu)。進程的基本狀態(tài)及轉(zhuǎn)換:進程在生命期內(nèi)處于且僅處于三種基本狀態(tài)之一:運行態(tài):當一個進程在處理機上運行時,則稱該進程處于運行狀態(tài)。就緒態(tài):一個進程獲得了除處理機外的一切所需資源,一旦得到處理機即可運行,則稱此進程處于就緒狀態(tài)。阻塞態(tài):當一個進程正在等待某一事件發(fā)生(例如請求I/O而等待I/O完成等)而暫時停止運行,這時即使把處理機分配給進程也無法運行,故稱該進程處于阻塞狀態(tài)。注意與就緒狀態(tài)的不同在于即使處理機處于空閑狀態(tài)也無法運行。就緒一運行:調(diào)度程序選擇一個新的進程運行.運行一就緒:運行進程用完時間片被中斷或在搶占調(diào)度方式中,因為一高優(yōu)先級進程進入就緒狀態(tài)運行一阻塞:進程發(fā)生I/O請求或等待某事件時阻塞一就緒:當I/O完成或所等待的事件發(fā)生時進程調(diào)度程序:主要任務(wù)是按照一定的調(diào)度算法從就緒隊列中選取一個進程,把處理機分配給此進程使用。進程調(diào)度方式(1)非搶占方式:在非搶占方式下,調(diào)度程序一旦把CPU分配給某一進程后便讓它一直運行下去,直到進程完成或發(fā)生某事件而不能運行時,才將CPU分給其它進程。這種調(diào)度方式通常用在批處理系統(tǒng)中。它的主要優(yōu)點是簡單、系統(tǒng)開銷小。搶占方式:當一個進程正在執(zhí)行時,系統(tǒng)可以基于某種策略剝奪CPU給其它進程。剝奪的原則有:優(yōu)先權(quán)原則、短進程優(yōu)先原則和時間片原則。這種調(diào)度方式多用在分時系統(tǒng)和實時系統(tǒng)中,以便及時響應(yīng)各進程的請求。進程調(diào)度算法先來先服務(wù)FCFS(先進先出調(diào)度算法,F(xiàn)IFO)【算法思想】:最簡單的算法按照進程進入就緒隊列的先后次序,分派CPU;當前進程占用CPU,直到執(zhí)行完或阻塞,才出讓CPU(非搶占方式)。在進程喚醒后(如I/O完成),并不立即恢復(fù)執(zhí)行,通常等到當前進程出讓CPU?!咎攸c】:比較有利于長作業(yè),而不利于短作業(yè)。有利于CPU繁忙的作業(yè),而不利于I/O繁忙的作業(yè)。(2)短進程優(yōu)先調(diào)度算法(SJF,SPF)【算法思想】:選擇就緒隊列中估計運行時間最短的進程投入運行。通常后來的短作業(yè)不搶先正在執(zhí)行的作業(yè)?!緝?yōu)點】:比FCFS改善平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間,縮短作業(yè)的等待時間;提高系統(tǒng)的吞吐量;【缺點】:對長作業(yè)非常不利,可能長時間得不到執(zhí)行;未能依據(jù)作業(yè)的緊迫程度來劃分執(zhí)行的優(yōu)先級;難以準確估計作業(yè)(進程)的執(zhí)行時間,從而影響調(diào)度性能。優(yōu)先權(quán)調(diào)度算法(HPF—HighestPriorityFirst)【算法思想】:優(yōu)先選擇就緒隊列中優(yōu)先級最高的進程投入運行。分為:非搶占式優(yōu)先級算法:僅發(fā)生在進程放棄CPU。搶占式優(yōu)先級算法:可剝奪當前運行進程CPU。【優(yōu)先權(quán)的類型】靜態(tài)優(yōu)先級:在進程創(chuàng)建時指定優(yōu)先級,在進程運行時優(yōu)先數(shù)不變。動態(tài)優(yōu)先級:在進程創(chuàng)建時創(chuàng)立一個優(yōu)先級,但在其生命周期內(nèi)優(yōu)先數(shù)可以動態(tài)變化。如等待時間長優(yōu)先數(shù)可改變。【確定優(yōu)先級的依據(jù)】進程類型、對資源的需求、根據(jù)用戶要求。高響應(yīng)比優(yōu)先(HRRN,HighestResponseRatioNext):HRRN是FCFS和SJF的折衷算法,響應(yīng)比R用下式動態(tài)計算:
響應(yīng)比R=響應(yīng)比R=等待時間+要求服務(wù)時間等待時間相同要求服務(wù)的時間越短優(yōu)先權(quán)越高,有利于短作業(yè)。要求服務(wù)時間相同,等待時間越長優(yōu)先權(quán)越高,近似于先來先服務(wù)。長作業(yè)的優(yōu)先權(quán)會隨等待時間加長而升高,長作業(yè)也會得到執(zhí)行。時間片輪轉(zhuǎn)調(diào)度算法【算法思想】:通過時間片輪轉(zhuǎn),提高進程并發(fā)性和響應(yīng)時間特性,從而提高資源利用率。將系統(tǒng)中所有的就緒進程按照FCFS原則,排成一個隊列每次調(diào)度時將CPU分派給隊首進程,讓其執(zhí)行一個時間片。時間片的長度從幾個ms到幾百ms。在一個時間片結(jié)束時,發(fā)生時鐘中斷調(diào)度程序據(jù)此暫停當前進程的執(zhí)行,將其送到就緒隊列的末尾并通過CPU現(xiàn)場切換執(zhí)行當前的隊首進程進程可以未使用完一個時間片,就出讓CPU(如阻塞)。多級反饋隊列算法(多隊列輪轉(zhuǎn)法)【算法思想】:設(shè)置多個就緒隊列,分別賦予不同的優(yōu)先級,隊列1的優(yōu)先級最高,其他逐級降低。每隊列分配不同的時間片,規(guī)定優(yōu)先級越低則時間片越長。新進程就緒后,先投入隊列1的末尾,按FCFS算法調(diào)度。若一個時間片未能執(zhí)行完,則降低投入到隊列2的末尾;依此類推,降低到最后的隊列,則按“時間片輪轉(zhuǎn)”算法調(diào)度直到完成。進程由于等待事件而放棄CPU后,進入等待隊列,一旦等待的事件發(fā)生,則回到原來的就緒隊列。僅當較高優(yōu)先級的隊列為空,才調(diào)度較低優(yōu)先級的隊列中的進程執(zhí)行。如果進程執(zhí)行時有新進程進入較高優(yōu)先級的隊列,則搶先執(zhí)行新進程,并把被搶先的進程投入原隊列的末尾。進程互斥一是指當有若干進程都要使用某一資源時,任何時刻最多只允許一個進程去使用,其他要使用該資源的進程必須等待,直到占用資源者釋放了該資源。這樣的資源稱為稱為互斥資源——打印機,共享變量等。臨界區(qū)一并發(fā)進程中與共享變量有關(guān)的程序段。PV操作一一進程的互斥PV操作由P操作和V操作組成,P操作和V操是兩個在信號量S上進行的操作。定義如下:
ProcedureP(S)beginS:二ST;ifS<0then則該進程進入等待隊列;end;{P}ProcedureV(S)beginS:=S+1;ifSW0then喚醒一個等待隊列中的進程進入就緒;end;{V}例:共享緩存器資源造成的錯誤進程緩存器進程處理A的執(zhí)行速度操作B的執(zhí)行速度,造成緩存器中的數(shù)據(jù)還沒拿走,A又讀入新數(shù)據(jù)覆蓋了原有數(shù)據(jù)。進程緩存器進程處理B的執(zhí)行速度操作A的執(zhí)行速度,B從緩存器取出一個記錄并加工后,A還沒有讀入新數(shù)據(jù),造成B在緩存器中重復(fù)取同一個記錄加工。進程同步一是指并發(fā)進程之間存在一種制約關(guān)系,一個進程的執(zhí)行依賴另一個進程的消息,當一個進程沒有得到另一個進程的消息時應(yīng)等待,直到消息到達才被喚醒。PV操作一一進程的互斥調(diào)用P操作測試消息是否到達。若消息尚未到達則S=0,調(diào)用P(S)后,讓調(diào)用者稱為等待信號量S的狀態(tài);若消息已經(jīng)存在則SU0,調(diào)用P(S)后進程不會成為等待狀態(tài)而可繼續(xù)執(zhí)行。調(diào)用V操作發(fā)送消息。任何進程要向進程發(fā)送消息時可調(diào)用V操作。若調(diào)用V操作之前S=0,表示消息產(chǎn)生且無等待消息進程,這是調(diào)用V(S),執(zhí)行S:=S+1使SU0,意味著消息已存在。若調(diào)用V操作之前S<0,表示消息未產(chǎn)生前已有進程在等待消息,這是調(diào)用V(S)后釋放一個等待消息者,即表示該進程等待的消息已經(jīng)到達可以繼續(xù)執(zhí)行。死鎖死鎖的概念:指多個進程因競爭資源而造成的一種僵局,若無外力作用,這些進程都將永遠不能再向前推進。死鎖產(chǎn)生的原因競爭資源當系統(tǒng)中供多個進程所共享的資源,不足以同時滿足它們的需要時,引起它們對資源的競爭而產(chǎn)生死鎖。進程推進順序不當進程在運行過程中,請求和釋放資源的順序不當,導(dǎo)致了進程的死鎖。死鎖產(chǎn)生的必要條件互斥使用資源占有并等待資源不可剝奪資源循環(huán)等待資源處理死鎖的基本方法預(yù)防死鎖避免死鎖銀彳丁家算法檢測死鎖解除死鎖避免死鎖銀彳丁家算法【基本思想】銀行家算法是通過動態(tài)地檢測系統(tǒng)中資源分配情況和進程對資源的需求情況來決定如何分配資源的,在能確保系統(tǒng)處于安全狀態(tài)時才能把資源分配給申請者,從而避免系統(tǒng)發(fā)生死鎖。5.1UML概述UML(UnifiedModelingLanguage)是一種基于面向?qū)ο蟮目梢暬耐ㄓ?General)建模語言。為不同領(lǐng)域的用戶提供了統(tǒng)一的交流標準一UML圖。UML應(yīng)用領(lǐng)域很廣泛,可用于軟件開發(fā)建模的各個階段,商業(yè)建模(BusinessModeling),也可用于其它類型的系統(tǒng)。UML是一種定義良好,易于表達,功能強大且普遍實用的建模語言,不是一種方法,它獨立于過程。利用它建模時,可遵循任何類型的建模過程。UML的主要內(nèi)容(1)UML融合了Booch、OMT和OOSE方法中的基本概念,而且這些基本概念與其他面向?qū)ο蠹夹g(shù)中的基本概念大多相同;(2)UML不僅僅是上述方法的簡單匯合,而是擴展了現(xiàn)有方法的應(yīng)用范圍;(3)UML是標準的建模語言,而不是標準的開發(fā)過程。什么是模型?模型是對系統(tǒng)的完整的抽象表示,建模是在不同層次上對系統(tǒng)的描述。為什么要建模?鑒于軟件系統(tǒng)的復(fù)雜性和規(guī)模的不斷增大,需要建立不同的模型對系統(tǒng)的各個層次進行描述。(軟件模型包括:數(shù)學(xué)模型、描述模型和圖形模型)便于開發(fā)人員與用戶的交流。模型為以后的系統(tǒng)維護和升級提供了文檔建模過程:UML作為一種可視化的建模語言,提供了豐富的基于面向?qū)ο蟾拍畹哪P驮丶捌鋱D形表示元素。5.1.2UML的主要內(nèi)容UML的定義包括UML語義和UML表示法兩個部分。UML語義描述基于UML的精確元模型(meta-model)定義。UML表示法定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標準。UML是一種標準化的圖形建模語言,它是面向?qū)ο蠓治雠c設(shè)計的一種標準表示。由:視圖(views),圖(Diagrams),模型元素(Modelelements),通用機制(generalmechanism)等幾個部分構(gòu)成。一個系統(tǒng)應(yīng)從不同的角度進行描述,從一個角度觀察到的系統(tǒng)稱為一個視圖(view)。視圖由多個圖(Diagrams)構(gòu)成,它不是一個圖表(Graph),而是在某一個抽象層上,對系統(tǒng)的抽象表示。UML語言定義了五種類型,9種不同的圖,把它們有機的結(jié)合起來就可以描述系統(tǒng)的所有視圖。用例圖(Usecasediagram)從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。靜態(tài)圖(Staticdiagram),表示系統(tǒng)的靜態(tài)結(jié)構(gòu)。包括類圖、對象圖、包圖。行為圖(Behaviordiagram),描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。包括狀態(tài)圖、活動圖。交互圖(Interactivediagram),描述對象間的交互關(guān)系。包括順序圖、合作圖。實現(xiàn)圖(Implementationdiagram)用于描述系統(tǒng)的物理實現(xiàn)。包括構(gòu)件圖、部件圖。UML的9種圖圖名稱圖定義圖性質(zhì)1類圖一組類、接口、協(xié)作及它們的關(guān)系靜態(tài)圖2對象圖一組對象及它們的關(guān)系靜態(tài)圖3用例圖一組用例、參與者及它們的關(guān)系靜態(tài)圖4順序圖一個交互,強調(diào)消息的時間順序動態(tài)圖5協(xié)作圖一個交互,強調(diào)消息發(fā)送和接受的對象的結(jié)動態(tài)圖構(gòu)組織6狀態(tài)圖一個狀態(tài)機,強調(diào)對象按事件排序的行為動態(tài)圖7活動圖一個狀態(tài)機,強調(diào)從活動到活動的流動動態(tài)圖8構(gòu)件圖一組構(gòu)件及關(guān)系靜態(tài)圖9配置圖一組接點及它們的關(guān)系靜態(tài)圖(實施圖)包圖:包中的類以及包與包之間的關(guān)系(靜態(tài)圖)UML的5種視圖
視圖名稱視圖內(nèi)容靜態(tài)表現(xiàn)動態(tài)表現(xiàn)觀察角度1用戶模型視圖系統(tǒng)行為,動用例圖交互圖、狀用戶、(用例視圖)力態(tài)圖、活動分析員、圖測試員2結(jié)構(gòu)模型視圖問題及解決類圖、對象交互圖、狀類、(設(shè)計視圖)方案圖態(tài)圖、活動接口、圖協(xié)作3行為模型視圖性能、可伸縮類圖、對象交互圖、狀線程、(進程視圖)性,吞吐量圖態(tài)圖、活動進程圖4實現(xiàn)模型視圖構(gòu)件、文件構(gòu)件圖交互圖、狀配置、(實現(xiàn)視圖)態(tài)圖、活動發(fā)布圖5環(huán)境模型視圖部件的發(fā)布、配置圖交互圖、狀拓撲結(jié)構(gòu)(實施視圖)交付、安裝(實施圖)態(tài)圖、活動的節(jié)點圖模型元素(Modelelements)代表面向?qū)ο笾械念悾瑢ο?,關(guān)系和消息等概念,是構(gòu)成圖的最基本的常用的元素。一個模型元素可以用于多個不同的圖中。通用機制(generalmechanism)用于表示其他信息,比如注釋,模型元素的語義等。另外,為了適應(yīng)用戶的需求,它還提供了擴展機制(Extensibilitymechanisms),包括構(gòu)造型(Stereotype)、標記值(Taggedvalue)和約束(Constraint).使用UML語言能夠適應(yīng)一個特殊的方法(或過程),或擴充至一個組織或用戶。模型元素(Modelelements)5.1.3UML的特點(1)統(tǒng)一標準UML統(tǒng)一了Booch、OMT和OOSE等方法中的基本概念,已成為OMG的正式標準,提供了標準的面向?qū)ο蟮哪P驮氐亩x和表示。面向?qū)ο骍ML還吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其它流派的精華。刪除了大量易引起混亂的、多余的和極少使用的符號,也添加了一些新符號??梢暬⒈硎灸芰娤到y(tǒng)的邏輯模型或?qū)崿F(xiàn)模型都能用UML模型清晰的表示,可用于復(fù)雜軟件系統(tǒng)的建模。易掌握、易用UML的概念明確,建模表示法簡潔明了,圖形結(jié)構(gòu)清晰,易于掌握使用。5.2通用模型元素模型元素是UML構(gòu)造系統(tǒng)的各種元素,是UML構(gòu)建模型的基本單位。分為以下兩類:基元素是由UML定義的模型元素。如:類、結(jié)點、構(gòu)件、注釋、關(guān)聯(lián)、依賴和泛化等。構(gòu)造型元素在基元素的基礎(chǔ)上增加了新的定義而構(gòu)造的新的模型元素。如擴展基元素的語義(不能擴展語法結(jié)構(gòu)),也允許用戶自定義。構(gòu)造型元素用括在雙尖括號<<>>中的字符串表示。日前UML提供了40多個預(yù)定義的構(gòu)造型元素。如包含<<include>>、擴展<<Extend>>。5.2.1常用模型元素可以在圖中使用的概念統(tǒng)稱為模型元素。模型元素在圖中用其相應(yīng)的視圖元素(符號)表示,圖中給出了常用的元素符號:類、對象、結(jié)點、包和組件等。模型元素與模型元素之間的連接關(guān)系也是模型元素,常見的關(guān)系有關(guān)聯(lián)(association)、泛化(generalization)、依賴(dependency)和聚合(aggregation),其中聚合是關(guān)聯(lián)的一種特殊形式。這些關(guān)系的圖示符號如圖所示。依賴關(guān)聯(lián)才泛化(繼承)組合TOC\o"1-5"\h\z>'\o"CurrentDocument"細化^聚合/—.—.—.—.—.—p/Q關(guān)聯(lián):連接(connect)模型元素及鏈接(link)實例。依賴:表示一個元素以某種方式依賴于另一種元素。泛化:表示一般與特殊的關(guān)系,即“一般”元素是“特殊”關(guān)系的泛化。聚合:表示整體與部分的關(guān)系。5.2.2關(guān)聯(lián)和鏈關(guān)聯(lián)(association)是兩個或多個類之間的一個關(guān)系。鏈(link)是關(guān)聯(lián)的具體體現(xiàn)。關(guān)聯(lián)分為二元關(guān)聯(lián)(binary)、三元關(guān)聯(lián)(ternary)、多元關(guān)聯(lián)(higherorder)。5.2.3關(guān)聯(lián)的表示關(guān)聯(lián)的重數(shù)重數(shù)(multiplicity)表示多少個對象與對方對象相連接,常用的重數(shù)符號有:“0..1”表示零或1“0..*”或%”表示零或多個“1..*”表示1或多個“1,3,7”表示1或3或7(枚舉型)重數(shù)的默認值為1。有序關(guān)聯(lián)與導(dǎo)航(導(dǎo)引)在關(guān)聯(lián)的多端標注{ordered}指明這些對象是有序的。關(guān)聯(lián)可以用箭頭,表示該關(guān)聯(lián)使用的方向(單向或雙向),稱為導(dǎo)引或?qū)Ш?navigation)。受限關(guān)聯(lián)(qualifiedassociation)使用限定詞對該關(guān)聯(lián)的另一端的對象進行明確的標識和鑒別,如圖。如果對關(guān)聯(lián)的含義作出某種限制,稱為受限關(guān)聯(lián)。5.2.4約束UML中提供了一種簡便、統(tǒng)一和一致的約束(constraint),是各種模型元素的一種語義條件或限制。一條約束只能應(yīng)用于同一類的元素。約束的表示如果約束應(yīng)用于一種具有相應(yīng)視圖元素的模型元素,它可以出現(xiàn)在它所約束元素視圖元素的旁邊。通常一個約束由一對花括號括起來({constraint}),花括號中為約束內(nèi)容,如果一條約束涉及同一種類的多個元素,則要用虛線把所有受約束的元素框起來,并把該約束顯示在旁邊(如或約束)。約束可分為:對泛化的約束、關(guān)聯(lián)的約束對泛化的約束應(yīng)用于泛化的約束,顯示在大括號里,若有多個約束,用逗號隔開。如果沒有共享,則用一條虛線通過所有繼承線,并在虛線的旁邊顯示約束。對泛化有以下常用的約束:complete:說明泛化中所有子元素都已在模型中說明,不允許再增加其它子元素。disjoint:父類對象不能有多于一個型的子對象。incomplete:說明不是泛化中所有子元素都已說明,允許再增加其它子元素。overlapping:給定父類對象可有多于一個型的子對象,表示重載。對關(guān)聯(lián)有以下常用的約束:1.implicit:該關(guān)聯(lián)只是概念性的,在對模型進行精化時不再用。2.ordered:具有多重性的關(guān)聯(lián)一端的對象是有序的。changeable:關(guān)聯(lián)對象之間的鏈(Link)是可變的(添加、修改、刪除)。addonly:可在任意時刻增加新的鏈接。frozen:凍結(jié)已創(chuàng)建的對象,不能再添加、刪除和修改它的鏈接。xor:“或約束”,某時刻只有一個當前的關(guān)聯(lián)實例。5.2.6依賴依賴關(guān)系描述的是兩個模型元素(類,組合,用例等)之間的語義上的連接關(guān)系,其中一個模型元素是獨立的,另一個模型元素是非獨立的(或依賴的)依賴的形式可能是多樣的,針對不同的依賴的形式,依賴關(guān)系有不同的變體(varieties):<1>抽象(abstraction):從一個對象中提取一些特性,并用類方法表示。<2>綁定(binding):為模板參數(shù)指定值,以定義一個新的模板元素。<3>組合(combination):對不同類或包進行性質(zhì)相似融合。<4>許可(permission):允許另一個對象對本對象的訪問。<5>使用(usage):聲明使用一個模型元素需要用到已存在的另一個模型元素,這樣才能正確實現(xiàn)使用者的功能(包括調(diào)用、實例化、參數(shù)、發(fā)送)。<6>跟蹤(trace):聲明不同模型中元素的之間的存在一些連接。<7>訪問或連接(access):允許一個包訪問另一個包的內(nèi)容。<8>調(diào)用(call):聲明一個類調(diào)用其他類的操作的方法。<9>導(dǎo)出(derive):聲明一個實例可從另一個實例導(dǎo)出。<10>友元(friend):允許一個元素訪問另一個元素,不管被訪問的元素是否具有可見性。<11>引入(import):允許一個包訪問另一個包的內(nèi)容并被訪問組成部分增加別名。<12>實例(instantiation):關(guān)于一個類的方法創(chuàng)建了另一個類的實例聲明。<13>參數(shù)(parameter):一個操作和它參數(shù)之間的關(guān)系。<14>實現(xiàn)(realize):說明和其實之間的關(guān)系。<15>精化(refine):聲明具有兩個不同語義層次上的元素之間的映射。<16>發(fā)送(send):信號發(fā)送者和信號接收者之間的關(guān)系。5.2.7細化有兩個元素入和日若B元素是A元素的詳細描述,則稱為B元素細化A元素細化與類的抽象層次有密切的關(guān)系,在構(gòu)造模型時要經(jīng)過逐步細化,逐步求精的過程。5.2.8注釋注釋用于對UML語言的元素或?qū)嶓w進行說明,解釋和描述。通常用自然語言進行注釋。5.3用例建模UML的用例模型一直被推薦為識別和捕獲需求的首選工具??!用例驅(qū)動的系統(tǒng)分析與設(shè)計方法已成為面向?qū)ο蟮南到y(tǒng)分析與設(shè)計方法的主流。5.3.1用例建模概述
用例建模技術(shù),用于描述系統(tǒng)的功能需求。在宏觀上給出模型的總體輪廓。通過對典型用例的分析,使開發(fā)者能夠有效地了解用戶的需求。防火墻規(guī)則表管驅(qū)動程序(NIC開/關(guān)防火防火墻規(guī)則管理員<<use>>網(wǎng)卡TCP/IP協(xié)議棧基于歷史狀態(tài)的包網(wǎng)絡(luò)中間層狀態(tài)包檢測防火墻系統(tǒng)5.3.2用例模型(Usecasemodel)防火墻規(guī)則表管驅(qū)動程序(NIC開/關(guān)防火防火墻規(guī)則管理員<<use>>網(wǎng)卡TCP/IP協(xié)議?;跉v史狀態(tài)的包用例模型由若干個用例圖構(gòu)成,用例圖中主要描述執(zhí)行者和用例之間的關(guān)系。在UML中,構(gòu)成用例圖的主要元素是用例和執(zhí)行者及其
它們之間的聯(lián)系。創(chuàng)建用例模型的工作包括:定義系統(tǒng)、確定執(zhí)行者和用例、描述用例、定義用例間的關(guān)系、確認模型。如何建立用例模型建立系統(tǒng)用例模型的過程就是對系統(tǒng)進行功能需求分析的過程。定義確定執(zhí)行描述執(zhí)行者確認?確定系統(tǒng)范圍;?分析系定義確定執(zhí)行描述執(zhí)行者確認?確定系統(tǒng)范圍;?分析系統(tǒng)功能。?執(zhí)行者通常是使用系統(tǒng)功能的外部用戶或系統(tǒng)。?用例是一個子系統(tǒng)或系統(tǒng)的一個獨立、完整功能。各模型元素之間有:關(guān)聯(lián)、使用、擴展及泛化等關(guān)系。確認用例模型與用戶需求的一致性,通常由用戶與開發(fā)者共同完成。一、確定執(zhí)行者(Actor)執(zhí)行者是指用戶在系統(tǒng)中所扮演的角色,執(zhí)行者用類似人的圖形來表示,但執(zhí)行者可以是人,也可以是一個外界系統(tǒng)。如何確定執(zhí)行者:1、誰使用系統(tǒng)的主要功能(主執(zhí)行者)?2、誰需要從系統(tǒng)獲得對日常工作的支持和服務(wù)?3、需要誰維護管理系統(tǒng)的日常運行(副執(zhí)行者)?4、系統(tǒng)需要控制哪些硬件設(shè)備?5、系統(tǒng)需要與其它哪些系統(tǒng)交互?6、誰需要使用系統(tǒng)產(chǎn)生的結(jié)果(值)?二、用例如何確定用例:1、與系統(tǒng)實現(xiàn)有關(guān)的主要問題是什么?2、系統(tǒng)需要哪些輸入/輸出?這些輸入/輸出從何而來?到哪里去?3、執(zhí)行者需要系統(tǒng)提供哪些功能?4、執(zhí)行者是否需要對系統(tǒng)中的信息進行讀、創(chuàng)建、修改、刪除或存儲?三、用例之間的關(guān)系執(zhí)行者與用例之間通常是一種關(guān)聯(lián)。用例之間的聯(lián)系:<<Use>>表示一個用例使用另一個用例。<<Extend>>通過向被擴展的用例添加動作來擴展用例。<<include>>表示一個用例的行為包含了另一個用例的行為。其中:<<Use>>,<<Extend>>是一種泛化關(guān)系。<<include>>是一種依賴關(guān)系。專題一:計算機系統(tǒng)知識1、計算機硬件基礎(chǔ)知識:1.1計算機系統(tǒng)結(jié)構(gòu)計算機的發(fā)展歷史:1946年,世界上第一臺電子計算機ENIAC出現(xiàn),之后經(jīng)歷了5個發(fā)展階段:電子菅晶體管——』集成電路大規(guī)模集成電路超大規(guī)模集成電路計算機的組成部分:存儲器、運算器、控制器、輸入設(shè)備和輸出設(shè)備。計算機的工作過程:一般是由用戶使用各種編程語言把所需要完成的任務(wù)以程序的形式提交給計算機,然后翻譯成計算機能直接執(zhí)行的機器語言程序,在計算機上運行。計算機系統(tǒng)可以由下面的模型表示:真吸語言機器匯編語言機器操作系統(tǒng)機器物理機器計算機系統(tǒng)結(jié)構(gòu)(computerarchitecture):指機器語言級機器(物理機器)的系統(tǒng)結(jié)構(gòu),它主要研究軟件、硬件功能分配,確定軟件、硬件界面(機器級界面),計算機組成(computerorganization):是指計算機系統(tǒng)的邏輯實現(xiàn).日標是合理的把各種部件、設(shè)備組成計算機,以實現(xiàn)特定的系統(tǒng)結(jié)構(gòu),同時滿足所希望達到的性能價格比。計算機實現(xiàn)(computerimplementation)是指計算機組成的物理實現(xiàn)。計算機系統(tǒng)的分類:Flynn分類、馮氏分類、Handler分類和Kuck分類Flynn分類:根據(jù)不同指令流一數(shù)據(jù)流組織方式把計算機系統(tǒng)分成4類。(重點理解)指令流:機器指令的執(zhí)彳丁序列;數(shù)據(jù)流:由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果;多倍性:在系統(tǒng)性能的瓶頸部件上同時處于同樣執(zhí)行階段的指令和數(shù)據(jù)的最大可能個數(shù);單指令流單數(shù)據(jù)流SISD——如單處理機單指令流多數(shù)據(jù)流SIMD——如相聯(lián)處理機多指令流單數(shù)據(jù)流MISD——如流水線計算機多指令流多數(shù)據(jù)流MIMD——如多處理機(7)數(shù)據(jù)校驗碼:基本思想是把數(shù)據(jù)可能出現(xiàn)的編碼區(qū)分為合法編碼和錯誤編碼。碼距:是指一個編碼系統(tǒng)中任意兩個合法編碼之間至少有多少個二進制位不同。碼距為1的編碼是不能發(fā)現(xiàn)錯誤的。常用的校驗碼有3種。▲奇偶校驗碼:不能發(fā)現(xiàn)偶數(shù)位錯誤.該編碼通過增加一位校驗位來使編碼中1的個數(shù)為奇數(shù)(奇校驗)或者為偶數(shù)(偶校驗)從而使碼距變?yōu)?,來檢測數(shù)據(jù)代碼中奇數(shù)出錯的編碼。因為其利用的是編碼中1的個數(shù)的奇偶性作為依據(jù),所以不能發(fā)現(xiàn)偶數(shù)位錯誤。校驗位的添加方法有三種:水平奇偶校驗碼:對每個數(shù)據(jù)的編碼添加校驗位垂直奇偶校驗碼:對一組數(shù)據(jù)的相同位添加一個校驗位;水平垂直奇偶校驗碼:先對一組數(shù)據(jù)垂直校驗,所得結(jié)果再添加一位水平校驗位;▲海明校驗碼:也是利用奇偶性來檢錯和糾錯,通過在數(shù)據(jù)之間插入k個校驗位,擴大數(shù)據(jù)編碼的碼距,從而有能力檢測出n位錯,并能糾正1位或n位錯?!h(huán)校驗碼(CRC)校驗碼:采用模2運算,可檢測所有等于、小于校驗位長度的突發(fā)錯,利用生成多項式為k個數(shù)據(jù)位產(chǎn)生r個校驗位進行編碼,其編碼長度為n=k+rk,又稱為(n,k)碼,生成的多項式與被校驗的數(shù)據(jù)無關(guān)。1.3存儲器系統(tǒng):概述:計算機中的存儲系統(tǒng)是用來保存數(shù)據(jù)和程序的。對存儲器最基本的要求就是存儲容量要大、存取速度快、成本價格低。為了滿足這一要求,提出了多級存儲體系結(jié)構(gòu)。一般可分為高速緩沖存儲器、主存、外存3個層次,有時候還包括CPU內(nèi)部的寄存器以及控制存儲器。衡量存儲器的主要因素:存儲器訪問速度、存儲容量和存儲器的價格;存儲器的介質(zhì):半導(dǎo)體、磁介質(zhì)和光存儲器。存儲器的組成:存儲芯片+控制電路(存儲體+地址寄存器+數(shù)據(jù)緩沖器+時序控制);存儲體系結(jié)構(gòu)從上層到下層離CPU越來越遠、存儲量越來越大、每位的價格越來越便宜,而且訪問的速度越來越慢存儲器系統(tǒng)分布在計算機各個不同部件的多種存儲設(shè)備組成,位于CPU內(nèi)部的寄存器以及用于CU的控制寄存器:內(nèi)部存儲器是可以被處理器直接存取的存儲器,又稱為主存儲器,外部存儲器需要通過I/O模塊與處理器交換數(shù)據(jù),又稱為輔助存儲器,彌補CPU處理器速度之間的差異還設(shè)置了CACHE,容量小但速度極快,位于CPU和主存之間,用于存放CPU正在執(zhí)行的程序段和所需數(shù)據(jù)。通常衡量主存容量大小的單位是字節(jié)或者字,而外存的容量則用字節(jié)來表示。信息存取方式常用的有4種,?順序存取存儲器的數(shù)據(jù)是以記錄的形式進行組織,對數(shù)據(jù)的訪問必須按特定的線性順序進行。磁帶存儲器的存取方式就是順序存取。?直接存取共享讀寫裝置,但是每個記錄都有一個唯一的地址標識,共享的讀寫裝置可以直接移動到日的數(shù)據(jù)塊所在位置進行訪問。因此存取時間也是可變的。磁盤存儲器采用的這種方式。?隨機存取存儲器的每一個可尋址單元都具有唯一地址和讀寫裝置,系統(tǒng)可以在相同的時間內(nèi)對任意一個存儲單元的數(shù)據(jù)進行訪問,而與先前的訪問序列無關(guān)。主存儲器采用的是這種方式。?相聯(lián)存取也是一種隨機存取的形式,但是選擇某一單元進行讀寫是取決于其內(nèi)容而不是其地址。Cache可能采用該方法進行訪問。主存儲器:通常位于所謂主機的范疇,常稱為內(nèi)存。如果內(nèi)存的地址為n位,容量為2的n次。主存儲器的種類很多,主要有:隨機存儲器(RAM):可以讀出和寫入,隨機訪問存取,斷電消失只讀存儲器(ROM):只能讀出原有的內(nèi)容,不能寫入新內(nèi)容可編程ROM(PROM)可擦除PROM(EPROM)電可擦除PROM(E2PROM)閃速存儲器(flashmemory)輔助存儲器:位于主機的邏輯范疇之外,常稱為外存儲器,簡稱外存。外存的最大特點是容量大、可靠性高、價格低,主要有兩大類。?磁表面存儲器:這類外存儲器主要包括磁帶和磁盤存儲器。?光存儲器:是利用激光束在記錄表面存儲信息,根據(jù)激光束的反射光來讀出信息。按照它的記錄原理可分為形變型、相變型(品相結(jié)構(gòu))和磁光型。有CD、CD-ROM、WORM、EOD等。光盤存儲器的特點:大容量、標準化、相容性、持久性、實用性Cache存儲器:(對系統(tǒng)和應(yīng)用程序員都是透明的)(重點)Cache位于主存儲器與CPU通用寄存器組之間,全部由硬件來調(diào)度,用于提高CPU的數(shù)據(jù)I/O效率,對程序員和系統(tǒng)程序員都是透明的。Cache容量小但速度快,它在計算機的存儲體系中是訪問速度最快的層次。使用Cache改善系統(tǒng)性能的依據(jù)是程序的局部性原理,即程序的地址訪問流有很強的時序相關(guān)性,未來的訪問模式與最近已發(fā)生的訪問模式相似。根據(jù)這一局部性原理,把主存儲器中訪問概率最高的內(nèi)容存放在Cache中,當CPU需要讀取數(shù)據(jù)時就首先在Cache中查找是否有所需內(nèi)容,如果有則直接從Cache中讀??;若沒有再從主存中讀取該數(shù)據(jù),然后同時送往CPU和Cache。
系統(tǒng)的平均存儲周期t3與命中率h有很密切的關(guān)系,如下的公式:t3=hXt1+(1-h)Xt2其中,t1表示Cache的周期時間,t2表示主存的周期時間。1.4中央處理器CPUCPU由寄存器組、算術(shù)邏輯單元ALU和控制單元CU這3部分組成。寄存器組分為兩大類:用戶可見的寄存器,有通用寄存器、數(shù)據(jù)寄存器、地址寄存器、標志寄存器等;狀態(tài)寄存器,包括程序計數(shù)器PC、指令寄存器廊、存儲器地址寄存器MAR、存儲器緩沖寄存器MBR、程序狀態(tài)字PSW。志寄存器等;運算器ALU:負責(zé)對數(shù)據(jù)進行算術(shù)和邏輯運算。控制器CU:負責(zé)控制整個計算機系統(tǒng)的運行,計算機的指令系統(tǒng):機器指令的格式、分類及功能:CPU所完成的操作是由其執(zhí)行的指令來決定的,這些指令被稱為機器指令CPU所能執(zhí)行的所有機器指令的集合稱為該CPU的指令系統(tǒng)機器指令一般由操作碼、源操作數(shù)、日的操作數(shù)和下一條指令的地址組成。操作碼指明要執(zhí)行的操作;源操作數(shù)是該操作的輸入數(shù)據(jù);日的操作數(shù)是該操作的輸出數(shù)據(jù);下一條指令地址通知CPU到該地址去取下一條將執(zhí)行的指令。指令系統(tǒng)可分為數(shù)據(jù)傳送類、算術(shù)運算類、邏輯類、數(shù)據(jù)變換類、輸入/輸出類、系統(tǒng)控制類、控制權(quán)轉(zhuǎn)移類等類型。指令的尋址方式常用的尋址方式有立即數(shù)尋址、直接尋址、間接尋址、寄存器尋址、基址尋址、變址尋址、相對尋址指令的執(zhí)行過程計算下一條要執(zhí)行的指令的地址;從該地址讀取指令;對指令譯碼以確定其所要實現(xiàn)的功能;計算操作數(shù)的地址;從該地址讀取操作數(shù);執(zhí)行操作;保存結(jié)果;I/O系統(tǒng)的工作方式:程序控制:CPU完全控制,CPU必須時時查詢I/O設(shè)備的狀態(tài);程序中斷:I/O設(shè)備以中斷方式通知CPU,定期查詢狀態(tài)DMA方式:CPU只在數(shù)據(jù)傳輸前和完成后才介入1.6計算機總線結(jié)構(gòu)總線:一種連接多個設(shè)備的信息傳遞通道。典型的計算機總線結(jié)構(gòu)由內(nèi)部總和外部總線組成。內(nèi)部總線用于連接CPU內(nèi)部各個模塊;外部總線用于連接CPU、存儲器和I/O系統(tǒng),又稱為系統(tǒng)總線。系統(tǒng)總線:可分為數(shù)據(jù)總線、地址總線、控制總線3類。數(shù)據(jù)總線:各個模塊間傳送數(shù)據(jù)的通道;地址總線:傳遞地址信息,來指示數(shù)據(jù)總線上的數(shù)據(jù)的來源或去向,CPU根據(jù)地址信息從相應(yīng)的存儲單元讀出數(shù)據(jù)或向該存儲單元寫入數(shù)據(jù);控制總線:控制數(shù)據(jù)總線和地址總線。流水線技術(shù)流水線技術(shù)其實是通過并行硬件來提高系統(tǒng)性能的常用方法。基本思想在馮?諾依曼第一臺存儲程序計算機中已經(jīng)提出。流水線技術(shù)的基本原理實際上是一種任務(wù)分解的技術(shù)RISC技術(shù)RISC即精簡指令集計算機,它的主要特點是CPU的指令集大大簡化,從而減少指令的執(zhí)行周期數(shù),提高運算速度。一般來說,CPU的執(zhí)行速度受三個因素的影響:程序中的指令數(shù)I每條指令執(zhí)行所需的周期數(shù)CPI每個周期的時間T它們之間的關(guān)系可表示為:程序執(zhí)行時間二I*CPI*T3.并行處理技術(shù)并行性(parallelism)就是指在同一時刻或同一時間間隔內(nèi)完成兩種或兩種以上性質(zhì)相同或不同的工作,只要時間上相互重疊,就都蘊含了并行性。并行性有兩重含義:同時性(simultaneity):兩個或兩個以上事件在同一時刻發(fā)生并發(fā)性(concurrency):兩個或兩個以上事件在同一時間間隔內(nèi)發(fā)生1.8計算機的安全、可靠性評價*<軟件設(shè)計師〉安全與保密數(shù)據(jù)加密即是對明文(未經(jīng)加密的數(shù)據(jù))按照某種的加密算法(數(shù)據(jù)的變換算法)進行處理,而形成難以理解的密文(經(jīng)加密后的數(shù)據(jù))。這是計算機安全中最重要的技術(shù)措施之一。數(shù)據(jù)加密和解密是一對可逆的過程,其關(guān)鍵在于密鑰的管理和加密/解密算法。通常加密/解密算法的設(shè)計需要滿足3個條件:可逆性密鑰安全數(shù)據(jù)安全計算機可靠性串聯(lián)系統(tǒng):該系統(tǒng)由N個子系統(tǒng)組成,當且僅當所有的子系統(tǒng)都能正常工作時,系統(tǒng)才能正常工作。并聯(lián)系統(tǒng):該系統(tǒng)由N個子系統(tǒng)組成,只要有一個子系統(tǒng)正常工作,系統(tǒng)就能正常運行。計算機性能評測是為了一定日的、按照一定步驟、選用一定的度量項日通過建模、計算和實驗,對計算機性能進行測試并對測試結(jié)果作出評價的技術(shù)。常用算法設(shè)計方法算法設(shè)計是一件非常困難的工作,經(jīng)常采用的算法設(shè)計技術(shù)主要有迭代法、窮舉搜索法、遞推法、貪婪法、回溯法、分治法、動態(tài)規(guī)劃法等等。另外,為了更簡潔的形式設(shè)計和藐視算法,在算法設(shè)計時又常常采用遞歸技術(shù),用遞歸描述算法。一、迭代法迭代法是用于求方程或方程組近似根的一種常用的算法設(shè)計方法。二、窮舉搜索法窮舉搜索法是對可能是解的眾多候選解按某種順序進行逐一枚舉和檢驗,并從眾找出那些符合要求的候選解作為問題的解。三、遞推法遞推法是利用問題本身所具有的一種遞推關(guān)系求問題解的一種方法。四、遞歸采用遞歸描述的算法通常有這樣的特征:為求解規(guī)模為N的問題,設(shè)法將它分解成規(guī)模較小的問題,然后從這些小問題的解方便地構(gòu)造出大問題的解,并且這些規(guī)模較小的問題也能采用同樣的分解和綜合方法,分解成規(guī)模更小的問題,并從這些更小問題的解構(gòu)造出規(guī)模較大問題的解。特別地,當規(guī)模N=1時,能直接得解。五、回溯法回溯法也稱為試探法,該方法首先暫時放棄關(guān)于問題規(guī)模大小的限制,并將問題的候選解按某種順序逐一枚舉和檢驗。六、貪婪法貪婪法是一種不追求最優(yōu)解,只希望得到較為滿意解的方法。貪婪法一般可以快速得到滿意的解,因為它省去了為找最優(yōu)解要窮盡所有可能而必須耗費的大量時間。貪婪法常以當前情況為基礎(chǔ)作最優(yōu)選擇,而不考慮各種可能的整體情況,所以貪婪法不要回溯。七、分治法1、分治法的基本思想任何一個可以用計算機求解的問題所需的計算時間都與其規(guī)模N有關(guān)。問題的規(guī)模越小,越容易直接求解,解題所需的計算時間也越少。分治法的設(shè)計思想是,將一個難以直接解決的大問題,分割成一些規(guī)模較小的相同問題,以便各個擊破,分而治之。2、分治法的適用條件分治法所能解決的問題一般具有以下幾個特征:該問題的規(guī)模縮小到一定的程度就可以容易地解決;該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子結(jié)構(gòu)性質(zhì);利用該問題分解出的子問題的解可以合并為該問題的解;該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子子問題。3、分治法的基本步驟分治法在每一層遞歸上都有三個步驟:分解:將原問題分解為若干個規(guī)模較小,相互獨立,與原問題形式相同的子問題;解決:若子問題規(guī)模較小而容易被解決則直接解,否則遞歸地解各個子問題;合并:將各個子問題的解合并為原問題的解。八、動態(tài)規(guī)劃法為了節(jié)約重復(fù)求相同子問題的時間,引入一個數(shù)組,不管它們是否對最終解有用,把所有子問題的解存于該數(shù)組中,這就是動態(tài)規(guī)劃法所采用的基本方法。java的23種設(shè)計模式創(chuàng)建型模式工廠模式:客戶類和工廠類分開。消費者任何時候需要某種產(chǎn)品,只需向工廠請求即可。消費者無須修改就可以接納新產(chǎn)品。缺點是當產(chǎn)品修改時,工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供。建造模式:將產(chǎn)品的內(nèi)部表象和產(chǎn)品的生成過程分割開來,從而使一個建造過程生成具有不同的內(nèi)部表象的產(chǎn)品對象。建造模式使得產(chǎn)品內(nèi)部表象可以獨立的變化,客戶不必知道產(chǎn)品內(nèi)部組成的細節(jié)。建造模式可
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國產(chǎn)壓花設(shè)備采購合同范例
- 2024三亞二手房買賣備案合同
- 2024大數(shù)據(jù)分析平臺建設(shè)與數(shù)據(jù)共享合同
- 場平工程合同范例
- 冷庫加工定做合同范例
- 04版生物醫(yī)藥研發(fā)與技術(shù)轉(zhuǎn)讓合同
- 出租飯店用品合同范例
- 內(nèi)貿(mào)船舶租用合同范例
- 住房合租合同范例
- 2024年辦公廠房無償使用出租合同
- (正式版)JBT 14795-2024 內(nèi)燃機禁用物質(zhì)要求
- 基于核心素養(yǎng)初中數(shù)學(xué)跨學(xué)科教學(xué)融合策略
- 200TEU 長江集裝箱船設(shè)計
- 辦公樓物業(yè)服務(wù)管理的培訓(xùn)
- 智慧能源管理平臺建設(shè)項目解決方案
- JTG∕T F30-2014 公路水泥混凝土路面施工技術(shù)細則
- 2024年高中語文學(xué)業(yè)水平過關(guān)測試四-名句名篇默寫積累過關(guān)訓(xùn)練(全國通用)學(xué)生版
- 糖尿病性舞蹈病
- 醫(yī)學(xué)類-教學(xué)查房異位妊娠(宮外孕)
- 眼視光技術(shù)職業(yè)生涯規(guī)劃大賽
- 《第八課 我的身體》參考課件
評論
0/150
提交評論