




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
41/412020年軟考軟件設計師考試知識點匯總目錄第一章軟件工程 11.1軟件工程基礎知識 11.1.1軟件生命周期 11.1.2軟件開發模型 11.1.3軟件開發方法 21.1.4軟件項目管理 21.1.5軟件過程管理 31.1.6軟件質量管理 41.2系統分析基礎知識 41.2.1結構化分析方法 41.3系統設計基礎知識 61.4系統實施基礎知識 71.5系統運行和維護基礎知識 8第二章數據庫技術基礎知識 82.1數據庫系統的基本概念 82.2數據庫系統的體系結構一三級結構兩級映象 92.3數據模型 102.4數據操作 12第三章操作系統知識 163.1操作系統的基本概念 163.2進程管理 17第四章UML 224.1UML概述 224.1.1UML的主要內容 234.1.2UML的特點 254.2通用模型元素 254.2.1常用模型元素 264.2.2關聯和鏈 264.2.3關聯的表示 264.2.4約束 274.2.6依賴 284.2.7細化 284.2.8注釋 294.3用例建模 294.3.1用例建模概述 294.3.2用例模型(Usecasemodel) 29第五章專題:計算機系統知識 315.1計算機系統結構 315.2存儲器系統 335.3中央處理器CPU 355.4計算機總線結構 365.5計算機的安全、可靠性評價*<軟件設計師> 365.6常用算法設計方法 37第一章軟件工程1.1軟件工程基礎知識1.1.1軟件生命周期軟件的生存期劃分為制定計劃、需求分析、設計、編程實現、測試、運行維護等幾個階段,稱為軟件生命周期。1.1.2軟件開發模型常見的軟件開發模型有瀑布模型、演化模型、螺旋模型、噴泉模型。1)瀑布模型(WaterfallModel):缺點:瀑布模型缺乏靈活性,無法通過開發活動澄清本來不夠明確的活動。因此,當用戶需求比較明確時才使用此模型。2)演化模型(EvolutionaryMode1):也稱為快速原型模型。快速原型方法可以克服瀑布模型的缺點,減少由于軟件需求不明確帶來的開發風險,具有顯著的效果。3)螺旋模型(SpiralModel):將瀑布模型和演化模型相結合,綜合了瀑布模型和演化模型的優點,并增加了風險分析。包含4個方面活動:制定計劃:風險分析:實施工程:客戶評價:4)噴泉模型(WaterFountainModel):主要用于描述面向對象的開發過程。噴泉一詞體現了面向對象開發過程的迭代和無間隙特征。即允許開發活動交叉、迭代地進行。5)迭代:模型中的開發活動常常需要重復多次,在迭代過程中不斷完善軟件系統。無間隙:指在開發活動(如分析、設計、編碼)之間不存在明顯的邊界。6)令V模型(VModel):該模型強調測試過程應如何與分析、設計等過程相關聯。7)增量模型(IncrementalMode1):好處是軟件開發可以較好地適應變化,客戶可以不斷地看到所開發的軟件,從而降低開發風險。構件:是由多種相互作用的模塊所形成的提供特定功能的代碼片段構成.1.1.3軟件開發方法軟件開發方法是一種使用早己定義好的技術集及符號表示習慣來組織軟件生產的過程。包括:結構化的方法、Jackson方法、面向對象開發方法結構化方法的指導思想是自項向下、逐層分解,基本原則是功能的分解與抽象。1)Jackson方法:是面向數據結構的開發方法,包括JSP(JacksonStructureprogramming)和JSD(JacksonSystemDevelopment)2)面向對象方法:是以對象為最基本的元素,對象也是分析問題和解決問題的核心。開發方法包括:面向對象分析、面向對象設計、面向對象實現。面向對象開發方法有Booch方法、Coad方法和OMT方法等。為了統一各種面向對象方法的術語、概念和模型,1997年推出了統一建模語言——UML(UnifiedModelingLanguage),它有標準的建模語言,通過統一的語義和符號表示。1.1.4軟件項目管理軟件項目管理包括:成本估計、風險分析、進度管理、人員管理。成本估算方法:有自頂向下估算法、專家估算法……成本估算模型:IBM模型、Putnam模型、COCOMO模型。風險分析包括4種風險評估活動:風險識別:建立風險概念的尺度。試圖系統化確定對項目計劃(估算、進度、資源分配)的威脅。(一個方法是建立風險條目檢查表。該風險表可以用于識別風險,并使得人們集中來識別下列常見的、已知的及可預測的風險)風險預測:描述風險引起的后果。確定風險發生的可能性或概率以及如果風險發生了所產生的后果。風險評估:估計風險影響的大小。風險控制:確定風險估計的正確性。輔助項目組建立處理風險的策略。進度管理:就是對軟件開發進度的合理安排,它是如期完成軟件項目的重要保證,也是合理分配資源的重要保證。進度安排的常用描述方法有:甘特圖(Gantt圖)、計劃評審技術圖(PERT圖)、關鍵路徑法(CPM圖)。CPM和PERT的區別是:CPM是以經驗數據為基礎來確定各項工作的時間,而PERT則把各項工作的時間作為隨機變量來處理。所以,前者往往被稱為肯定型網絡計劃技術,而后者往往被稱為非肯定型網絡計劃技術。前者是以縮短時間、提高投資效益為目的,而后者則能指出縮短時間、節約費用的關鍵所在。1.1.5軟件過程管理軟件過程:人們用于開發和維護軟件及其相關產品(項目計劃、設計文檔、代碼、測試用例、用戶手冊等)的一系列活動、包括軟件工程活動和軟件管理活動,其中必然涉及相關的方法和技術。軟件能力成熟度模型(CMM)統一軟件開發過程(RUP)極限編程(XP)軟件能力成熟度模型(CapabilityMaturityMode1,簡稱CMM)軟件過程能力——描述(開發組織和項目組)通過遵循其軟件過程能夠實現預期結果的程度。軟件能力成熟度———一個特定軟件過程被明確和有效地定義、管理、測量及控制的程度。成熟度可指明一個軟件開發組織軟件過程的能力的增長潛力。CMM模型將軟件過程能力成熟度劃分為5個級別:(1)初始級(2)可重復級(3)已定義級(4)已管理級(5)優化級RUP(RationalUnifiedProcess,統一軟件開發過程,統一軟件過程):是一個面向對象且基于網絡的程序開發方法論。RUP好像一個在線的指導者,它可以為所有方面和層次的程序開發提供指導方針,模版以及事例支持。軟件工程過程定義誰在做什么、怎么做以及什么時候做,RUP用四個主要的建模元素表達:角色(Workers)——“誰”;活動(Activities)——“怎么做”;產品(工件)(Artifacts)——“做什么”;工作流(Workflows)——“什么時候做”角色:它定義的是所執行的一組活動和所擁有的一組文檔與模型。是抽象的職責定義,描述某個人或者一個小組的行為與職責。角色并不代表個人,而是說明個人在業務中應該如何表現以及他們應該承擔的責任。RUP預先定義了很多角色:>分析員角色集:分析員角色集用于組織主要從事需求獲取和研究的各種角色>開發角色集:開發人員角色集用于組織主要從事軟件設計與開發的各種角色。>測試員角色集:測試員角色集用于組織主要從事軟件測試的各種角色。>經理角色集:經理角色集用于組織主要從事軟件工程流程的管理與配置的各種角色。活動:是一個有明確目的的獨立工作單元。即承擔這一角色的人必須完成的一組工作。產品(工件):產品是一個過程所生產、修改或使用的一段信息。產品是項目切實的成果,是項目為生產出最終的產品而制造或使用的東西。產品可以具有不同的形式,如:模型,如用例模型或設計模型;模型元素,如類,用例或子系統;文檔,如商業用例或軟件體系結構文檔;源代碼;可執行程序。工作流:僅僅把所有的角色、活動和產品都列舉出來還不能夠組成過程,另外還需要一種有效的方式,把產生有價值結果的活動序列描述出來,并顯示角色之間的交互。工作流是一個產生具有可觀察的結果活動序列。UML中,可以用一個序列圖、協作圖或活動圖來表示工作流。RUP被劃分為六個核心“工程”工作流:商業建模工作流、需求工作流、分析和設計工作流、實現工作流、測試工作流、展開工作流。RUP把一個開發周期劃分為四個連續的階段:>初始階段(Inceptionphase):為系統建立商業用例,確定項目的邊界。一生命周期目標里程碑。>精化階段(Elaborationphase):分析問題領域,建立一個健全的體系結構基礎,編制項目規劃,淘汰項目中風險最高的元素。——生命周期體系結構里程碑。>構造階段(Constructionphase):將開發所有剩余的構件和應用部件,對它們進行測試,并集成到產品中。——初始運行能力里程碑。>移交階段(Transitionphase):把軟件產品交付給用戶群。一—產品發布里程碑。1.1.6軟件質量管理軟件質量是指反映軟件系統或軟件產品滿足規定或隱含需求的能力的特征和特性全體。軟件質量保證是指為軟件系統或軟件產品充分滿足用戶要求的質量而進行的有計劃、有組織的活動,其目的是產生質量的軟件。軟件質量模型:ISO/IEC9126軟件質量模型McCal1軟件質量模型1.2系統分析基礎知識1.2.1結構化分析方法數據流圖(DataFlowDiagram,DFD):數據流圖就是組織中信息運動的抽象,是信息系統邏輯模型的主要形式。它是一種便于用戶理解、分析系統數據流程的圖形工具。數據流圖的基本組成及符號>外部項(外部實體):外部項在數據流圖中表示所描述系統的數據來源和去處的各種實體或工作環節。系統開發不能改變這些外部項本身的結構和固有屬性。>加工(數據加工):又稱數據處理邏輯,描述系統對信息進行處理的邏輯功能。>數據存儲:邏輯意義上的數據存儲環節,即系統信息處理功能需要的、不考慮存儲物理介質和技術手段的數據存儲環節。>數據流:與所描述系統信息處理功能有關的各類信息的載體,是各加工環節進行處理和輸出的數據集合。常用三類數據流圖基本成分的符號:繪制數據流圖的幾點注記:1.關于自項向下、逐層分解2.數據流必須通過加工,即送去加工或從加工環節發出。3.數據存儲環節一般作為兩個加工環節的界面。4.命名>名稱要反映被命名的成分的真實和全部的意義;>名稱要意義明確,易理解,無歧義;>進出數據存儲環節的數據流如內容和存貯者的數據相同,可采用同一名稱。5.編號每個數據加工環節和每張數據流圖都要編號。按逐層分解的原則,父圖與子圖的編號要有一致性,一般子圖的圖號是父圖上對應的加工的編號。類似地,在分層數據流圖中,如下層圖上的數據流或數據存儲是由上層圖某個成分的分解而得,則父項與子項的編號要體現數據流圖分解的完整性與一致性的原則,如父項編號為F1或D1,則其子項分別為Fl.1,Fl.2,…,或D1.1,D1.2,…等。1.3系統設計基礎知識耦合:系統內不同模塊之間互連程度的度量。塊間耦合強弱取決于模塊間聯系形式及接口的復雜程度。模塊間接口的復雜性越高,說明耦合的程度也越高。>數據耦合:如果兩個模塊彼此間通過數據交換信息,而且每一個參數僅僅為數據,那么這種塊間耦合稱之為數據耦合。>控制耦合:如果兩個模塊彼此間傳遞的信息中有控制信息,那么這種塊間耦合稱為控制耦合。>公共耦合:如果兩個模塊彼此之間通過一個公共的數據區域傳遞信息時,則稱之為公共耦合或公共數據域耦合。>內容耦合:如果一個模塊需要涉及另一個模塊的內部信息時,則這種聯系稱為內容耦合。內聚:模塊內部元素的聯系方式,塊內聯系標志一個模塊內部各個元素間彼此結合的緊密程度,主要表現在模塊內部各個元素為了執行某一功能而結合在一起的程度。>偶然內聚:如果一個模塊所要完成的動作之間沒有任何關系,或者即使有某種關系,也是非常松散的,就稱之為偶然組合。>邏輯內聚:如果一個模塊內部的各個組成部分在邏輯上具有相似的處理動作,但功能上、用途上卻彼此無關,則稱之為邏輯組合。>時間內聚:如果一個模塊內部的各個組成部分所包含的處理動作必須在同一時間內執行,則稱之為時間組合。>過程內聚:如果一個模塊內部的各個組成部分所要完成的動作彼此間沒什么關系,但必須以特定的次序(控制流)執行,則稱之為過程組合。>通信內聚:如果一個模塊內部的各個組成部分所完成的動作都使用了同一個輸入數據或產生同一個輸出數據,則稱之為通信組合。>順序內聚:對于一個模塊內部的各個組成部分,如果前一部分處理動作的輸出是后一部分處理動作的輸入,則稱之為順序組合。>功能內聚:如果一個模塊內部的各個組成部分全部為執行同一功能而合成為一個整體,則稱之為功能組合方式的模塊。1.4系統實施基礎知識一、系統測試系統測試:是為了發現錯誤而執行程序的過程系統測試的目的:系統測試是以找錯誤為目的,我們不是要證明程序無錯,而是要精心選取那些易于發生錯誤的測試數據,以十分挑剔的態度,去尋找程序的錯誤。測試過程:1.制定測試計劃2.編制測試大綱3.根據測試大綱設計和生成測試用例4.實施測試5.生成測試報告系統測試的方法:1.靜態測試:被測程序不在機器上運行,而是采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。2.動態測試:通過運行程序發現錯誤。有黑盒測試法和白盒測試法。系統測試的步驟:單元測試:程序中的一個模塊或一個子程序,是程序設計的最小單元,是程序最小的獨立編譯單位。>集成測試(組裝測試):在每個模塊完成了單元測試以后,需要按照設計時作出的層次模塊圖把它們連接起來,進行組裝測試。>確認測試:經過組裝測試,軟件已裝配完畢,接下來進行的確認測試和系統測試將是以整個軟件做為測試對象,且采用黑盒測試方法。>系統測試:將信息系統的所有組成部分包括軟件、硬件、用戶以及環境等綜合在一起進行測試,以保證系統的各組成部分協調運行。1.5系統運行和維護基礎知識系統可維護性概念:維護人員理解、改正、改動和改進這個軟件的難易程度。系統的可維護性的評價指標:可理解性、可測試性、可修改性。系統維護的內容和類型:硬件維護、軟件維護、數據維護。軟件維護:根據需求變化或硬件環境的變化對應用程序進行部分或全部修改。軟件維護包括:>正確性維護:改正在系統開發階段已發生而系統測試階段尚未發現的錯誤。占整個維護工作量的17%-20%。>適應性維護:使應用軟件適應信息技術變化和管理需求變化而進行的修改。占整個維護工作量的18%-25%。>完善性維護:為擴充功能和改善性能而進行的修改,主要是對已有的軟件系統增加一些在系統分析和設計階段中沒有規定的功能與性能特征。占整個維護工作量的50%-60%。>預防性維護:為改進應用軟件的可靠性和可維護性,為了使用硬件環境的變化,主動增加預防性的新的功能,以使應用系統適應各類變化而不被淘汰。占整個維護工作量的4%左右。第二章數據庫技術基礎知識2.1數據庫系統的基本概念DB、DBMS和DBS的定義>DB(數據庫):是長期存儲在計算機內、有組織的、統一管理的相關數據的集合。>DBMS(數據庫管理系統):是數據庫系統中管理數據的軟件系統。位于用戶與操作系統之間的一層管理軟件。>DBS(數據庫管理系統):在計算機系統中引入數據庫后的系統。是數據庫、硬件、軟件、數據庫管理員及用戶的集合。數據庫管理系統的功能1、數據庫的定義功能:DBAS提供數據定義語言(DDL)定義數據庫的三級結構,兩級映象,定義數據2、數據庫的操作:DBMS提供數據操作語言(DML)實現對數據庫中數據的操作。基本數據操作有:檢索(查詢)、和更新(插入、刪除、修改)。3、數據庫的保護功能:DBMS對數據的保護主要通過四個方面實現,因而DBIS中包括四個子系統。>數據庫恢復>數據庫的并發控制>數據庫的完整性控制>數據庫的安全性控制4、數據庫存儲管理DBMS的存儲管理子系統提供了數據庫中數據和應用程序的一個界面,DBMS存儲管理子系統的職責是把各種DML語句轉換成底層的與磁盤中數據打交道的操作系統的文件系統命令,起到數據的存儲、檢索和更新的作用。5.數據庫的維護功能:數據裝載程序、備份程序、文件重組織程序、性能監控程序6.數據字典(DD)數據庫系統中存放三級結構定義的數據庫稱為數據字典。對數據庫的操作都要通過訪問DD才能實現。DD中還存放數據庫運行的統計信息,例如記錄個數、訪問次數等。2.2數據庫系統的體系結構一三級結構兩級映象三級結構:外模式、概念模式、內模式兩級映象:外模式/模式映象、模式/內模式映象三級結構:>外模式:單個用戶使用到的那部分數據的描述。>概念模式:是用戶定義的數據庫中全部數據邏輯結構的描述。>內模式:是數據庫在物理存儲方面的描述,接近于物理存儲設備,涉及到實際數據存儲的結構。兩級映象:>模式/內模式映象:存在于概念級和內部級之間,用于定義概念模式和內模式之間的對應性。>外模式/模式映象:存在于外部級和概念級之間,用于定義外模式和概念模式之間的對應性。兩級數據獨立性數據獨立性是指應用程序和數據庫的數據結構之間相互獨立,不受影響。分成物理數據獨立性和邏輯數據獨立性兩個級別。>物理數據獨立性:數據的內模式修改,模式/內模式也要進行相應的修改,但概念模式盡可能保持不變。>邏輯數據獨立性:數據的概念模式修改,外模式/模式也要進行相應的修改,但外模式盡可能保持不變。2.3數據模型數據模型:表示實體類型及實體間聯系的模型.根據模型應用的不同目的可以將模型化分為概念數據模型和結構數據模型。概念模型:ER模型(實體聯系模型)實體間的聯系:實體集內部以及實體集的聯系。包括一對一的聯系、一對多的聯系、多對多的聯系。描述實體間聯系的模型稱為實體聯系模型簡稱ER模型。結構數據模型:層次模型、網狀模型、關系模型層次模型:用樹型結構表示實體類型及實體間聯系的數據模型。網狀模型:用有向圖表示實體類型及實體間聯系的數據模型。關系模型:用二維表格結構表達實體間的聯系的數據模型關系模型中的基本術語:關系:二維的數據表,它描述了實體之間的聯系;元組(實體):數據表中的每一行表示一個實體;屬性(字段):數據表中的每一列;域:屬性的取值范圍。關系模式:對關系的描述稱為關系模式。關系名(屬性名1,屬性名2,…,屬性名n)超鍵(超碼):在關系模式中,能唯一標識元組的屬性集。這個屬性集可能含有多余的屬性。候選鍵(候選碼):能唯一標識元組,且又不含有多余的屬性一個屬性集,即超鍵中刪除多余屬性剩下的屬性集。主鍵(主碼):從候選鍵中選擇一個作為關系模式中用戶使用的候選鍵稱為主鍵。主屬性:包含在任何候選鍵中的屬性稱為主屬性。不包含在任何候選鍵中的屬性稱為非主屬性。外鍵(外碼):當關系R中的某個屬性(或屬性組)雖然不是該關系的碼,但卻是另一個關系S的碼,稱該屬性(或屬性組)為R關系的外鍵。全鍵(全碼):關系模型中所有屬性都是這個關系的關鍵字關系模型的完整性約束(數據完整性)用來確保數據庫中數據的正確性和可靠性。數據完整性包括:>實體完整性:主鍵的取值必須唯一,并且不能為空。>域完整性:保證數據的取值在有效的范圍內。>參照完整性:參照完整性是通過主鍵和外鍵來保證相關聯的表間數據保持一致,避免因一個表的數據修改,而導致關聯生效。2.4數據操作關系數據庫的數據操作語言(DML)的語句分成查詢語句和更新語句兩大類。查詢語句用于描述用戶的各種檢索要求;更新語句用于描述用戶進行插入、刪除、修改等操作。關系查詢語言根據其理論基礎的不同分成兩大類:關系代數語言:查詢操作是以集合操作為基礎的DML語言。關系演算語言:查詢操作是以謂詞演算為基礎的DML語言。·關系代數◆關系代數的五個基本操作-—并、差、笛卡爾積、投影、選擇◆關系代數的四個組合操作——交、聯接、自然連接、除法·關系演算◆元組關系演算域◆關系演算關系代數的五個基本操作:(1)并(Union):形式定義如下:R∪S≡{t|t∈R∨t∈S},t是元組變量,R和S的元數相同。(2)差(Difference):形式定義如下:R-S≡{t|t∈R∧t∈S},R和S的元數相同。(3)笛卡爾積:形式定義如下:R×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S},若R有m個元組,S有n個元組,則R×S有m×n個元組。(4)投影(Projection):這個操作是對一個關系進行垂直分割,消去某些列,并重新安排列的順序。形式定義如下:πi1,…,im(R)≡{t|t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}(5)選擇(Selection):選擇操作是根據某些條件對關系做水平分割,即選取符合條件的元組。形式定義如下:σF(R)={t|t∈R∧F(t)=true}σ為選擇運算符,σF(R)表示從R中挑選滿足公式F為真的元組所構成的關系。關系代數的四個組合操作(1)交(intersection):關系R和S的交是由屬于R又屬于S的元組構成的集合,記為R∩S,這里要求R和S定義在相同的關系模式上。形式定義如下:R∩S≡{t︱t∈R∧t∈S},R和S的元數相同。(2)連接(join)連接有兩種:θ連接和F連接(3)自然連接(naturaljoin)(4)除法(division)·關系演算元組關系演算:在元組關系演算中,元組關系演算表達式簡稱為元組表達式,其一般形式為:{t|P(t)},其中,t是元組變量,表示一個元數固定的元組;P是公式,在數理邏輯中也稱為謂詞,也就是計算機語言中的條件表達式。{t|P(t)}表示滿足公式P的所有元組t的集合。在元組表達式中,公式由原子公式組成。原子公式(Atoms)有下列三種形式:①R(s):s是R的一個元組。②s[i]θu[j]:元組s的第i個分量與元組u的第j個分量之間滿足θ關系。③s[i]θa或aθu[j]:a是常量。在定義關系演算操作時,要用到“自由”和“約束”變量概念。在一個公式中,如果元組變量未用存在量詞?或全稱量詞符號定義,那么稱為自由元組變量,否則稱為約束元組變量。關系代數表達式到元組表達式的轉換:R∪S可用{t|R(t)∨S(t)}表示;R-S可用{t|R(t)∧┐S(t)}表示;R×S可用{t|(≡u)(≡v)(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2]∧t[6]=v[3])}表示。關系數據庫SQL語言:SQL的數據定義、SQL的數據查詢、SQL的數據更新SQL的數據定義——創建表涉及相應屬性列的完整性約束條件:>主鍵約束:PRIMARYKEY>檢查約束:CHECK>外鍵約束:FOREIGNKEY>唯一性約束:UNIQUE>是否為空值約束:NULL/NOTNULL>默認值:DEFAULTSQL的數據查詢數據查詢語句基本格式如下:>SELECT<查詢項的列表>>FROM<表名〉>WHERE<條件表達式>6個聚合函數:>SUM(列名):求某一列的總和(此列的值必須是數值型)>AVG(列名):求某一列的平均值(此列的值必須是數值型)>MIN(列名):求某一列中的最小值>MAX(列名):求某一列中的最大值>COUNT(列名):傳回一列中的非NULL值的個數>COUNT(*):傳回符合查詢條件的元組的個數ORDERBY子句—對查詢的結果進行排序SELECT語句中可以使用ORDERBY子句對查詢的結果進行排序,帶ASC參數時為升序,帶DESC參數時為降序,不待任何參數時為默認方式——升序。SELECT<查詢項的列表>FROM<表名>WHERE<條件表達式)ORDERBY<排序表達式》[ASC|DESC]GROUPBY子句、HAVING子句一—按條件分類統計在SELECT語句中可以使用GROUPBY子句進行分類統計。GROUPBY子句可以將表達式的值相同的記錄歸為同一組,從而進行統計。語法格式如下:GROUPBY<分組表達式>HAVING子句指定組或聚合的搜索條件,只能和SELECT語句一起使用,通常和GROUPBY連用。語法格式如下:HAVING<組條件表達式》,范式:滿足特定要求得關系模式。設有關系模式R(U),X和Y是屬性集U的子集,r是R任一具體關系,如果對r的任意兩個元組t1和t2,都有tl[x]=t2[X]導致tl[Y]=t2[Y],那么稱X函數決定Y或Y函數依賴X,記為X→Y,X→Y為模式R的一個函數依賴。第一范式如果關系模式R的每個關系r的屬性值都是不可分的原子值,那么稱R是第一范式(firstnormalform,簡記為1NF)的模式。滿足1NF的關系稱為規范化的關系,否則稱為非規范化的關系。關系數據庫研究的關系都是規范化的關系。1NF是關系模式應具備的最起碼的條件。在建立關系數據模型時,必須將非規范化形式規范化,第二范式如果關系模式R是INF,且每個非主屬性完全函數依賴于候選鍵,那么稱R是第二范式(2NF)模式。如果數據庫模式中每個關系模式都是2NF,則稱數據庫模式為2NF的數據庫模式。對于函數依賴W→A,如果存在X?W有X→A成立,那么稱W→A是局部依賴(A局部依賴于W);否則稱W→A是完全依賴。第三范式如果關系模式R是1NF,且每個非主屬性都不傳遞依賴于R的候選鍵,那么稱R是第三范式(3NF)的模式。如果數據庫模式中每個關系模式都是3NF,則稱其為3NF的數據庫模式。如果X→Y,Y→A,且Y→X和A∈Y,那么稱X→A是傳遞依賴(A傳遞依賴于X)。數據庫模式設計原則:關系模式R相對于函數依賴集分解成數據庫模式p={R1,R2,。。。Rk},一般應具有下面幾項特性。(1)P中每個關系模式上應有某種分時性質(3NF或BCNF)(2)無損聯接。(3)保持函數的依賴集。無損聯接設R是一個關系模式,F是R上的一個函數依賴集。R分解成數據庫模式ρ={R1,…,Rk}。如果對R中滿足F的每一個關系r,都有r=πR1(r)?πR2(r)?…?πRk(r)那么稱分解ρ相對于F是“無損聯接分解”簡稱為“無損分解”,否則稱為“損失分解”。無損聯接測試:設ρ={R1,R2}是關系模式R的一個分解,F是R上成立的FD集,那么分解ρ相對于F是無損分解的充分必要條件是:(R1∩R2)→(R1-R2)或(R1∩R2)→(R2-R1)。保持函數的依賴集保持關系模式一個分解是等價的另一個重要條件是關系模式的函數依賴集在分解后仍在數據庫模式中保持不變。設ρ={R1,…,Rk}是R的一個分解,F是R上的函數依賴,如果有∪πRi(F)=F,那么稱分解ρ保持函數依賴集F。第三章操作系統知識3.1 操作系統的基本概念操作系統的定義能有效地組織和管理系統中的各種軟、硬件資源,合理地組織計算機系統工作流程,控制程序的執行,并且向用戶提供一個良好的工作環境和友好的接口。硬件資源:包括CPU,存儲器,輸入/輸出資源等物理設備。軟件資源:以文件形式保存在存儲器上的程序和數據等信息。操作系統的2個重要作用:(1)通過資源管理提高計算機系統的效率(2)改善人機界面,向用戶提供友好的工作環境操作系統的4個特征(1)并發性:計算機系統存在著許多并發執行的活動(2)共享性:系統中各個并發活動要共享計算機系統中的各種軟,硬件資源。(3)虛擬性:虛擬是操作系統中的重要特征,所謂虛擬就是把物理上的一臺設備變成邏輯上的多臺設備。(4)不確定性(異步性):指進程的執行順序和執行時間及執行結果的不確定性。操作系統的5大管理功能(1)進程管理(2)存儲管理(3)設備管理(4)文件管理(5)作業管理多道程序設計原理:在計算機內存中同時存放幾道相互獨立的程序,它們在管理程序的控制下相互穿插地運行,共享CPU和外設等資源。程序:具有特定功能的一組指令集合,它指出了處理器執行操作的步驟。進程:進程是一個程序在一個數據集合上的一次執行。3.2進程管理程序和進程區別:(1)程序是動態的,進程是動態的。(2)進程與程序的對應關系:通過多次執行,一個程序可對應多個進程:通過調用關系,一個進程可包括多個程序。(3)進程是暫時的,程序的永久的:進程是一個狀態變化的過程,程序可長久保存。(4)進程與程序的組成不同:進程的組成包括程序、數據進程控制塊(即進程狀態信息)。進程通常由三部分組成:(1)程序:描述了進程所要完成的功能,是進程執行時不可修改的部分。(2)數據集合:程序執行時所需要的數據和工作區,為一個進程專用,可修改。(3)進程控制塊PCB(ProcessControlBlock):包含了進程的描述信息和控制信息,是進程的動態特性的集中反映。PCB包含以下幾類信息:進程描述信息、進程控制信息、資源占用信息、CPU現場保護結構。進程的基本狀態及轉換:進程在生命期內處于且僅處于三種基本狀態之一:>運行態:當一個進程在處理機上運行時,則稱該進程處于運行狀態。>就緒態:一個進程獲得了除處理機外的一切所需資源,一旦得到處理機即可運行,則稱此進程處于就緒狀態。>阻塞態:當一個進程正在等待某一事件發生(例如請求I/0而等待I/0完成等)而暫時停止運行,這時即使把處理機分配給進程也無法運行,故稱該進程處于阻塞狀態。注意與就緒狀態的不同在于即使處理機處于空閑狀態也無法運行。①就緒一運行:調度程序選擇一個新的進程運行.②運行一就緒:運行進程用完時間片被中斷或在搶占調度方式中,因為一高優先級進程進入就緒狀態③運行一阻塞:進程發生I/0請求或等待某事件時④阻塞一就緒:當I/0完成或所等待的事件發生時進程調度程序:主要任務是按照一定的調度算法從就緒隊列中選取一個進程,把處理機分配給此進程使用。進程調度方式(1)非搶占方式:在非搶占方式下,調度程序一旦把CPU分配給某一進程后便讓它一直運行下去,直到進程完成或發生某事件而不能運行時,才將CPU分給其它進程。這種調度方式通常用在批處理系統中。它的主要優點是簡單、系統開銷小。(2)搶占方式:當一個進程正在執行時,系統可以基于某種策略剝奪CPU給其它進程。剝奪的原則有:優先權原則、短進程優先原則和時間片原則。這種調度方式多用在分時系統和實時系統中,以便及時響應各進程的請求。進程調度算法(1)先來先服務FCFS(先進先出調度算法,FIFO)【算法思想】:最簡單的算法按照進程進入就緒隊列的先后次序,分派CPU;當前進程占用CPU,直到執行完或阻塞,才出讓CPU(非搶占方式)。在進程喚醒后(如I/0完成),并不立即恢復執行,通常等到當前進程出讓CPU。【特點】:比較有利于長作業,而不利于短作業。有利于CPU繁忙的作業,而不利于I/0繁忙的作業。(2)短進程優先調度算法(SJF,SPF)【算法思想】:選擇就緒隊列中估計運行時間最短的進程投入運行。通常后來的短作業不搶先正在執行的作業。【優點】:比FCFS改善平均周轉時間和平均帶權周轉時間縮短作業的等待時間;提高系統的吞吐量;【缺點】:對長作業非常不利,可能長時間得不到執行;未能依據作業的緊迫程度來劃分執行的優先級;難以準確估計作業(進程)的執行時間,從而影響調度性能。(3)優先權調度算法(HPF-HighestPriorityFirst)【算法思想】:優先選擇就緒隊列中優先級最高的進程投入運行。分為:>非搶占式優先級算法:僅發生在進程放棄CPU。>搶占式優先級算法:可剝奪當前運行進程CPU。【優先權的類型】>靜態優先級:在進程創建時指定優先級,在進程運行時優先數不變。>動態優先級:在進程創建時創立一個優先級,但在其生命周期內優先數可以動態變化,如等待時間長優先數可改變。【確定優先級的依據】:進程類型、對資源的需求、根據用戶要求。(4)高響應比優先(HRRN,HighestResponseRatioNext):HRRN是FCFS和SJF的折衷算法,響應比R用下式動態計算:響應比=(等待時間+要求服務時間)/要求服務時間【特點】:等待時間相同要求服務的時間越短優先權越高,有利于短作業。要求服務時間相同,等待時間越長優先權越高,近似于先來先服務。長作業的優先權會隨等待時間加長而升高,長作業也會得到執行。(5)時間片輪轉調度算法【算法思想】:通過時間片輪轉,提高進程并發性和響應時間特性,從而提高資源利用率。將系統中所有的就緒進程按照FCFS原則,排成一個隊列。每次調度時將CPU分派給隊首進程,讓其執行一個時間片。時間片的長度從幾個ms到幾百ms。在一個時間片結束時,發生時鐘中斷。調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,并通過CPU現場切換執行當前的隊首進程。進程可以未使用完一個時間片,就出讓CPU(如阻塞)。(6)多級反饋隊列算法(多隊列輪轉法)【算法思想】:設置多個就緒隊列,分別賦予不同的優先級,隊列1的優先級最高,其他逐級降低。每隊列分配不同的時間片,規定優先級越低則時間片越長。新進程就緒后,先投入隊列1的末尾,按FCFS算法調度。若一個時間片未能執行完,則降低投入到隊列2的末尾;依此類推,降低到最后的隊列,則按“時間片輪轉”算法調度直到完成。進程由于等待事件而放棄CPU后,進入等待隊列,一旦等待的事件發生,則回到原來的就緒隊列。僅當較高優先級的隊列為空,才調度較低優先級的隊列中的進程執行。如果進程執行時有新進程進入較高優先級的隊列,則搶先執行新進程,并把被搶先的進程投入原隊列的末尾。進程互斥:是指當有若干進程都要使用某一資源時,任何時刻最多只允許一個進程去使用,其他要使用該資源的進程必須等待,直到占用資源者釋放了該資源。這樣的資源稱為稱為互斥資源一—打印機,共享變量等。臨界區一并發進程中與共享變量有關的程序段。PV操作一—進程的互斥PV操作由P操作和V操作組成,P操作和V操是兩個在信號量S上進行的操作。定義如下:ProcedureP(S)beginS:=S-1;ifS<0then則該進程進入等待隊列;end;(P)ProcedureV(S)beginS:=S+1;ifS≤0then喚醒一個等待隊列中的進程進入就緒;end;(V)例:共享緩存器資源造成的錯誤(1)A的執行速度操作B的執行速度,造成緩存器中的數據還沒拿走,A又讀入新數據覆蓋了原有數據。(2)B的執行速度操作A的執行速度,B從緩存器取出一個記錄并加工后,A還沒有讀入新數據,造成B在緩存器中重復取同一個記錄加工。進程同步:是指并發進程之間存在一種制約關系,一個進程的執行依賴另一個進程的消息,當一個進程沒有得到另一個進程的消息時應等待,直到消息到達才被喚醒。PV操作一—進程的互斥1.調用P操作測試消息是否到達。若消息尚未到達則S=0,調用P(S)后,讓調用者稱為等待信號量S的狀態;若消息已經存在則S產0,調用P(S)后進程不會成為等待狀態而可繼續執行。2.調用V操作發送消息。任何進程要向進程發送消息時可調用V操作。若調用V操作之前S=0,表示消息產生且無等待消息進程,這是調用V(S),執行S:=S+1使S0,意味著消息已存在。若調用V操作之前S<0,表示消息未產生前已有進程在等待消息,這是調用V(S)后釋放一個等待消息者,即表示該進程等待的消息已經到達可以繼續執行。死鎖死鎖的概念:指多個進程因競爭資源而造成的一種僵局,若無外力作用,這些進程都將永遠不能再向前推進。死鎖產生的原因(1)競爭資源:當系統中供多個進程所共享的資源,不足以同時滿足它們的需要時,引起它們對資源的競爭而產生死鎖。(2)進程推進順序不當:進程在運行過程中,請求和釋放資源的順序不當,導致了進程的死鎖。死鎖產生的必要條件(1)互斥使用資源(2)占有并等待資源(3)不可剝奪資源(4)循環等待資源處理死鎖的基本方法預防死鎖避免死鎖——銀行家算法檢測死鎖解除死鎖避免死鎖——銀行家算法【基本思想】銀行家算法是通過動態地檢測系統中資源分配情況和進程對資源的需求情況來決定如何分配資源的,在能確保系統處于安全狀態時才能把資源分配給申請者,從而避免系統發生死鎖。第四章UML4.1UML概述UML(UnifiedModelingLanguage)是一種基于面向對象的可視化的通用(Genera1)建模語言。為不同領域的用戶提供了統一的交流標準一UML圖。UML應用領域很廣泛,可用于軟件開發建模的各個階段,商業建模(BusinessModeling),也可用于其它類型的系統。UL是一種定義良好,易于表達,功能強大且普遍實用的建模語言,不是一種方法,它獨立于過程。利用它建模時,可遵循任何類型的建模過程。UML的主要內容(1)UML融合了Booch、OMT和00SE方法中的基本概念,而且這些基本概念與其他面向對象技術中的基本概念大多相同:(2)UML不僅僅是上述方法的簡單匯合,而是擴展了現有方法的應用范圍;(3)UML是標準的建模語言,而不是標準的開發過程。1.什么是模型?模型是對系統的完整的抽象表示,建模是在不同層次上對系統的描述。2.為什么要建模?>鑒于軟件系統的復雜性和規模的不斷增大,需要建立不同的模型對系統的各個層次進行描述。(軟件模型包括:數學模型、描述模型和圖形模型)>便于開發人員與用戶的交流。>模型為以后的系統維護和升級提供了文檔建模過程:UML作為一種可視化的建模語言,提供了豐富的基于面向對象概念的模型元素及其圖形表示元素。4.1.1UML的主要內容UML的定義包括UML語義和UML表示法兩個部分。(1)UML語義:描述基于ML的精確元模型(meta-mode1)定義。(2)UML表示法定義UML符號的表示法,為開發者或開發工具使用這些圖形符號和文本語法為系統建模提供了標準。UML是一種標準化的圖形建模語言,它是面向對象分析與設計的一種標準表示。由:視圖(views),圖(Diagrams),模型元素(Modelelements),通用機制(generalmechanism)等幾個部分構成。一個系統應從不同的角度進行描述,從一個角度觀察到的系統稱為一個視圖(view)。視圖由多個圖(Diagrams)構成,它不是一個圖表(Graph),而是在某一個抽象層上,對系統的抽象表示。UML語言定義了五種類型,9種不同的圖,把它們有機的結合起來就可以描述系統的所有視圖。>用例圖(Usecasediagran)從用戶角度描述系統功能,并指出各功能的操作者。>靜態圖(Staticdiagram),表示系統的靜態結構。包括類圖、對象圖、包圖。>行為圖(Behaviordiagram),描述系統的動態模型和組成對象間的交互關系。包括狀態圖、活動圖。>交互圖(Interactivediagram),描述對象間的交互關系。包括順序圖、合作圖。>實現圖(Implementationdiagram)用于描述系統的物理實現。包括構件圖、部件圖。UML的9種圖圖:包中的類以及包與包之間的關系(靜態圖)UML的5種視圖模型元素(Modelelements)代表面向對象中的類,對象,關系和消息等概念,是構成圖的最基本的常用的元素。一個模型元素可以用于多個不同的圖中。通用機制(generalmechanism)用于表示其他信息,比如注釋,模型元素的語義等。另外,為了適應用戶的需求,它還提供了擴展機制(Extensibilitymechanisms),包括構造型(Stereotype)、標記值(Taggedvalue)和約束(Constraint).使用UML語言能夠適應一個特殊的方法(或過程),或擴充至一個組織或用戶。4.1.2UML的特點(1)統一標準UML:統一了Booch、OMT和00SE等方法中的基本概念,已成為0MG的正式標準,提供了標準的面向對象的模型元素的定義和表示。(2)面向對象UML:還吸取了面向對象技術領域中其它流派的精華。刪除了大量易引起混亂的、多余的和極少使用的符號,也添加了一些新符號。(3)可視化、表示能力強:系統的邏輯模型或實現模型都能用UML模型清晰的表示,可用于復雜軟件系統的建模。(4)易掌握、易用:UML的概念明確,建模表示法簡潔明了,圖形結構清晰,易于掌握4.2通用模型元素模型元素是UML構造系統的各種元素,是UL構建模型的基本單位。分為以下兩類:1.基元素:是由UML定義的模型元素。如:類、結點、構件、注釋、關聯、依賴和泛化等。2.構造型元素:在基元素的基礎上增加了新的定義而構造的新的模型元素。如擴展基元素的語義(不能擴展語法結構),也允許用戶自定義。構造型元素用括在雙尖括號<<>>中的字符串表示。目前UML提供了40多個預定義的構造型元素。如包含<<include>>、擴展<<Extend>>。4.2.1常用模型元素可以在圖中使用的概念統稱為模型元素。模型元素在圖中用其相應的視圖元素(符號)表示,圖中給出了常用的元素符號:類、對象、結點、包和組件等。模型元素與模型元素之間的連接關系也是模型元素,常見的關系有關聯(association)、泛化(generalization)、依賴(dependency)和聚合(aggregation),其中聚合是關聯的一種特殊形式。這些關系的圖示符號如圖所示。關聯:連接(connect)模型元素及鏈接(link)實例。依賴:表示一個元素以某種方式依賴于另一種元素。泛化:表示一般與特殊的關系,即“一般”元素是“特殊”關系的泛化。聚合:表示整體與部分的關系。4.2.2關聯和鏈關聯(association)是兩個或多個類之間的一個關系。鏈(1ink)是關聯的具體體現。關聯分為二元關聯(binary)、三元關聯(ternary)、多元關聯(higherorder)。4.2.3關聯的表示關聯的重數重數(multiplicity)表示多少個對象與對方對象相連接,常用的重數符號有:“0..1” 表示零或1“0..*”或“*” 表示零或多個“1..*” 表示1或多個“1,3,7” 表示1或3或7(枚舉型)重數的默認值為1。有序關聯與導航(導引)在關聯的多端標注{ordered}指明這些對象是有序的。關聯可以用箭頭,表示該關聯使用的方向(單向或雙向),稱為導引或導航(navigation)。受限關聯(qualifiedassociation)使用限定詞對該關聯的另一端的對象進行明確的標識和鑒別,如圖。如果對關聯的含義作出某種限制,稱為受限關聯。4.2.4約束UML中提供了一種簡便、統一和一致的約束(constraint),是各種模型元素的一種語義條件或限制。一條約束只能應用于同一類的元素。約束的表示如果約束應用于一種具有相應視圖元素的模型元素,它可以出現在它所約束元素視圖元素的旁邊。通常一個約束由一對花括號括起來({constraint}),花括號中為約束內容,如果一條約束涉及同一種類的多個元素,則要用虛線把所有受約束的元素框起來,并把該約束顯示在旁邊(如或約束)。約束可分為:對泛化的約束、關聯的約束對泛化的約束應用于泛化的約束,顯示在大括號里,若有多個約束,用逗號隔開。如果沒有共享,則用一條虛線通過所有繼承線,并在虛線的旁邊顯示約束。對泛化有以下常用的約束:1.complete:說明泛化中所有子元素都已在模型中說明,不允許再增加其它子元素。2.disjoint:父類對象不能有多于一個型的子對象。3.incomplete:說明不是泛化中所有子元素都已說明,允許再增加其它子元素。4.overlapping:給定父類對象可有多于一個型的子對象,表示重載。對關聯有以下常用的約束:1.implicit:該關聯只是概念性的,在對模型進行精化時不再用。2.ordered:具有多重性的關聯一端的對象是有序的。3.changeable:關聯對象之間的鏈(Link)是可變的(添加、修改、刪除)。4.addonly:可在任意時刻增加新的鏈接。5.frozen:凍結已創建的對象,不能再添加、刪除和修改它的鏈接。6.xor:“或約束”,某時刻只有一個當前的關聯實例。4.2.6依賴依賴關系描述的是兩個模型元素(類,組合,用例等)之間的語義上的連接關系,其中一個模型元素是獨立的,另一個模型元素是非獨立的(或依賴的)。依賴的形式可能是多樣的,針對不同的依賴的形式,依賴關系有不同的變體(varieties):<1>抽象(abstraction):從一個對象中提取一些特性,并用類方法表示。<2>綁定(binding):為模板參數指定值,以定義一個新的模板元素。<3>組合(combination):對不同類或包進行性質相似融合。<4>許可(permission):允許另一個對象對本對象的訪問。<5>使用(usage):聲明使用一個模型元素需要用到已存在的另一個模型元素,這樣才能正確實現使用者的功能(包括調用、實例化、參數、發送)。<6>跟蹤(trace):聲明不同模型中元素的之間的存在一些連接。<7>訪問或連接(access):允許一個包訪問另一個包的內容。<8>調用(cal1):聲明一個類調用其他類的操作的方法。<9>導出(derive):聲明一個實例可從另一個實例導出。〈10>友元(friend):允許一個元素訪問另一個元素,不管被訪問的元素是否具有可見性。<11>引入(import):允許一個包訪問另一個包的內容并被訪問組成部分增加別名。<12>實例(instantiation):關于一個類的方法創建了另一個類的實例聲明。<13>參數(parameter):一個操作和它參數之間的關系。<14>實現(realize):說明和其實之間的關系。〈15>精化(refine):聲明具有兩個不同語義層次上的元素之間的映射。<16>發送(send):信號發送者和信號接收者之間的關系。4.2.7細化有兩個元素A和B,若B元素是A元素的詳細描述,則稱為B元素細化A元素。細化與類的抽象層次有密切的關系,在構造模型時要經過逐步細化,逐步求精的過程。4.2.8注釋注釋用于對lL語言的元素或實體進行說明,解釋和描述。通常用自然語言進行注釋。4.3用例建模UML的用例模型一直被推薦為識別和捕獲需求的首選工具!!用例驅動的系統分析與設計方法已成為面向對象的系統分析與設計方法的主流。4.3.1用例建模概述用例建模技術,用于描述系統的功能需求。在宏觀上給出模型的總體輪廓。通過對典型用例的分析,使開發者能夠有效地了解用戶的需求。網絡中間層狀態包檢測防火墻系統4.3.2用例模型(Usecasemodel)用例模型由若干個用例圖構成,用例圖中主要描述執行者和用例之間的關系。在UML中,構成用例圖的主要元素是用例和執行者及其它們之間的聯系。創建用例模型的工作包括:定義系統、確定執行者和用例、描述用例、定義用例間的關系、確認模型。如何建立用例模型:建立系統用例模型的過程就是對系統進行功能需求分析的過程。一、確定執行者(Actor)執行者是指用戶在系統中所扮演的角色,執行者用類似人的圖形來表示,但執行者可以是人,也可以是一個外界系統。如何確定執行者:1、誰使用系統的主要功能(主執行者)?2、誰需要從系統獲得對日常工作的支持和服務?3、需要誰維護管理系統的日常運行(副執行者)?4、系統需要控制哪些硬件設備?5、系統需要與其它哪些系統交互?6、誰需要使用系統產生的結果(值)?二、用例如何確定用例:1、與系統實現有關的主要問題是什么?2、系統需要哪些輸入/輸出?這些輸入/輸出從何而來?到哪里去?3、執行者需要系統提供哪些功能?4、執行者是否需要對系統中的信息進行讀、創建、修改、刪除或存儲?三、用例之間的關系執行者與用例之間通常是一種關聯。用例之間的聯系:<<Use>>表示一個用例使用另一個用例。<<Extend>>通過向被擴展的用例添加動作來擴展用例。<<include>>表示一個用例的行為包含了另一個用例的行為。其中:<<Use>>,<<Extend>>是一種泛化關系。<<include>>是一種依賴關系。第五章專題:計算機系統知識計算機硬件基礎知識:5.1計算機系統結構計算機的發展歷史:1946年,世界上第一臺電子計算機ENIAC出現,之后經歷了5個發展階段:計算機的組成部分:存儲器、運算器、控制器、輸入設備和輸出設備。計算機的工作過程:一般是由用戶使用各種編程語言把所需要完成的任務以程序的形式提交給計算機,然后翻譯成計算機能直接執行的機器語言程序,在計算機上運行。計算機系統結構(computerarchitecture):指機器語言級機器(物理機器)的系統結構,它主要研究軟件、硬件功能分配,確定軟件、硬件界面(機器級界面),計算機組成(computerorganization):是指計算機系統的邏輯實現.目標是合理的把各種部件、設備組成計算機,以實現特定的系統結構,同時滿足所希望達到的性能價格比。計算機實現(computerimplementation)是指計算機組成的物理實現。計算機系統的分類:Flynn分類、馮氏分類、Handler分類和Kuck分類;Flynn分類:根據不同指令流一數據流組織方式把計算機系統分成4類。(重點理解)指令流:機器指令的執行序列:數據流:由指令流調用的數據序列,包括輸入數據和中間結果;多倍性:在系統性能的瓶頸部件上同時處于同樣執行階段的指令和數據的最大可能個數:I.單指令流單數據流SISD——如單處理機II.單指令流多數據流SIMD——如相聯處理機III.多指令流單數據流MISD——如流水線計算機IV.多指令流多數據流MIMD——如多處理機(7)數據校驗碼:基本思想是把數據可能出現的編碼區分為合法編碼和錯誤編碼。碼距:是指一個編碼系統中任意兩個合法編碼之間至少有多少個二進制位不同。碼距為1的編碼是不能發現錯誤的。常用的校驗碼有3種。奇偶校驗碼:不能發現偶數位錯誤.該編碼通過增加一位校驗位來使編碼中1的個數為奇數(奇校驗)或者為偶數(偶校驗)從而使碼距變為2,來檢測數據代碼中奇數出錯的編碼。因為其利用的是編碼中1的個數的奇偶性作為依據,所以不能發現偶數位錯誤。校驗位的添加方法有三種:水平奇偶校驗碼:對每個數據的編碼添加校驗位垂直奇偶校驗碼:對一組數據的相同位添加一個校驗位;水平垂直奇偶校驗碼:先對一組數據垂直校驗,所得結果再添加一位水平校驗位;海明校驗碼:也是利用奇偶性來檢錯和糾錯,通過在數據之間插入k個校驗位,擴大數據編碼的碼距,從而有能力檢測出n位錯,并能糾正1位或n位錯。循環校驗碼(CRC)校驗碼:采用模2運算,可檢測所有等于、小于校驗位長度的突發錯,利用生成多項式為k個數據位產生r個校驗位進行編碼,其編碼長度為n=k+rk,又稱為(n,k)碼,生成的多項式與被校驗的數據無關。5.2存儲器系統概述:計算機中的存儲系統是用來保存數據和程序的。對存儲器最基本的要求就是存儲容量要大、存取速度快、成本價格低。為了滿足這一要求,提出了多級存儲體系結構。一般可分為高速緩沖存儲器、主存、外存3個層次,有時候還包括CPU內部的寄存器以及控制存儲器。衡量存儲器的主要因素:存儲器訪問速度、存儲容量和存儲器的價格;存儲器的介質:半導體、磁介質和光存儲器。存儲器的組成:存儲芯片+控制電路(存儲體+地址寄存器+數據緩沖器+時序控制);控制寄存器:內部存儲器是可以被處理器直接存取的存儲器,又稱為主存儲器,外部存儲器需要通過I/0模塊與處理器交換數據,又稱為輔助存儲器,彌補CPU處理器速度之間的差異還設置了CACHE,容量小但速度極快,位于CPU和主存之間,用于存放CPU正在執行的程序段和所需數據。通常衡量主存容量大小的單位是字節或者字,而外存的容量則用字節來表示。信息存取方式常用的有4種,>順序存取:存儲器的數據是以記錄的形式進行組織,對數據的訪問必須按特定的線性順序進行。磁帶存儲器的存取方式就是順序存取。>直接存取:共享讀寫裝置,但是每個記錄都有一個唯一的地址標識,共享的讀寫裝置可以直接移動到目的數據塊所在位置進行訪問。因此存取時間也是可變的。磁盤存儲器采用的這種方式。>隨機存取:存儲器的每一個可尋址單元都具有唯一地址和讀寫裝置,系統可以在相同的時間內對任意一個存儲單元的數據進行訪問,而與先前的訪問序列無關。主存儲器采用的是這種方式。>相聯存取:也是一種隨機存取的形式,但是選擇某一單元進行讀寫是取決于其內容而不是其地址。Cache可能采用該方法進行訪問。主存儲器:通常位于所謂主機的范疇,常稱為內存。如果內存的地址為n位,容量為2的n次。主存儲器的種類很多,主要有:>隨機存儲器(RAM):可以讀出和寫入,隨機訪問存取,斷電消失>只讀存儲器(ROM):只能讀出原有的內容,不能寫入新內容>可編程ROM(PROM)>可擦除PROM(EPROM)>電可擦除PROM(E2PROM)>閃速存儲器(flashmemory)輔助存儲器:位于主機的邏輯范疇之外,常稱為外存儲器,簡稱外存。外存的最大特點是容量大、可靠性高、價格低,主要有兩大類。>磁表面存儲器:這類外存儲器主要包括磁帶和磁盤存儲器。>光存儲器:是利用激光束在記錄表面存儲信息,根據激光束的反射光來讀出信息。按照它的記錄原理可分為形變型、相變型(晶相結構)和磁光型。有CD、CD-ROM、WORM、EOD等。>光盤存儲器的特點:大容量、標準化、相容性、持久性、實用性>Cache存儲器:(對系統和應用程序員都是透明的)(重點)Cache位于主存儲器與CPU通用寄存器組之間,全部由硬件來調度,用于提高CPU的數據I/0效率,對程序員和系統程序員都是透明的。Cache容量小但速度快,它在計算機的存儲體系中是訪問速度最快的層次。使用Cache改善系統性能的依據是程序的局部性原理,即程序的地址訪問流有很強的時序相關性,未來的訪問模式與最近已發生的訪問模式相似。根據這一局部性原理,把主存儲器中訪問概率最高的內容存放在Cache中,當CPU需要讀取數據時就首先在Cache中查找是否有所需內容,如果有則直接從Cache中讀取;若沒有再從主存中讀取該數據,然后同時送往CPU和Cache。系統的平均存儲周期t3與命中率h有很密切的關系,如下的公式:t3=h×t1+(1-h)×t2,其中,tl表示Cache的周期時間,t2表示主存的周期時間。5.3中央處理器CPUCPU由寄存器組、算術邏輯單元ALU和控制單元CU這3部分組成。1.寄存器組分為兩大類:用戶可見的寄存器:有通用寄存器、數據寄存器、地址寄存器、標志寄存器等;狀態寄存器:包括程序計數器PC、指令寄存器1R、存儲器地址寄存器MAR、存儲器緩沖寄存器MBR、程序狀態字PSW。2.運算器ALU:負責對數據進行算術和邏輯運算。3.控制器CU:負責控制整個計算機系統的運行計算機的指令系統:機器指令的格式、分類及功能:CPU所完成的操作是由其執行的指令來決定的,這些指令被稱為機器指令。CPU所能執行的所有機器指令的集合稱為該CPU的指令系統。機器指令一般由操作碼、源操作數、目的操作數和下一條指令的地址組成。>操作碼指明要執行的操作;>源操作數是該操作的輸入數據:>目的操作數是該操作的輸出數據;>下一條指令地址通知CPU到該地址去取下一條將執行的指令。指令系統可分為數據傳送類、算術運算類、邏輯類、數據變換類、輸入/輸出類、系統控制類、控制權轉移類等類型。指令的尋址方式:常用的尋址方式有立即數尋址、直接尋址、間接尋址、寄存器尋址、基址尋址、變址尋址、相對尋址。指令的執行過程:1.計算下一條要執行的指令的地址:2.從該地址讀取指令:3.對指令譯碼以確定其所要實現的功能;4.計算操作數的地址;5.從該地址讀取操作數;6.執行操作;7.保存結果;I/o系統的工作方式:>程序控制:CPU完全控制,CPU必須時時查詢I/0設備的狀態;>程序中斷:I/o設備以中斷方式通知CPU,定期查詢狀態>DMA方式:CPU只在數據傳輸前和完成后才介入5.4計算機總線結構總線:一種連接多個設備的信息傳遞通道。典型的計算機總線結構由內部總線和外部總線組成。內部總線用于連接CPU內部各個模塊:外部總線用于連接CPU、存儲器和I/0系統,又稱為系統總線。系統總線:可分為數據總線、地址總線、控制總線3類。>數據總線:各個模塊間傳送數據的通道;>地址總線:傳遞地址信息,來指示數據總線上的數據的來源或去向,CPU根據地址信息從相應的存儲單元讀出數據或向該存儲單元寫入數據:>控制總線:控制數據總線和地址總線。1.流水線技術:流水線技術其實是通過并行硬件來提高系統性能的常用方法。基本思想在馮·諾依曼第一臺存儲程序計算機中已經提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CI 457-2024電子級多晶硅用聚乙烯包裝材料技術規范
- T/CGAS 034-2024燃氣發電熱水機系統技術規程
- 小賣部轉讓協助合同7篇
- 網站廣告投放合同(三)與網站廣告投放合同3篇
- 美容養生館勞動合同協議6篇
- 心理衛生與心理健康概述
- 尾礦庫觀測井施工合同5篇
- 內部有效股份轉讓合同6篇
- 有限公司隱名投資協議書3篇
- 中草藥銷售合同3篇
- GB/T 3277-1991花紋鋼板
- 新編簡明英語語言學教程 第二版 戴煒棟10 Language Acquisition課件
- 部編版六年級語文下冊《送元二使安西》課件
- 玻璃鋼化糞池施工方案
- msp430f6638實驗指導書教學開發系統
- 橋梁行洪論證的計算與注意要點
- 講師個人簡介
- 毛坯交付標準提示方案
- 現代寫作教程全套課件
- 工程造價畢業設計
- 自噴漆(環氧乙烷)化學品安全技術說明書(MSDS)
評論
0/150
提交評論