軟件設計師備考筆記

今年上半年考過了程序員,昨天剛剛考完軟件設計師
後天就要碩士論文開題答辯了,分享一波備考軟件設計師的筆記吧,但願像我同樣機械轉行或者其餘專業轉行的後人少走彎路
而後若是想要程序員和軟件設計師的歷年真題與備考視頻與講義的,能夠加我2330163321(企鵝號)也能夠加我微信程序員

文章目錄


數據結構
鄰接矩陣
無向圖
無向圖鄰接矩陣:其鄰接矩陣第i行元素的和即爲頂點i的度,例如:頂點4的度就是第四行的和,即2。
在這裏插入圖片描述
有向圖
其鄰接矩陣的第i行元素之和爲頂點i的出度,而鄰接矩陣的第j列元素之和爲頂點j的入度。例如:頂點3的出度和入度分別爲5和16.
在這裏插入圖片描述
存儲結構
順序存儲結構
用一組地址連續的存儲單元依次存儲線性表的各個數據元素, 適用於頻繁查詢時使用。
在這裏插入圖片描述
鏈式存儲結構
在計算機中用一組任意的存儲單元存儲線性表的數據元素(這組存儲單元能夠是連續的,也能夠是不連續的),適用於在較頻繁地插入、刪除、更新元素時使用。
單鏈表
在這裏插入圖片描述
循環鏈表
在這裏插入圖片描述
雙鏈表
在這裏插入圖片描述
各鏈表的比較
由於雙鏈表有兩個指針域,所以,雙鏈表的靈活度優於單鏈表,可是雙鏈表的開支要大一些
散列存儲結構
將數據元素的存儲位置與關鍵碼之間創建肯定對應關係的查找技術,即鍵值對。
在這裏插入圖片描述
索引存儲結構
索引是一個單獨的、物理的數據庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數據頁的邏輯指針清單。好比數據庫
在這裏插入圖片描述

二叉排序樹
若它的左子樹非空,則左子樹上全部節點的值均小於它的根節點的值
若它的右子樹非空,則右子樹上全部結點的值均大於等於它的根節點的值
它的左、右子樹也分別爲二叉排序樹。查找的時候,中序遍歷二叉樹,獲得一個遞增序列
關鍵字最大的結點能夠有左子樹,但必定沒有右子樹
哈夫曼樹(最優二叉樹)
定義
是帶權路徑(WPL)最短的樹,權值越大的葉子節點越靠近根節點。
構造哈夫曼樹及WPL計算
在這裏插入圖片描述
例題
已知一個文件中出現的各字符及其對應的頻率以下表所示。若採用定長編碼,則該文件中字符的碼長應爲()。若採用Huffman編碼,則字符序列「face」的編碼應爲()。
在這裏插入圖片描述
A.2
B.3
C.4
D.5
A.110001001101
B.001110110011
C.101000010100
D.010111101011
解析:所謂定長編碼是指用多少位二進制足夠表示字符,圖中字符是有6個的,a、b、c、d、e、f,可用000到101表示a到f,這樣編碼字符的碼長能夠爲3,4位固然也是能夠,但咱們是找最合適的,天然3位能知足要求。第二問,哈夫曼樹的左節點未必要比右節點小,可是一般作題時須要寫成左小右大的形式,再左0右1賦值,所謂「face」編碼,是指找到這4個字母,從根節點出發,要經歷的編碼數。以下圖所示,因此答案爲BA
在這裏插入圖片描述
平衡二叉樹
平衡二叉樹(Baland Binary Tree)又被稱爲AVL樹(有別於AVL算法),且具備如下性質:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,而且左右兩個子樹都是一棵平衡二叉樹。
滿二叉樹
除最後一層無任何子節點外,每一層上的全部結點都有兩個子結點或0個子節點的二叉樹=。
查找方法
二分查找法(折半查找法)
適用狀況
不常常變更而查找頻繁的有序列表
優勢
一、比較次數少
二、查找速度快
三、平均性能好

缺點
一、要求待查表爲有序表
二、插入刪除困難

實現算法
首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查找關鍵字比較,若是二者相等,則查找成功;不然利用中間位置記錄將表分紅前、後兩個子表,若是中間位置記錄的關鍵字大於查找關鍵字,則進一步查找前一子表,不然進一步查找後一子表。重複以上過程,直到找到知足條件的記錄,使查找成功,或直到子表不存在爲止,此時查找不成功。
分塊查找
適用狀況
節點動態變化的狀況
優勢
比順序查找算法(就是一個一個的去比較)快得多
缺點
速度不如折半查找法
實現算法
把一個大的線性表分解成若干塊,每塊中的節點能夠任意存放,但塊與塊之間必須排序。假設是按關鍵碼值非遞減的,那麼這種塊與塊之間必須知足已排序要求,實際上就是對於任意的i,第i塊中的全部節點的關鍵碼值都必須小於第i+1塊中的全部節點的關鍵碼值。此外,還要創建一個索引表,把每塊中的最大關鍵碼值做爲索引表的關鍵碼值,按塊的順序存放到一個輔助數組中,顯然這個輔助數組是按關鍵碼值費遞減排序的。查找時,首先在索引表中進行查找,肯定要找的節點所在的塊。因爲索引表是排序的,所以,對索引表的查找能夠採用順序查找或折半查找;而後,在相應的塊中採用順序查找,便可找到對應的節點。
平均查找長度(E(n))
假設某個線性表中共有n個節點,分紅大小相等的b塊,每塊有s=n/b,則

 

排序
直接插入排序
每一趟將一個待排序的記錄,按照其關鍵字的大小插入到有序隊列的合適位置裏,直到所有插入完成,好比鬥地主抽牌就是這樣的規則。
在這裏插入圖片描述
簡單選擇排序
每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到所有排序結束爲止。
在這裏插入圖片描述
冒泡排序
兩兩比較待排序的關鍵字,並交換不知足次序要求的那對數,直到整個表都知足次序要求爲止。
在這裏插入圖片描述
希爾排序
把記錄按步長 gap 分組,對每組記錄採用直接插入排序方法進行排序。隨着步長逐漸減少,所分紅的組包含的記錄愈來愈多,當步長的值減少到 1 時,整個數據合成爲一組,構成一組有序記錄,則完成排序。
在這裏插入圖片描述
快速排序
經過一趟排序將要排序的數據分割成獨立的兩部分:分割點左邊都是比它小的數,右邊都是比它大的數。而後再按此方法對這兩部分數據分別進行快速排序,整個排序過程能夠遞歸進行,以此達到整個數據變成有序序列。採用了分治法的算法策略。
在這裏插入圖片描述
堆排序
堆排序中堆的定義:n個元素的序列{k1,k2,…,kn}當且僅當知足下列關係時,稱爲堆。
{█(k_i≤k_2i@k_i≤k_(2i+1) )┤或{█(k_i≥k_2i@k_i≥k_(2i+1) )┤ (i=1,2,···,⌊n/2⌋)
歸併排序
將待排序序列R[0…n-1]當作是n個長度爲1的有序序列,將相鄰的有序表成對歸併,獲得n/2個長度爲2的有序表;將這些有序序列再次歸併,獲得n/4個長度爲4的有序序列;如此反覆進行下去,最後獲得一個長度爲n的有序序列。
在這裏插入圖片描述
基數排序
基數排序與本系列前面講解的七種排序方法都不一樣,它不須要比較關鍵字的大小。它是根據關鍵字中各位的值,經過對排序的N個元素進行若干趟「分配」與「收集」來實現排序的。
設有一個初始序列爲: R {50, 123, 543, 187, 49, 30, 0, 2, 11, 100}。
咱們知道,任何一個阿拉伯數,它的各個位數上的基數都是以09來表示的。因此咱們不妨把09視爲10個桶。 咱們先根據序列的個位數的數字來進行分類,將其分到指定的桶中。例如:R[0] = 50,個位數上是0,將這個數存入編號爲0的桶中。
在這裏插入圖片描述
分類後,咱們在從各個桶中,將這些數按照從編號0到編號9的順序依次將全部數取出來。這時,獲得的序列就是個位數上呈遞增趨勢的序列。 按照個位數排序: {50, 30, 0, 100, 11, 2, 123, 543, 187, 49}。
排序的比較
排序方法 最好時間複雜度 平均時間複雜度 最壞時間複雜度 輔助空間 穩定性算法

直接插入 O(n) O(n2) O(n2) O(1) 穩定
簡單選擇 O(n2) O(n2) O(n2) O(1) 不穩定
冒泡排序 O(n) O(n2) O(n2) O(1) 穩定
希爾排序 不存在 O(n1.3) 不存在 O(1) 不穩定
快速排序 O(nlog_2⁡n) O(nlog_2⁡n) O(n2) O(log_2⁡n) 不穩定
堆排序 O(nlog_2⁡n) O(nlog_2⁡n) O(nlog_2⁡n) O(1) 不穩定
歸併排序 O(nlog_2⁡n) O(nlog_2⁡n) O(nlog_2⁡n) O(n) 穩定
基數排序 O(d(n+rd)) O(d(n+rd)) O(d(n+rd)) O(rd) 穩定

例題
堆是一種數據結構,(34)是堆排序數據庫

A.(10, 50, 80, 30, 60, 20, 15, 18)
B.(10,18,15,20,50,80,30,60)
C.(10,15,18,50,80,30,60,20)
D.(10,30,60,20,15,18,50,80)
根據定義可知選B
廣義表
廣義表的長度是將最外面那層的括號刪了之後所剩下的元素(組)個數,深度是括號的層數
例題
L1=((a,(a,b),((a,b),c))),L2=((1,2,3)),L3=(1,2,3)。求L一、L二、L3的長度和深度
答案:
長度 深度編程

L1 1 4
L2 1 2
L3 3 1
歸併排序的歸併路數 歸併路數 =|logkm|,其中m爲元素個數,k爲多路歸併趟數 例題 若對27個元素只進行三趟多路歸併排序,則選取的歸併路數爲 (37) 。

A.2 B.3 C.4 D.5
根據公式可得log以3爲底,以27爲真數的答案爲3。因此選B
表達式的記法
前綴表達式(前綴記法、波蘭式)
從右至左掃描表達式,遇到數字時,將數字壓入堆棧,遇到運算符時,彈出棧頂的兩個數,用運算符對它們作相應的計算(棧頂元素 op 次頂元素),並將結果入棧;重複上述過程直到表達式最左端,最後運算得出的值即爲表達式的結果。
例如前綴表達式「- × + 3 4 5 6」:
(1) 從右至左掃描,將六、五、四、3壓入堆棧;
(2) 遇到+運算符,所以彈出3和4(3爲棧頂元素,4爲次頂元素,注意與後綴表達式作比較),計算出3+4的值,得7,再將7入棧;
(3) 接下來是×運算符,所以彈出7和5,計算出7×5=35,將35入棧;
(4) 最後是-運算符,計算出35-6的值,即29,由此得出最終結果。
中綴表達式
咱們日常用的表達式a+b-c這樣的就是中綴表達式
後綴表達式(後綴記法、逆波蘭式)
從左至右掃描表達式,遇到數字時,將數字壓入堆棧,遇到運算符時,彈出棧頂的兩個數,用運算符對它們作相應的計算(次頂元素 op 棧頂元素),並將結果入棧;重複上述過程直到表達式最右端,最後運算得出的值即爲表達式的結果。
例如後綴表達式「3 4 + 5 × 6 -」:
(1) 從左至右掃描,將3和4壓入堆棧;
(2) 遇到+運算符,所以彈出4和3(4爲棧頂元素,3爲次頂元素,注意與前綴表達式作比較),計算出3+4的值,得7,再將7入棧;
(3) 將5入棧;
(4) 接下來是×運算符,所以彈出5和7,計算出7×5=35,將35入棧;
(5) 將6入棧;
(6) 最後是-運算符,計算出35-6的值,即29,由此得出最終結果。
系統基礎
符號數
原碼
正數的原碼等於自身的二進制數,負數的原碼第一位爲1(符號位,表示負數),後面爲自身的二進制數
反碼
正數的反碼等於自身的二進制數,負數的反碼符號位不動,其他各位按位取反
補碼
正數的補碼等於自身的二進制數,負數的補碼是在反碼的基礎上+1
移碼(增碼)
不管正負數,只要將其補碼的符號位取反便可
符號數的應用
在計算機中,最適合數字加減運算的數字編碼是補碼,最適合表示浮點數階碼的數字編碼是移碼。
定點數
所謂定點數,就是小數點的位置固定不變的數。小數點的位置一般有兩種約定形式:定點整數(純整數,小數點在最低有效數值位以後)和定點小數(純小數,小數點在最高有效數值位以前)。
機器字長爲n時各類碼製表示的帶符號數的範圍設計模式

碼制 定點整數 定點小數
原碼 [-(2n-1-1),2n-1-1] [-(1-2-(n-1)),1-2-(n-1)]
反碼 [-(2n-1-1),2n-1-1] [-(1-2-(n-1)),1-2-(n-1)]
補碼 [-2n-1,2n-1-1] [-1,1-2-(n-1)]
移碼 [-2n-1,2n-1-1] [-1,1-2-(n-1)]
記憶技巧 當A=2n-1,B=1-2-(n-1)時,則有如下規律
碼制 定點整數 定點小數
原碼 [-(A-1),A-1] [-B,B]
反碼 [-(A-1),A-1] [-B,B]
補碼 [-A,A-1] [-1,B]
移碼 [-A,A-1] [-1,B]

計算機指令系統
當即尋址 :操做數包含在指令中,獲取操做數是最快的
直接尋址 :操做數的地址在指令中
寄存器尋址 :操做數在寄存器中
寄存器間接尋址:操做數的地址在寄存器中
中央處理器
CPU的組成
運算器、控制器、寄存器和內部總線,其中控制器不只要保證程序的正確執行,並且要可以處理異常事件。
存儲系統
存儲器的分類
按位置分類
內存(主存)、外存(輔存)
按材料分類
磁存儲器、半導體存儲器、光存儲器
按工做方式分類
讀寫存儲器、只讀存儲器

按訪問方式分類
按地址訪問的存儲器、按內容訪問的存儲器(相聯存儲器)
按尋址方式分類
隨機存儲器、順序存儲器、直接存儲器
軟件測試
測試階段劃分
單元測試(模塊測試)
通常是在編程階段完成,由程序員對本身編寫的模塊自行測試,檢查模塊是否實現了詳細設計說明書中規定的功能和算法,一般使用白盒測試。
單元測試計劃應該在詳細設計階段制定。
單元測試期間着重從:模塊接口、局部數據結構、重要的執行通路、出錯處理、邊界條件這幾個方面對模塊進行測試。
集成測試(組裝測試)
主要目標是發現模塊間的接口和通訊問題。集成測試主要發現概要設計階段產生的錯誤,一般採用黑盒測試。集成測試計劃應該在概要設計階段制定。集成的方式可分爲非增殖式和增殖式。
確認測試
檢查軟件的功能、性能和其餘特徵是否與用戶的需求一致。它是以需求規格說明書做爲依據的測試,一般採用黑盒測試。軟件確認測試首先要進行有效性測試以及軟件配置審查,而後進行驗收測試。
確認測試通常有如下三個步驟:
有效性測試
軟件配置審查
驗收測試
α測試與β測試(當一個軟件是做爲產品被許多客戶使用時須要用這種測試)
系統測試
系統測試的任務是把軟件放在實際的硬件和網絡環境中進行測試,主要測試軟件的非功能需求和質量屬性是否獲得知足。系統測試是根據系統方案說明書來設計測試用例,一般採用黑盒測試。常見的系統測試有:恢復測試、安全性測試、強度測試、性能測試、可靠性測試和安裝測試。在已確認的計算機軟硬件環境下,經過與系統需求對比,發現系統與用戶需求不符或矛盾的地方。
迴歸測試
在軟件發生變動後進行的測試,以發現變動時引發的其餘錯誤
白盒測試
語句覆蓋
使被測程序中的每條語句至少執行一次
斷定覆蓋(分支覆蓋)
使被測程序中的每一個斷定表達式至少得到一次「真」值和「假」值
條件覆蓋
使被測程序中的每一個邏輯條件的各類可能的值至少知足一次
斷定/條件覆蓋
使得斷定中的每一個條件的「真」值和「假」值至少出現一次,並使自己斷定結果的「真」值和「假」值至少出現一次
條件組合覆蓋
使得每一個斷定中條件的各類可能值的組合都至少出現一次。知足條件組合覆蓋的測試用例是必定知足斷定覆蓋、條件覆蓋和斷定/條件覆蓋的
路徑覆蓋
覆蓋被測試程序中全部可能的路
面向對象測試
如下四個層次由低到高的順序排列
(1)測試與對象關聯的單個操做,即算法層。
(2)測試單個對象類,類層。
(3)測試對象集羣,模板層
(4)測試面向對象系統,系統層。
編譯原理
校驗碼
奇偶校驗
一般用於對少許數據的校驗
奇校驗
將信息數據的各位進行模二加法並做爲校驗碼的稱爲奇校驗。
偶校驗
將信息數據的各位進行模二加法並取反做爲校驗碼的稱爲偶校驗。
海明碼
採用多位校驗碼的方式,能夠發現、糾正錯誤。數據位和校驗位必須知足關係式:2校驗位-1≥數據位+校驗位。碼距至少是3。
循環冗餘校驗碼
檢錯能力很是強,可是不能糾錯。編碼長度(CRC字長)爲數據位+校驗位
文法
終結符和非終結符
文法格式一般爲:ɑ→β,若字符爲大寫字母,則是非終結符,若字符爲小寫字母,則是終結符
文法的分類
0型文法(短語文法)
設G=(VN,VT,P,S),若是它的每一個產生式α→β是這樣一種結構:α∈(VN∪VT)且至少含有一個非終結符,而β∈(VN∪VT),則G是 一個0型文法。一個很是重要的理論結果是:0型文法的能力至關於圖靈機(Turing)。或者說,任何0型文語言都是遞歸可枚舉的,反之,遞歸可枚舉集一定是一個0型語言。0型文法是這幾類文法中,限制最少的一個,因此咱們在試題中見到的,至少是0型文法。
1型文法(上下文有關文法)
此文法對應於線性有界自動機。它是在0型文法的基礎上每個α→β,都有|β|>=|α|。這裏的|β|表示的是β的長度。數組

注意:雖然要求|β|>=|α|,但有一特例:α→ε也知足1型文法。緩存

若有A->Ba則|β|=2,|α|=1符合1型文法要求。反之,如aA->a,則不符合1型文法。
2型文法(上下文無關文法)
此文法對應於下推自動機。2型文法是在1型文法的基礎上,再知足:每個α→β都有α是非終結符。如A->Ba,符合2型文法要求。大多數程序設計語言的語法規則能夠用上下文無關文法描述安全

如Ab->Bab雖然符合1型文法要求,但不符合2型文法要求,由於其α=Ab,而Ab不是一個非終結符。
3型文法(正規文法)
此文法對應於有限狀態自動機。它是在2型文法的基礎上知足:A→α|αB(右線性)或A→α|Bα(左線性)。服務器

若有:A->a,A->aB,B->a,B->cB,則符合3型文法的要求。但若是推導 爲:A->ab,A->aB,B->a,B->cB或推導 爲:A->a,A->Ba,B->a,B->cB則不符合3型方法的要求了。具體的說,例子 A->ab,A->aB,B->a,B->cB中的A->ab不符合3型文法的定義,若是把後面的ab,改爲「一個非終結 符+一個終結符」的形式(即爲aB)就對了。例子A->a,A->Ba,B->a,B->cB中若是把B->cB改成 B->Bc的形式就對了,由於A→α|αB(右線性)和A→α|Bα(左線性)兩套規則不能同時出如今一個語法中,只能徹底知足其中的一個,才能算 3型文法。
數據流圖(Data Flow Diagram,DFD)
在面向數據流的設計方法中,通常把數據流圖中的數據流劃分爲兩種類型,一種是變換流,一種是事務流。DFD由數據流、加工、數據存儲和外部實體4個要素構成。
編譯過程
詞法分析
從左到右逐個字符地掃描,從中識別出一個個「單詞」符號。「單詞」符號是程序設計語言的基本語法單位,如關鍵字、標識符、常數、運算符和分隔符等。
語法分析
根據語言的語法規則將單詞符號序列分解成各種語法單位,好比表達式、語句和程序等。語法規則就是各種語法單位的構成規則。經過語法分析肯定整個輸入串是否構成一個語法上正確的程序。
語義分析
檢查源程序是否包含靜態語義錯誤,並收集類型信息供後面的代碼生成階段使用。只有語法和語義都正確的源程序才能被翻譯成正確的目標代碼。
語義分析的一個主要工做是進行類型分析和檢查。程序語言中的一個數據類型通常包含兩個方面的內容:類型的載體及其上的運算。例如:整除取餘運算只能對整型數據進行運算,若其運算對象中有浮點數就認爲是類型不匹配的錯誤。靜態的語義錯誤是指編譯程序能夠發現,動態的語義錯誤是指源程序雖然可以被編譯和執行,可是結果不對,通常是邏輯上的錯誤。
進程
進程的三態圖
在這裏插入圖片描述
進程的五態圖
在這裏插入圖片描述
PV操做
進入臨界區時執行P操做(申請),退出臨界區時執行V操做(釋放)
操做系統
內存編址
已知主存容量爲16MB,且按①,求該主存地址至少須要多少位
當①的內容爲「字節編址」時
字節編址就是8位的意思,因此16MB=(161024)KB=(1610241024)byte=24210210=224 byte.因此須要24位
當①的內容爲「4位編址」時
先將編址方式湊成8位,即2
4位,相應的主存容量也擴充2倍爲32MB,因此32MB=(321024)KB=(3210241024)byte=25210*210=225byte.因此須要25位
例題
若內存按字節編址,用存儲容量爲32K×8比特的存儲器芯片構成地址編號 A0000H~DFFFFH的內存空間,則至少須要______片。
微信

一、A.4 B.6 C.8 D.10
空間大小爲DFFFF-A0000+1=262144byte=256kb。
組成內存儲器的芯片數量=內存儲器的容量/單個芯片的容量=(256kb8b)/(32k8b)=8,因此選C
指令運行參數
設定變量T爲指令運行總時間,t爲所需時間最長部分指令的時間(週期),n爲指令條數
指令相關公式
順序方式運行指令所需時間:Tn
流水方式運行指令所需時間:T+(n-1)t
重疊方式運行指令所需時間:(n+2)t
吞吐率:n/流水方式運行指令所需時間
效率:效率=吞吐率
t
加速比:加速比=效率
n
例題
若指令流水線把一條指令分爲取指、分析和執行三部分,且三部分的時間分別是2ns,2ns,1ns,則100條指令所有執行完畢所需的時間是多少ns
答:由於指令運行時間=T+(n-1)t,因此(2+2+1)+(100-1)*2=203。注意,若選擇題中沒有相應的選擇,則將每段指令所需時間均設置爲最長時間,就本題而言,應該是2ns,2ns,2ns。(由於目前對於指令運行時間的算法沒有統一)

若每一條指令均可以分解爲取指、分析和執行三步。已知取指時間t取指=5Δt,分析時間t分析=2Δt,執行時間t執行=5Δt。若是按順序方式從頭至尾執行完500條指令需_____Δt。若是按照[執行] k、分析 k+一、[取指] k+2重疊的流水線方式執行指令,從頭至尾執行完500條指令需_____Δt。

四、A.5590 B.5595 C.6000 D.6007
五、A.2492 B.2500 C.2510 D.2515
第一個空符合順序方式,則時間爲Tn=12500=6000,第二個空符合重疊的流水線方式,則時間爲(n+2)*t=(500+2)5=2510,因此選C,C
某指令流水線由5段組成,各段所須要的時間以下圖所示。連續輸入10條指令時的吞吐率爲_____ 。
在這裏插入圖片描述
六、A.10/70Δt B.10/49Δt C.10/35Δt D.10/30Δt
吞吐率= n/ T+(n-1)t=10/((1+3+1+2+1)+9
3)= 10/35Δt,因此選C
內存管理
分配方案的比較

分配辦法 單一連續分配 固定分區分配 可變分區分配
分配類型 靜態分配法 靜態分配法 動態分配法
分配特色 不分區,全部用戶空間給某個進程或做業 分紅大小不等的區域,區域分完後固定不變

可變分區分配算法
首次適應法
從主存低地址開始,尋找第一個可用(即大於等於做業需求的內存)的自由區,這種方法可實現快速分配,縮短查找時間。
循環適應法
是首次適應法的一個變種,也就是再也不是每次都從頭開始匹配,而是連續向下匹配。
最佳適應法
選擇最接近做業需求的內存自由區進行分配。這種方法能夠減小碎片,但同時也可能帶來更多小得沒法再用的碎片。
最差適應法
選擇整個主存中最大的內存自由區。
虛存管理
頁式存儲

題目每每是給出下圖求物理地址,首先,咱們知道所謂的邏輯地址是頁號+頁內地址,頁內地址=頁面大小位數。具體的作法是:將邏輯地址轉換爲二進制,從右邊開始數頁內地址位數,剩下的左邊二進制即爲頁號。根據圖片找到對應的塊號,則物理地址爲塊號(二進制)+頁內地址。
在這裏插入圖片描述
例題
在這裏插入圖片描述在這裏插入圖片描述

段式存儲
在這裏插入圖片描述
不一樣管理方式之間的優缺點

  優勢 缺點
段式存儲 便於多道程序共享內存,便於對存儲器的保護,各段程序修改互不影響 內存利用率低,內存碎片浪費大
頁式存儲 利用率高,產生的內存碎片小,內存間分配及管理簡單 要有相應的硬件支持,增長了系統開銷,請求調頁的算法如選擇不當,有可能產生抖動現象
段頁式存儲 空間浪費小,存儲共享容易、存儲保護容易、能動態鏈接 因爲管理軟件的增長,複雜性和開銷也隨之增長,須要的硬件以及佔用的內容也有所增長,使得執行速度大大降低
頁面置換算法 最優置換算法 後續頁面最早被訪問的頁面保留,淘汰那些好久纔會被使用的頁面 先進先出算法 優先淘汰最早進入的頁面 最近最少使用算法 優先淘汰存在最久的頁面 局部性原理 時間局部性 一個頁面被訪問後,頗有可能再次被訪問 空間局部性 一個頁面被訪問後,頗有可能訪問其周圍的頁面 做業管理 做業時間 做業週轉時間 T=做業完成時間-做業提交時間 T=做業等待時間+做業運行時間 做業平均週轉時間

T平均=(T1+T2+……Tn)/n
帶權做業週轉時間
單個做業帶權週轉時間
W=做業週轉時間/做業實際運行時間
做業平均帶權週轉時間
W=(W1+W2+……+Wn)/n
做業調度算法
先來先服務
按做業序號依次運行
最短做業優先
優先運行所需運行時間最短的做業
優先數
優先級高優先運行
定時輪轉
規定一個時間片大小,做業按序號依次運行,每次運行時間與時間片大小等同,到期後繼續運行下一個時間片長度的任務,重複步驟。
Cache(高速緩存)
Cache的讀寫過程
寫直達
當要寫Cache時,數據同時寫回主存
寫回
當相應數據從Cache中被淘汰時寫回主存
標識法
取數據時添加一個有效位爲1,當修改主存數據後設置有效位爲0.
地址映像
直接映像
主存與Cache的映像
主存的每一頁與Cache的每一頁相同大小,由於主存比Cache大得多,因此儘管每一頁相等,主存的總頁數遠大於Cache的總頁數。所以,根據Cache的頁數大小,主存將相同分爲多個組,每一個組的頁數與Cache總頁數相等,其中的每一頁正好配對。編號不一致的頁是不能相互映像的。
優缺點
優勢:地址變換簡單。
缺點:每塊相互對應,不夠靈活。
主存與Cache的地址組成
主存:區號+塊號+塊內地址
Cache:塊號+塊內地址
示意圖

在這裏插入圖片描述
全相聯映像
主存與Cache的映像
將主存與Cache劃分紅若干個大小相等的塊,主存中每一塊均可以調到Cache中的每一塊。
特色
優勢:訪問靈活,衝突率低,只有Cache滿時纔會出如今衝突。缺點:地址變換比較複雜,速度相對慢。
主存與Cache的地址組成
主存:塊號+塊內地址
Cache:塊號+塊內地址
示意圖
在這裏插入圖片描述
組相聯映像
主存與Cache的劃分
主存:主存根據Cache大小劃分紅若干個區,每一個區內劃分紅若干個組,每一個組再劃分紅若干個塊。
Cache:劃分紅若干個組,每一個組劃分紅若干個塊。
主存與Cache的映像
主存的每一個分區與Cache採用直接映像,主存的每一個組以內採用全相聯映像。
特色
融合了直接映像與全相聯映像兩種映像方式,結合了二者的優據點。具體實現容易,命中率與全相聯映像接近。
主存與Cache的地址組成
主存:區號+組號+塊號+塊內地址
Cache:組號+塊號+塊內地址
示意圖
在這裏插入圖片描述
塊衝突次數比較
發生塊衝突次數從大到小排序爲:直接映像>組相聯映像>全相聯映像
例題
某 32 位計算機的 cache 容量爲 16KB,cache 塊的大小爲 16B,若主存與 cache 的地址映射採用直接映射方式,則主存地址爲 1234E8F8(十六進制)的單元裝入的 cache 地址爲____。
A. 00 0100 0100 1101 (二進制)
B. 01 0010 0011 0100 (二進制)
C. 10 1000 1111 1000 (二進制)
D. 11 0100 1110 1000 (二進制)
cache的容量爲16KB,塊大小爲16B,所以一共有16KB/16B=1024個頁,因此須要10位來存儲(210=1024)。塊所須要的存儲地址位數爲4位(24=16)。由於採用的是直接映射方式,因此主存與cache的地址關係爲:
主存:區號+塊號+塊內地址
Cache:塊號+塊內地址
因此,cache地址一共是14位,將主存地址轉換爲二進制後最後14位就是Cache地址了,選C
「Cache+主存儲器」系統的平均週期
若t1爲Cache的週期時間,t2爲主存儲器週期時間,h爲Cache的訪問命中率,則系統的平均週期爲h*t1+(1-h)t2
命中率
Cache由兩部分組成:控制部分和Cache存儲器部分。控制部分的功能是判斷CPU要訪問的信息是否在Cache存儲器中,若在即爲命中,若不在則沒有命中。命中時直接對Cache存儲器尋址;未命中時,要按照替換原則決定主存的一塊信息放到Cache存儲器的哪一塊裏。
Cache命中率=(平均存取時間-主存存取時間)/(高速緩存存取時間-主存存取時間)

例題
高速緩存cache與主存間採用全相聯地址映像方式,高速緩存的容量爲4MB,分爲 4塊,每塊1MB,主存容量爲256MB。 若主存讀寫時間爲30ns,高速緩存的讀寫時間爲3ns,平均讀寫時間爲3.27ns,則該高速緩存的命中率爲______
由公式可得命中率爲99%
總線系統的數據傳送速率
計算公式
公式Q=W
F/N,其中Q爲總線數據傳輸率,W爲總線數據寬度(總線位寬/8),F爲總線工做頻率,N爲完成一次數據傳送所需的總線時鐘週期個數。
例題
若總線位寬爲16位,總線工做頻率爲8MHZ,完成一次數據傳送需2個總線時鐘週期,則總線的數據傳輸速率爲多少?
Q的計算公式爲:((16/8)*8M)/2=8MB/s
中斷響應時間
從發出中斷請求到進入中斷處理所用的時間
系統的可靠性
設p1,p2爲2個部件的可靠度
串聯與並聯系統
若爲並聯,則可靠度=1-(1-p1)(1-p2)
若爲串聯,則可靠度=p1p2
N模冗餘系統
在這裏插入圖片描述
N模冗餘系統是當有必定量的部件作出相同的處理結果時,則輸出該結果,概念太複雜,懶得寫了,直接舉例子吧,如上圖所示,若該3個部件中有2個部件正常運行,則輸出結果,所以要計算2個部件的狀況和3個部件的狀況,計算公式以下,其中N爲總部件數,i爲當前計算的正常運行的部件數,R爲可靠性。
在這裏插入圖片描述
在這裏插入圖片描述
平均無端障時間(MTBF)
MTBF=1/λ,λ爲失效率
例題
三個可靠度R均爲0.8的部件串聯構成一個系統,以下圖所示:
在這裏插入圖片描述
則該系統的可靠度爲 _____
由串聯公式可得:0.8×0.8×0.8=0.512
在這裏插入圖片描述在這裏插入圖片描述

同理,當R爲0.5時可計算出可靠性爲0.5,因此選擇BA
若某計算機系統是由500個元器件構成的串聯繫統,且每一個元器件的失效率均爲10-7/H,在不考慮其餘因素對可靠性的影響時,該計算機系統的平均故障間隔時間爲_____小時。
根據公式可得MTBF=1/510-5=2104
緩衝區
單緩衝區
花費的時間=(讀緩衝時間+傳送用戶時間)磁盤塊+每一個磁盤處理時間
雙緩衝區
花費的時間=讀緩衝時間
磁盤塊+傳送用戶時間+每一個磁盤處理時間
軟件工程
軟件生命週期
問題定義
要求系統分析員與用戶進行交流,弄清「用戶須要計算機解決什麼問題」而後提出關於「系統目標與範圍的說明」,提交用戶審查和確認
可行性研究
一方面在於把待開發的系統的目標以明確的語言描述出來
另外一方面從經濟、技術、法律等多方面進行可行性分析。
需求分析
肯定軟件系統的功能需求和非功能需求;
分析軟件系統的數據要求:
導出系統的邏輯模型;
修正項目開發計劃;
若有必要,能夠開發一個原型系統。
開發階段
1,設計
2,實現:根據選定的程序設計語言完成源程序的編碼。
3,測試
維護
1,改正性維護:在軟件交付使用後,因爲開發測試時的不完全、不徹底、必然會有一部分隱藏的錯誤被帶到運行階段,這些隱藏的錯誤在某些特定的使用環境下就會暴露。
2,適應性維護:是爲適應環境的變化而修改軟件的活動。
3,完善性維護:是根據用戶在使用過程當中提出的一些建設性意見而進行的維護活動。
4,預防性維護:是爲了進一步改善軟件系統的可維護性和可靠性,併爲之後的改進奠基基礎。

統一過程(UP)
簡介
每一個階段達到某個里程碑時結束,如下列出了各個階段的里程碑
初啓階段
生命週期目標
精化階段
生命週期架構
構建階段
初始運做功能
移交階段
產品發佈
CMM(Capability Maturity Model,軟件能力成熟度模型)
初始級
軟件工程管理制度缺少,過程缺少定義、混亂無序
可重複級
創建了基本的項目管理過程和實踐來追蹤項目費用、進度和功能特性
已定義級
全部項目都採用根據實際狀況修改後獲得的標準軟件過程來開發和維護軟件
已管理級
收集對軟件過程和產品質量的詳細度量,對軟件過程和產品都有定量的理解與控制
優化級
過程的量化反饋和先進的新思想,新技術促使過程不斷改進
CMMI(Capability Maturity Model Integration,軟件能力成熟度集成模型)
未完成級
代表過程域的一個或多個特定目標沒有被知足
已執行級
過程經過轉化可識別的輸入工做產品,產生可識別的輸出工做產品,關注於過程域的特定目標的完成
已管理級
過程做爲已管理的過程制度化,針對單個過程實例的能力
已定義級
過程做爲已定義的過程制度化,關注過程的組織級標準化和部署
量化管理級
過程做爲定量管理的過程制度化
優化級
過程做爲優化的過程制度化,代表過程獲得很好地執行且持續獲得改進
COCOMO
基本COCOMO模型
靜態單變量模型,用於對整個軟件系統進行估算。
中級COCOMO模型
靜態多變量模型,將軟件系統模型分爲系統和部件兩個層次
詳細COMO模型
將軟件系統模型分爲系統、子系統和模塊三個層次,除包括中級模型所考慮的因素外,還考慮了在需求分析、軟件設計等每一步的成本驅動屬性的影響。
COCOMOII
應用組裝模型
在軟件工程的前期階段使用,這時用戶界面的原型開發、對軟件和系統交互的考慮、性能的評估以及技術成熟度的評價是最重要的
早期設計階段模型
在需求已經穩定而且基本的軟件體系結構已經創建時使用
體系結構階段模型
在軟件的構造過程當中使用
Putnam估算模型
動態多變量,它是假設在軟件開發的整個生存週期中工做量有特定的分佈。
ISO/IEC 9126(軟件質量模型)
簡介
由3個層次組成:第一層是質量特性,第二層是質量子特性
特性含義
其中各六個質量特性與二十七個質量子特性的關係以下表:

質量特性 功能性 可靠性 易使用性 效率 可維護性 可移植性
質量子特性 適合性 成熟性 易理解性 時間特性 易分析性 適應性
  準確性 容錯性 易學性 資源特性 易改變性 易安裝性
  互用性 易恢復性 易操做性   穩定性 一致性
  依從性       易測試性 易替換性

UML(Unified Modeling Language,統一建模語言)
構件圖
用來以圖形化的方式描述系統的物理結構,它能夠用來顯示程序代碼如何分解成模塊
部署圖
描述系統中硬件和軟件的物理架構,它描述構成系統架構的軟件構件、處理器和設備
用例圖
以圖形化的方式描述系統與外部系統及用戶的交互。對系統的使用方式進行分類。
協做圖
強調收發消息的對象之間的結構組織
序列圖
描述了在一個用例或操做的執行過程當中以時間順序組織的對象之間的交互活動,關注系統的動態視圖
對象圖
展示了一組對象以及它們之間的關係,描述了在類圖中所創建的事物的實例的靜態快照
類圖
展示了一組對象、接口、協做和它們之間的關係,給出系統的靜態視圖,對系統的靜態設計視圖建模(對系統的詞彙建模、對簡單協做建模、對邏輯數據庫模式建模)
狀態圖
用於類、接口、協做的行爲建模,強調對象行爲的事件順序,關注系統的動態視圖
活動圖
是一種特殊的狀態圖,展示了在系統內從一個活動到另外一個活動的流程。活動圖專一於系統的動態視圖,它對於系統的功能建模特別重要,並強調對象間的控制流程。
順序圖
強調的是對象間發送消息的順序。
類之間的相互聯繫
在類與類之間的5種關係中,從弱到強依次爲:依賴,關聯,聚合,組合和繼承
項目管理
Gantt
沒法描述任務之間的依賴關係,也沒法肯定影響進度的關鍵任務
在這裏插入圖片描述
PERT和CPM
pert沒法描述任務之間的並行關係
在這裏插入圖片描述
耦合
無直接耦合
兩個模塊之間沒有直接的關係,它們分別從屬於不一樣模塊的控制與調用,它們之間不傳遞任何信息。所以,模塊間耦合性最弱,模塊獨立性最高
數據耦合
兩個模塊之間有調用關係,傳遞的是簡單的數據值
標記耦合
兩個模塊之間傳遞的是數據結構,如高級語言的數組名,記錄名,文件名等這些名字即爲標記,其實傳遞的是這個數據結構的地址.
控制耦合
模塊間傳遞的信息不但有數據,還包括控制信息。例如:一個模塊經過傳遞開關、標誌對某一模塊的多種功能進行選擇,則這兩個模塊之間的耦合方式是控制耦合。
內容耦合
當一個模塊直接使用另外一個模塊的內部數據,或經過非正常入口而轉入另外一個模塊內部
外部耦合
模塊間經過軟件以外的環境聯結(如I/O將模塊耦合到特定的設備、格式、通訊協議上)
公共耦合
經過一個公共數據環境相互做用的那些模塊間的耦合
內聚
功能內聚
完成一個單一功能,各個部分協同工做,缺一不可。
順序內聚
處理元素相關,並且必須順序執行
通訊內聚
全部處理元素集中在一個數據結構的區域上
過程內聚
處理元素相關,並且必須按特定的次序執行
瞬時內聚
所包含的任務必須在同一時間間隔執行,如初始化模塊
邏輯內聚
完成邏輯上相關的一組任務
偶然內聚
完成一組沒有關係或鬆散關係的任務
軟件開發模型
瀑布模型
給出了軟件生存週期中制定開發計劃、需求分析、軟件設計、編碼、測試和維護等階段以及各階段的固定順序,上一階段完成後才能進入到下一階段,整個過程如同瀑布流水。該模型爲軟件的開發和維護提供了一種有效的管理模式,但在大量的實踐中暴露出其缺點,其中最爲突出的是缺少靈活性,特別是沒法解決軟件需求不明確或不許確的問題。這些問題有可能形成開發出的軟件並非用戶真正須要的,而且這一點只有在開發過程完成後才能發現。因此瀑布模型適用於需求明確,且不多發生較大變化的項目。
演化模型
容許在獲取了一組基本需求後,經過快速分析構造出軟件的一個初始可運行版本(稱做原型),而後根據用戶在適用原型的過程當中提出的意見對原型進行改進,從而得到原型的新版本。這一過程重複進行,直到獲得令用戶滿意的軟件。該模型主要用於對軟件需求缺少準確認識的狀況。
螺旋模型
將瀑布模型和演化模型進行結合,在保持兩者優勢的同時,增長了風險分析,從而彌補了兩者的不足。該模型沿着螺線旋轉,並經過笛卡爾座標的四個象限分別表示四個方面的活動:制定計劃、風險分析、實施工程和客戶評估。螺旋模型爲項目管理人員及時調整管理決策提供了方便,進而可下降開發風險。
噴泉模型
以面向對象的軟件開發方法爲基礎,以用戶需求爲動力,以對象來驅動的模型。該模型主要用於描述面向對象的開發過程,體現了面向對象開發過程的迭代和無間隙特性。迭代指模型中的活動一般須要重複屢次,相關功能在每次迭代中被加入新的系統。無間隙是指在各開發活動(如分析、設計、編碼)之間沒有明顯邊界。
軟件開發方法
結構化方法
面向數據流、自頂向下、適合數據處理領域的問題、不適合大規模、複雜的項目、難以適應需求的變化
Jackson方法
面向數據結構、適合小規模的項目、當輸入數據結構與輸出數據結構之間沒有對應關係時,難以應用此方法
原型化方法
適合需求不清、業務理論不肯定、需求常常變化的狀況。
冗餘附加技術
屏蔽硬件錯誤的容錯技術
冗餘附加技術包括:關鍵程序和數據的冗餘及調用;檢測、表決、切換、重構和復算的實現。
屏蔽軟件錯誤的容錯技術
冗餘附加技術包括:冗餘備份程序的存儲及調用;實現錯誤檢測和錯誤恢復的程序;實現容錯軟件所需的固化程序。
風險管理
軟件風險
項目風險
項目風險威脅到項目計劃,若發生項目風險,就有可能拖延項目的進度和增長項目的成本。項目風險是指預算、進度、人員、資源、利益相關者、需求等方面的潛在問題以及他們對軟件項目的影響。項目複雜度、規模及結構不肯定性也屬於項目風險因素
技術風險
技術風險威脅到要開發軟件的質量及交付時間。若發生技術風險,開發工做就可能變得很困難或根本不可能。技術風險是指設計、實現、接口、驗證和維護等方面的潛在問題。此外,規格說明的歧義性、技術的不肯定性、技術陳舊以及前沿技術也是技術風險因素。
商業風險
市場風險
開發了一個沒有人真正須要的優良產品或系統
策略風險
開發的產品再也不符合公司的總體商業策略
銷售風險
開發了一個銷售部們不知道如何去銷售的產品
管理風險
因爲重點的轉移或人員的變更而失去了高級管理層的支持
預算風險
沒有獲得預算或人員的保證
風險識別
風險識別的方法
創建風險條目檢查表
風險識別的類型
產品規模
與要開發或要修改的軟件的整體規模相關的風險
商業影響
與管理者或市場所施加的約束相關的風險
客戶特性
與客戶的素質以及開發者的客戶按期溝通的能力相關的風險
過程定義
與軟件過程定義的程度以及該過程被開發組織遵照的程度相關的風險
開發環境
與用來開發產品的工具的可得性及質量相關的風險
開發技術
與待開發軟件的複雜性及系統所包含技術的「新奇性」相關的風險
人員才幹及經驗
與軟件工程師的整體技術水平及項目經驗相關的風險
網絡安全
主動***和被動***
主動***
包括篡改數據流或僞造數據流,這種***試圖改變系統資源或影響系統運行。
被動***
對信息的保密性進行***,即經過竊聽網絡上傳輸的信息並加以分析從而得到有價值的情報,但它並不修改信息的內容。它的目標是得到正在傳送的信息,其特色是偷聽或監視信息的傳遞。被動***只對信息進行監聽,不對其進行修改。被動***包括信息內容泄露和業務流分析2大類
數據安全與保密
對稱加密技術
加密系統的加密密鑰和解密密鑰相同,或者雖然不一樣,但從其中的任意一個能夠很容易地推導出另外一個。
示例
DES(數據加密標準算法)
DES主要採用替換和移位的方法加密。它用56位(64位密鑰只有56位有效密鑰)密鑰對64位二進制數據塊進行加密,每次加密可對64位的輸入數據進行16輪編碼,經一系列替換和移位後,輸入的64位原始數據轉換成徹底不一樣的64位輸出數據。其優勢是加密速度快,密鑰產生容易。
在這裏插入圖片描述
3DES(TDES)
在DES的基礎上採用三重DES,即用兩個56位的密鑰K一、K2,發送方用K1加密,k2解密,再使用k1加密。接受方則使用k1解密,k2加密,再使用k1解密,其效果至關於將密鑰長度加倍。
在這裏插入圖片描述
在這裏插入圖片描述
IDEA
其明文和密文都是64位,密鑰長度爲128位。它比DES的加密性好,並且對計算機功能要求也沒有那麼高。
RC-5
1994年開發出來的,知道是對稱算法便可。
優勢
加/解密速度快,適合對大量數據加密
適宜一對一的信息加密傳輸
缺點
密鑰難於傳輸
密鑰的數目難於管理
沒法提供信息完整性的鑑別
對稱密鑰的管理和分發工做是一件具備潛在危險和繁瑣的過程
非對稱加密技術
公鑰和私鑰是不同的,公鑰對外開放,私鑰僅限本身知道
示例
RSA
知道是非對稱加密技術便可
ECC
知道是非對稱加密技術便可
優勢
安全性好
缺點
一、加/解密速度慢,只適合對少許數據進行加密
消息摘要
消息摘要算法實際上就是一個單向散列函數。數據塊通過單向散列函數獲得一個固定長度的散列值,***者不可能經過散列值而編造數據塊,使得編造的數據塊的散列值和原數據塊的散列值相同。
例子
MD5
散列值爲128位
SHA
散列值爲160位
安全性比較
因爲SHA一般採用的密鑰長度較長,所以安全性高於MD5。
數字簽名
實現原理
如下題爲例,A想要傳送一段文本給B,則A先利用信息摘要技術產生一段字符串,再利用自身的私鑰對字符串進行加密生成密碼串。將密碼串與明文一同發送給B。B接受後,利用A的公鑰對密碼串進行解密,產生字符串,再對明文進行信息摘要產生字符串,將2個字符串相比較,若是一致,則證實該明文的確來自A且未被修改。
在這裏插入圖片描述
優勢
能夠證實消息來源是否爲本人
保證實文沒有被人篡改過
數字時間戳
屬於數字簽名技術的變種應用。數字時間戳服務(Digtal Time Stamp Service,DTS)是網上電子商務安全服務項目之一,能提供電子文件的日期和時間信息的安全保護。
時間戳是一個經加密後造成的憑證文檔,它包括3個部分:
需加時間戳的文件的摘要
DTS收到文件的日期和時間
DTS的數字簽名
在這裏插入圖片描述
病毒
文件型
感染可執行文件,包括EXE和COM文件
引導型
影響軟盤或硬盤的引導扇區
目錄型
修改硬盤上存儲的全部文件的地址
宏病毒
前綴爲Macro,感染word或者excel文件
數據通訊與網絡基礎
OSI七層模型及相關考點
記憶技巧:All people seem to need data processing.
在這裏插入圖片描述

分層模型 OSI模型
進程/應用層 應用層
  表示層
  會話層
主機-主機層 傳輸層
網絡互聯層 網絡層
網絡接口層 數據鏈路層
  物理層

已知IP地址與掩碼求網絡號與主機號
IP地址A.B.C.D一共4個字段,各個字段各佔1字節,若轉化爲二進制,則一共32位,每一個字段佔8位
A類地址最高位是0,網絡地址佔1字節,主機地址佔3字節
B類地址最高位是10,網絡地址佔2字節,主機地址佔2字節
C類地址最高位是110,網絡地址佔3字節,主機地址佔1字節
D類地址最高位是1110,用於組播,無網絡地址與主機地址
E類地址最高位是1111,實驗保留,無網絡地址與主機地址
在這裏插入圖片描述
子網掩碼的1表明網絡號,0表明主機號
網絡號求法:將IP地址與子網掩碼轉化爲二進制後取與運算後,根據子網掩碼1的位數取字節
如下數據爲例:
IP地址:202.197.119.110
掩碼 :255.255.255.0
IP 地址二進制 :1100 1010.1100 0101.0111 0111.0110 1110
子網掩碼二進制:1111 1111.1111 1111.1111 1111.0000 0000
求得網絡號 :1100 1010.1100 0101.0111 0111(由於子網掩碼有24個1,因此取3個字節)
主機號求法:先將子網掩碼按位取反再與IP地址進行取與運算,根據子網掩碼0的位數取字節
IP 地址二進制 :1100 1010.1100 0101.0111 0111.0110 1110
子網掩碼取反 :0000 0000.0000 0000.0000 0000.1111 1111
主機號 : 0110 1110(由於子網掩碼有8個0,因此取1個字節)
判斷2個IP地址是否在一個網段
分別求出2個IP地址的網絡號,若是相同則說明是同一個網段的IP地址,不然不在同一個網段
可鏈接的主機數
2n-2,n爲主機號位數
例題
一個局域網中某臺主機的IP地址爲176.68.160.12,使用22位做爲網絡地址,那麼該局域網的子網掩碼爲______,最多能夠鏈接的主機數爲_____
子網掩碼的1是網絡位,0是主機位,22位網絡地址表明着子網掩碼有22個1,因此子網掩碼爲11111111.11111111.11111100.00000000,轉化爲十進制則是255.255.252.0。既然網絡位爲22位,則主機位爲32-22=10位,能夠鏈接的主機數爲210-2=1022
端口
默認端口
FTP
從服務器端向客戶端發起鏈接,稱之爲主動模式,默認數據端口是20
從客戶端向服務器端發起鏈接,稱之爲被動模式,默認數據端口是1025-65535
默認控制端口是21
HTTP
默認端口號是80
SMTP
默認端口是25
POP3
默認端口是110
NNTP news
新聞組傳輸協議默認端口是119
Telnet
默認內部端口與外部端口均爲23
端口範圍
公共服務保留端口
0~1023(有時是不算0號端口的)
註冊端口
1024~49151
動態或私有端口
49152~65535
多媒體
計算公式
數據傳輸率
採樣頻率(Hz)×量化位數(bit)×聲道數,單位爲b/s
聲音信號數據量
數據傳輸率×持續時間/8
音頻容量的計算公式
存儲量=採樣時間(s) 採樣頻率(Hz) 量化位數(位) 聲道數/8/1024(kb)
圖片容量的計算公式
存儲量=水平像素
垂直像素
顏色位數/8/1024(kb)
若提示爲X位或X位色,則顏色位數就是X,若提示爲X色,那麼顏色位數爲log_2⁡X。
視頻容量的計算公式
存儲量=每幀圖像容量
圖像幀數
=水平像素垂直像素顏色位數幀頻時間(秒)/8/1024(kb)
PAL 制:25幀/秒
NTSC制:30幀/秒
例題
CD上聲音的採樣頻率爲44.1kHz,樣本精度爲16b/s,雙聲道立體聲,那麼其未經壓縮的數據傳輸率爲_____

1四、A.88.2kb/s B.705.6kb/s C.1411.2kb/s D.1536.0kb/s
數據傳輸率=採樣頻率(Hz)×量化位數(bit)×聲道數=44100162=1411200b/s,選C
冗餘
空間冗餘(幾何冗餘)
多個像素點都是重複的,例如,一幅蔚藍的天空中漂浮着白雲的圖像,其蔚藍的天空及白雲自己都具備較強的相關性,這種相關性的圖像部分,在數據中就表現爲冗餘。

時間冗餘
對於電視動畫類的圖像,在其序列的先後相鄰的2幅圖像中,其圖像呈現較強的相關性,這就反映爲時間冗餘。如某一幀圖像通過T時間後,在某下一幀圖像中帶有較強的相關性(即畫面像素類似)。

知覺冗餘
知覺冗餘指那些處於人們聽覺和視覺分辨力如下的視頻音頻信號,若在編碼時捨去這種在感知界限如下的信號,雖然會使恢復原信號產生必定的失真,但並不能爲人們所感知,爲此,此種超出人們感知能力部分的編碼就稱爲知覺冗餘。例如,通常的視頻圖像採用28的灰度等級,而人們的視覺分辨力僅達26的等級,此差額即爲知覺冗餘。
信息熵冗餘
信息熵是指一組數據所攜帶的信息量,信息的碼符號的信息量大於該信息自己的信息量便是信息熵冗餘。
結構冗餘
有些圖像從大的區域上看存在着很是強的紋理結構,例如,布紋圖像和草蓆圖像在結構上存在冗餘。

知識冗餘
有許多圖像的理解與某些基礎知識有至關大的相關性。例如,人臉的圖像有固定的結構,嘴的上方有鼻子,鼻子的上方有眼睛,鼻子位於正面圖像的中上方等。這類規律性的結構可由先驗知識和背景知識獲得,稱此類冗餘爲知識冗餘。
MPEG標準
MPEG-1
數字電視標準,MP3。
MPEG-2
數字電視標準。
MPEG-4
多媒體應用標準。
MPEG-7
多媒體內容描述接口標準。
MPEG-21
多媒體框架結構標準。
媒體
感受媒體
感受媒體指的是能直接做用於人們的感受器官,從而能令人產生直接感受的媒體。如文字、數據、聲音、圖形、圖像等。
在多媒體計算機技術中,咱們所說的媒體通常指的是感受媒體。
表示媒體
表示媒體指的是爲了傳輸感受媒體而人爲研究出來的媒體,藉助於此種媒體,能有效地存儲感受媒體或將感受媒體從一個地方傳送到另外一個地方。如語言編碼、電報碼、條形碼等。
表現媒體
表現媒體指的是用於通訊中使電信號和感受媒體之間產生轉換用的媒體。如輸入、輸出設備,包括鍵盤、鼠標器、顯示器、打印機等。
存儲媒體
存儲媒體指的是用於存放表示媒體的媒體。如紙張、磁帶、磁盤、光盤等。

傳輸媒體
傳輸媒體指的用於傳輸某種媒體的物理媒體。如雙絞線、電纜、光纖等。
算法設計
迭代法
用於求方程的近似根。
一、若方程無解,則算法求出的近似根序列就不會收斂,迭代過程會變成死循環,所以在使用迭代算法前應先考查方程是否有解,並在程序中對迭代的次數給予限制。
二、方程雖有解,但迭代公式選擇不當,或迭代的初始近似根選擇不合理,也會致使迭代失敗。
窮舉搜索法
對多是解的衆多候選解按某種順序進行逐一枚舉和檢查,並從中找出符合要求的候選解做爲問題的解
遞推法
利用問題自己所具備的一種遞推關係求問題解的一種方法
遞歸法
執行過程分遞推和迴歸兩個階段:在遞推階段,把較複雜的問題的求解分解成比原問題簡單一些的問題的求解。在迴歸階段,從得到的最簡單狀況的解,逐級返回,依次得到稍複雜問題的解。(遞歸法就是把問題轉化爲規模縮小了的同類問題的子問題)
分治法
把大問題分解成一些較小的問題,而後由小問題的解方便地構造出大問題的解,每一個小問題都是相互獨立的。
示例
二分查找法、漢諾塔問題、斐波那契、歸併排序
動態規劃法
基本思想也是將大問題分解爲多個小問題,可是與分治法不一樣的是,動態規劃法的子問題每每不是獨立的。所以,動態規劃法能夠避免大量重複的計算。以自底向上的方式計算出最優值。
示例
最大子段問題
貪心法(貪婪法)
不追求最優解,只但願獲得較爲滿意解的方法。能夠快速獲得滿意的解,不考慮總體狀況,因此貪心法不要回溯。
示例
哈夫曼編碼
回溯法(試探法、通用解題法)
該方法首先暫時放棄關於問題規模大小的限制,並將問題的候選解按某種順序逐一枚舉和檢驗。當發現當前候選解不多是解時,就選擇下一個候選解;假若當前候選鍵除了不知足問題規模要求外,知足全部其餘要求,繼續擴大當前候選解的規模,並繼續試探。若是當前候選解知足包括問題規模在內的全部要求,該候選鍵就是問題的一個解。在回溯法中,放棄當前候選解,尋找下一個候選解的過程被稱爲回溯;擴大當前候選解的規模,以繼續試探的過程稱爲向前試探,回溯法以深度優先的方式搜索解空間樹。
分支限界法
相似於回溯法,也是在問題的解空間樹上搜索問題解的方法。但在通常狀況下,兩者的求解目標不一樣。回溯法是找出解空間樹中知足約束條件的全部解,而分支限界法的求解目標則是找出知足約束條件的一個解,或是在知足約束條件的解中找出使某一目標函數值達到極大或極小的解,即在某種意義下的最優解。分支限界法以廣度優先或以最小耗費優先的方式搜索解空間樹。
示例
單源最短路徑問題
算法複雜度
在這裏插入圖片描述
通常地,當遞歸方程爲T(n) = aT(n/c) + O(n), T(n)的解爲:
O(n) (a<c && c>1)
O(n^log_2⁡n ) (a=c && c>1)
〖O(n〗^log_c⁡a ) (a>c && c>1)
第一問套用第三個公式便可解決,選D。
第二問,算法B比A快,意味着B的時間複雜度比A小。那麼選項中均符合第三個公式的狀況,那麼B的時間複雜度爲〖O(n〗^log_4⁡X ),可求得當X=64時,與A的算法時間複雜度相等,根據題意選C
機率算法
數值機率算法
適用於數值問題的求解,這類算法獲得的每每是近似解,且近似解的精度隨時間的增長不斷提升。在多數狀況下,要計算出問題的精確解是不可能的或是沒有必要的,所以數值機率算法可獲得至關使人滿意的解。
蒙特卡羅算法
適用於求問題的精確解,該算法能求得一個解,但該解未必是正確的,正確的機率依賴算法所用的時間,時間約久,正確率越高。所以,該算法的缺點就是沒法有效地判斷所獲得的解是否正確。
拉斯維加斯算法
若是該算法找到一個解,那必定是正確的解,獲得正確解的機率依賴算法所用的時間。
舍伍德算法
必定能找到一個正確的解,該算法設法消除最壞情形與特定實例之間的關聯性。
類之間的關係
名稱 概念 實(虛)線 三角形(菱形) 實(空)心

名稱 概念 實(虛)線 三角形(菱形) 實(空)心
依賴 有2個元素X,Y,若修改X的定義可能會引發對另外一個元素Y的定義的修改,則稱Y依賴於X 虛線 三角形 實心
泛化 父類是子類的泛化 實線 三角形 空心
關聯(聚合) 表示兩個對象之間是總體和部分的弱關係,部分的生命週期能夠超越總體。如電腦和鼠標。 實線 菱形 空心
關聯(組合) 表示兩個對象之間是總體和部分的強關係,部分的生命週期不能超越總體,或者說不能脫離總體而存在。 實線 菱形 實心
實現 接口和實現藉口的類 虛線 三角形 空心

面向對象設計模式建立型模式簡單工廠模式 (Simple Factory Pattern)工廠方法模式 (Factory Method Pattern)抽象工廠模式 (Abstract Factory Pattern)單例模式 (Singleton Pattern)建造者模式 (Builder Pattern)原型模式 (Prototype Pattern)結構型模式橋接模式 (Bridge Pattern)組合模式 (Composite Pattern)裝飾者模式 (Decorator Pattern)外觀模式 (Facade Pattern)代理模式 (Proxy Pattern)享元模式 (Flyweight Pattern)適配器模式 (Adapter Pattern)行爲型模式模板方法模式 (Template Method Pattern)命令模式 (Command Pattern)迭代器模式 (Iterator Pattern)觀察者模式 (Observer Pattern)解釋器模式 (Interpreter Pattern)中介者模式 (Mediator Pattern)職責鏈模式 (Chain of Responsibility Pattern)備忘錄模式 (Memento Pattern)策略模式 (Strategy Pattern)訪問者模式 (Visitor Pattern)狀態模式 (State Pattern)泛化(概化)表示把幾類對象類的公共屬性和行爲抽象成超類,而後其屬性和方法被那些子類繼承聚合表示一個較大的「總體」類包含一個或多個較小的「部分」類合成表示關係中「總體」負責其「部分」的建立和銷燬,若是「總體」不存在了,「部分」也將不存在。單例保證一個類僅可以生成一個對象組合表示「部分-總體」的層次結構,而且對部分和總體的使用具備一致性裝飾動態地給一個對象增長一些額外的職責,無須改變類的設計和實現

相關文章
相關標籤/搜索