我總結的這些都是每年的考點,必須要記下來的。
1. 計算機系統基礎
1.1 碼
- 符號位0表示正數,符號位1表示負數。
- 補碼:簡化運算部件的設計,最適合進行數字加減運算。
- 移碼:與前幾種不同,1表示+,0表示-。用于浮點運算和表示浮點數階碼。
數據表示如下:
1.2 浮點數
- 定點表示法中小數點不占存儲位。
- 表示方法為N=M×R^E,其中E稱為階碼,M稱為尾數。
數值范圍由階碼E確定,數值精度由尾數M確定 - 運算時候,小階向大階看齊,小階增加幾位,尾數右移幾位。
- 定點小數表示中,只有補碼能表示 -1。
- 當浮點數的尾數用補碼表示時,規格化數的判斷標準是:??數符(符號位)與尾數小數點后第一位數值必須相異??。而階碼與數符和規格化與否無關。
1.3 校驗碼
- 循環冗余校驗碼:模二運算。
- 海明碼:可校驗可糾錯。
- 海明碼計算:2^k>=n+k+1(n為數據位,k為校驗位)
1.4 計算機硬件組成
- 輸入設備和輸出設備合稱為外部設備(外設)。
- 中央處理單元CPU:由運算器、控制器、寄存器組和內部總線組成。
- CPU的主要功能:實現程序控制、操作控制、時間控制、數據處理功能。
- 單核 CPU 和多核CPU都支持多任務操作系統。
1.5 運算器
算術邏輯單元(ALU):負責處理數據,實現對數據的算數運算和邏輯運算。
累加寄存器(AC):運算器執行運算時,暫存計算結果數據。
數據緩沖寄存器(DR):對內存儲器進行讀寫操作時,數據中轉站(注意和AC區別)。
1.6 控制器
程序計數器(PC):存儲下一條要執行指令的地址。
指令寄存器(IR):用來存放當前正在執行的指令。
地址寄存器(AR):用來保存當前CPU所訪問的內存單元的地址。
注意:
- 程序員可見:通用寄存器(ALU、AC、DR、PSW)、程序計數器(PC)
- 程序員不可見:指令寄存器(IR)、存儲器數據寄存器(MDR)、存儲器地址寄存器(MAR)、ID、地址寄存器、時序部件。
1.7 Cache(高速緩存)
- 內容是主存內存的副本拷貝,對于程序員來說是透明的。
- 緩和CPU與主存之間的速度矛盾。
- 地址映射:Cache與主存的映射有專門硬件自動實現。
- 映射分為:全相聯映射(空間利用充分,命中率高,查找慢);直接映射(速度最快,空間利用不充分,命中率低);組相聯映射。
- Cache命中率:隨著Cache容量增加,命中率也會增加,但效率降低了。
- 平均存取時間=h×T+(1-h)×t
- 訪問效率=Cache存取時間/平均存取時間。
1.8 存儲器的分類
- 分類:
DRAM(動態隨機存儲器):是主存的主要構成。特點是:只能將數據保持很短的時間。為了保持數據,DRAM使用電容存儲,所以必須隔一段時間刷新一次,如果存儲單元沒有被刷新,存儲的信息就會丟失。
SRAM(靜態隨機存儲器):用來作為高速緩存存儲器(Cache)。特點是:不需要刷新電路即能保存它內部存儲的數據。因此SRAM具有較高的性能,但是集成度較低,相同容量的DRAM內存可以設計為較小的體積,但是SRAM卻需要很大的體積,且功耗較大。 - 虛擬存儲器:由主存和輔存構成。
- 幾種常見存儲器
- 隨機存儲器:可以按地址訪問存儲器的任一單元。
- 順序存儲器:訪問時按順序查找目標地址,它訪問數據所需時間與數據存儲位置相關。
- 直接存儲器:按照數據塊所在位置訪問。
- 相聯存儲器:按內容訪問的存儲器。
- 磁盤是一種直接存儲器。
1.9 輸入/輸出技術
CPU與外設之間的數據傳送方式
在計算機中,I/O系統可以有5種不同的工作方式,分別是程序控制方式、程序中斷方式、DMA工作方式、通道方式、I/O處理機。
-
程序控制方式
分為無條件查詢和程序查詢方式。- 無條件傳送方式
I/O端口總是準備好接受主機的輸出數據,或是總是準備好向主機輸入數據,而cpu在需要時,隨時直接利用I/O指令訪問相應的I/O端口,實現與外設的數據交換。優點是軟、硬件結構簡單,缺點是對時序要求高,只適用于簡單的I/O控制。 - 程序查詢方式(需要CPU,順序工作)
程序查詢方式也稱為程序輪詢方式,該方式采用用戶程序直接控制主機與外部設備之間輸入/輸出操作。CPU必須不停地循環測試I/O設備的狀態端口,當發現設備處于準備好(Ready)狀態時,CPU就可以與I/O設備進行數據存取操作。這種方式下的CPU與I/O設備是串行工作的。
- 無條件傳送方式
-
中斷方式(需要CPU,并行工作)
當I/O接口準備好就接收數據或向CPU傳送數據就會發出中斷信號通知CPU。(CPU無需等待,提高利用率)- 為了方便實現多級中斷鑲套,使用堆棧來保護最有效。
- 中斷向量:提供中斷服務程序的入口地址。
- 中斷響應時間:發出中斷請求開始到進入中斷服務程序。
- 保存現場:返回來執行源程序。
-
DMA方式(工作不需要CPU)
DMA方式(直接主存存取方式),其思想是:允許主存儲器和I/O設備之間通過“DMA控制器(DMAC)”直接進行批量數據交換,除了在數據傳輸開始和結束時,整個過程無須CPU的干預,并行工作,完全由硬件完成交換數據。 -
通道控制方式
在一定的硬件基礎上利用軟件手段實現對I/O的控制和傳送,更多地免去了cpu的接入,使主機和外設并行工作程度更高。 -
I/O處理機
指專門負責輸入/輸出的處理機。可以有獨立的存儲器、運算部件和指令控制部件。
DMA
DMA控制器在需要的時候代替CPU作為總線主設備,在不受CPU干預的情況下,控制I/O設備與系統主存之間的直接數據傳輸。DMA操作占用的資源是系統總線,CPU是在一個總線周期結束時響應DMA請求的。
零碎知識點
- 計算機類與鼠標類的關系是聚合關系。
- CPU利用較高的主頻、高速緩存(Cache)和通用函數庫等技術來執行指令 。
- GPU使用SIMD/SIMT架構,MISD純粹是一種理論模型,并沒有實際意義
1.10 總線結構
- 總線結構:一組能為多個部件分時共享的公共信息傳送線路。
- 三總線結構:數據總線、地址總線、控制總線。
- 時鐘周期=1/時鐘頻率。
- 最短傳輸周期=n×時鐘周期。
- 總線最大數據傳輸率(總線帶寬)=(總線寬度/8)/最短傳輸周期
- CPU查詢數據: CPU在內存里尋找數據時,先通過地址線找到地址,再通過數據線將數據取出來。
- 計算機在執行指令的過程中,需要直接尋址,首先要將內存單元所在地址的值送到地址總線上。
- 指令周期>CPU周期>時鐘周期(計算機操作的最小單元時間)。
1.11 尋址方式
- 立即尋址方式:操作數就包含在指令中(直接給出操作數本身)
- 直接尋址方式:操作數存放在內存單元中(直接給出操作數所在內存的地址)
- 寄存器尋址方式:操作數存放在某一寄存器中(指令中給出存放操作數的寄存器地址)
- 間接尋址方式:指令中給出的是操作數地址的地址。
- 寄存器間接尋址:操作是存放在內存單元中,操作數所在存儲單元的地址在某一寄存器中。
- 隱含尋址:不是明顯的給出操作數地址,而是在指令中隱含著地址。
- 獲取操作數的速度:立即尋址>寄存器尋址>直接尋址>寄存器間接尋址>間接尋址。
Flynn分類
Flynn的分類依據是指令流和數據流。
1.12 CISC和RISC
1.13 指令的流水線處理
- 流水周期(△t)為執行時間最長的一段(△t)
- 流水執行時間
理論:1條指令的執行時間+(指令數-1)×流水周期(公式=(t1+t2+t3…+tn)+(n-1)×△t)
實踐:(公式=(k+n-1)×△t,k為工序數) - 流水吞吐率(tp)=指令條數 / 指令流水時間
- 流水最大吞吐率=1 / 流水時間
- 流水加速比=不使用流水執行時間 / 使用流水線的執行時間
2. 操作系統
2.1 線程與進程
- 進程狀態
①阻塞:進程因發生某件事而暫停執行
②就緒:進程具備運行條件,但尚未運行
③運行:進程在處理機上運行
④創建:為新進程創建PCB,并填寫必要信息,并把進程插入到就緒隊列中
⑤終止:資源釋放回收。
- 線程:進程的輕型實體,是一系列指令的集合。(提高OS的并發性)(OS運算調度的最小單位)。
- 共享進程資源:線程基本不擁有自己的資源,只擁有運行中必不可少的資源(如:PC、寄存器、棧,但可共享進程全部資源)。
- 調度方式:
可剝奪式調度:立即暫停當前進程,分配處理機給高優先級進程(原則:優先權、短進程優先、時間片原則)
不可剝奪式調度:必須等待進程運行完方可釋放占用CPU(缺點:適用于批處理系統,不適用分時/實時系統)。 - 臨界資源不能采用時間片輪轉分配算法。
2.2 分區存儲管理
- 固定分區:(一種靜態分區方式)在系統生成時已將主存劃分成若干個分區,每個分區的大小可不等;(OS通過主存分配情況表管理主存)。
- 可變分區:(一種動態分區方式)存儲空間的劃分是在作業裝入時進行的,故分區的個數可變,分區的大小剛好等于作業的大小。(OS通過已分配表、未分配表管理主存)。
2.3 分頁存儲管理
- 高級程序語言使用邏輯地址,運行狀態內存使用物理地址。
- 地址結構:(組成:頁號+頁內地址(頁內偏移量)=偏移量)。
- 快表是將頁表存于Cache中;慢表是將頁表存于內存上。
2.4 虛擬存儲管理
- 虛擬存儲器的實現(特性:離散性、多次性、對換性、虛擬性)。
- 虛擬存儲器利用了局部性原理。
- 在虛擬存儲器中,頁面如果很小,虛擬存儲器中包含的頁面個數就會過多,使得頁表的體積過大,頁表本身占據的存儲空間過大,操作速度將變慢。
- 當頁面很大時,虛擬存儲器中的頁面個數會變少,另外,主存的容量比虛擬存儲器的容量更少,主存中的頁面個數就會更少,缺頁率自然很大,就會不斷的調入/調出頁面,降低操作速度。
- 段式虛擬存儲器是按照程序的邏輯性來設計的,具有易于實現程序的編譯、管理和保護,也便于多到程序共享的優點。
2.5 設備管理
- I/O設備管理軟件一般分為4層(由下至上):中斷處理程序、設備驅動程序、設備無關系統軟件、用戶級軟件。
- Spooling技術: 緩和CPU高速性與I/O設備低速性的矛盾。
2.6 嵌入式操作系統
嵌入式系統:自底向上由三個主要環節組成(片級初始化—板級初始化—系統級初始化)
片級初始化:完成嵌入式微機處理器的初始化
板級初始化:完成嵌入式微機處理器以外的其他硬件設備初始化
系統級初始化:以軟件初始化為主,主要進行操作系統的初始化。
2.7 零碎知識點
- 在UNIX操作系統中,把輸入/輸出設備看作是特殊文件。在UNIX系統中包括兩類設備:塊設備和字符設備。
- 傳統機器級的機器語言是該機的指令集,程序員用機器指令編寫的程序可以由微程序進行解釋。
3. 數據庫技術
3.1 數據庫設計
分為四個階段:
- 用戶需求分析:收集用戶需求,確定系統邊界。(產物包括:數據流圖、數據字典、需求說明)。
- 概念設計:設計E-R圖(實體-屬性圖)。(存在屬性沖突、命名沖突、結構沖突)。
- 邏輯設計:將E-R轉換成關系模式。(需要考慮:關系規范化,確定完整性約束)。
- 物理設計:根據生成的表等概念,生成物理數據庫。
3.2 三級模式結構
三級模式分為:
- 外模式(也稱用戶模式或子模式):對應→視圖
- 概念模式(也稱模式):對應→基本表
- 內模式(也稱存儲模式):對應→存儲文件。(索引→物理層(對應內模式)看到索引就選物理層/內模式即可)。
兩級映射分為:
- 模式/內模式映像:實現概念模式到內模式之間的相互轉換(物理獨立性)
- 外模式/模式映像:實現了外模式到概念模式之間的相互轉換(邏輯獨立性)(創建視圖構建的是外模式和外模式/模式之間的映射)。
3.3 數據模型三要素
- 數據結構:是所研究的對象類型的集合(系統靜態特性)。
- 數據操作:是對數據庫中各種對象(型)的實例(值)允許執行的操作集合(系統動態特性)。
- 數據的約束條件:是一組完整性規則的集合。
3.4 關系代數運算
- 自然連接:特殊的等值連接,相同屬性對應的值必須相同才能進行連接。(去除重復列)
3.5 數據庫SQL語句
- 索引的創建和刪除(采用三級模式的數據庫系統中如果對一個表創建聚簇索引,那么改變的是數據庫的內模式)。
- 視圖的創建刪除和修改(WITH CHECK OPTION )。
- 視圖是從一個表或多個表或視圖中導出的,是一個虛擬表。
- WITH CHECK OPTION 表示對 UPDATE、INSERT、DELETE 操作時要保證更新、插入或刪除的行滿足視圖定義中的謂詞條件。
- 授予、撤銷權限的操作——[WITH GRANT OPTION]。
3.6 函數依賴
- 部分函數依賴:A可確定C, (A,B)也可以確定C,(A,B)中的一部分(即A)可以確定C,稱為部分函數依賴。
- 完全函數依賴:在R(U)中,如果X→Y,并且對于X的任何一個真子集X’,都有X’不能決定Y,則稱Y對X完全函數依賴。
- 傳遞函數依賴:當A和B不等價時, A可確定B,B可確定C,則A可確定C,是傳遞函數依賴。
3.7 函數依賴公理
- 傳遞律:如果X→Y且Y→Z,則X→Z成立。
- 合并規則:{X→Y,X→Z}X → YZ 。
- 分解規則:如果X→Y且Z?Y,則X→Z成立。
- 偽傳遞規則:{X→Y,WY→Z}XW→Z 。
3.8 范式
-
第一范式(1NF)
存在數據冗余、修改異常、插入異常、刪除異常(部分函數依賴造成的)。
進行模式分解,消除非主屬性的部分函數依賴的問題,就會變成第二范式。 -
第二范式(2NF)
雖然不存在部分函數依賴,但仍存在傳遞依賴。
進行模式分解,消除非主屬性的傳遞依賴的問題,就會變成第三范式。 -
第三范式(3NF)
仍存在主屬性的部分函數依賴和傳遞依賴。
進行模式分解,消除主屬性的傳遞依賴的問題,就會變成BCNF。 -
巴克斯范式(BCNF)
完全消除了插入、修改、刪除的異常。
BCNF不是第四范式 。
3.9 模式分解
- 分解具有無損連接性【如果R的分解為p={R1,R2},R1∩R2->(R1-R2)或者R1∩R2->(R2-R1)】。
- 分解要保持函數依賴。
- 分解既要無損連接性,又要保持函數依賴。
3.10 事務管理與并發控制
- 排它鎖(X):若事務T對A加上X鎖,則只允許T讀取和修改A,其他事務都不能再對A加任何類型的鎖,直達T釋放A上的鎖。
- 共享鎖(S):若事務T對A加上S鎖,則只允許T讀取A,但不能修改A,其他事務只能在對A加S鎖,直到T釋放A上的S鎖。
3.11 數據庫的備份與恢復
日志文件:進入事務處理先寫入日志文件,當系統正常運行時,將緩沖區內容寫入數據文件。
3.12 關系模式
- 由數據結構、關系操作集合、關系完整性約束三部分組成。
- 用二維表結構表示實體。
3.13 透明性
- 分片透明性:用戶或應用程序不需要知道邏輯上訪問的表具體是如何分塊存儲的。
- 位置透明性:應用程序不關心數據存儲物理位置的改變。
- 邏輯透明性:用戶或應用程序無需知道局部使用的是哪種數據模型。
- 復制透明性:用戶或應用程序不關心復制的數據從何而來。
3.14 分布數據庫
- 共線性:存儲在不同節點的數據共享。
- 自治性:每個結點對本地數據能獨立管理。
- 可用性:某一場地故障時,可以用其他場地副本從而不至于癱瘓。
- 分布性:數據在不同場地上的存儲。
3.15 存儲過程
存儲過程:供第三方開發人員調用進行數據更新,從而保證數據庫的關系模式不會被第三方獲取(數據安全)。
4. 計算機網絡
1. OSI七層協議參考模型
記憶諧音:物聯網傳話試用。
2. TCP/IP協議簇
基于TCP(可靠傳輸):POP3(郵件接收110),FTP(傳輸20,控制21),HTTP,Telnet(遠程登錄),SMTP(郵件發送25)。
基于UDP(不可靠傳輸):DHCP(動態主機配置),TFTP,SNMP,DNS(域名解析53)。
物理層(比特):中繼器,集線器。
數據鏈路層(幀):網橋,交換機。
網絡層(IP分組):路由器。
應用層(報文段):網關。
3. URL格式
域名 = 主機名.組名.最高層域名(https://www.csdn.net)
4. 沖突域和廣播域
一個VLAN就是一個廣播域,VLAN之間的通信是通過第3層的路由器來完成的。
路由器可以阻斷廣播域和沖突域,交換機只能阻斷沖突域。
5. 信息安全和網絡安全
5.1 安全協議的用途
5.2 防火墻技術
作用:包過濾,代理網關,狀態監測,入侵檢測。
在出口防火墻設置ACL防止外部未授權用戶登錄。
5.3 網絡攻擊
- 為了防止電子郵件中的惡意代碼,應該用純文本方式閱讀電子郵件。
5.4 加密技術
非對稱加密(針對于接收方):公鑰(接收方)加密,私鑰(接收方用自己的)解密。
數字簽名(針對于發送方):私鑰(發送方)簽名,公鑰(發送方的)驗證。
對稱加密算法:DES,AES,RC-5、RC-4,IDEA,(注意:MD5和SHA-1是哈希算法,不是加密算法)。
非對稱加密算法:RSA,ECC,DSA。
數字簽名算法:RSA、DSA。
5.5 信息的安全特性
- 數據的機密性(保密性):是指數據在傳輸過程中不能被非授權者偷看;
- 數據的完整性:是指數據在傳輸過程中不能被非法篡改;
- 數據的真實性(不可抵賴性):是指信息的發送者身份的確認或系統中有關主體的身份確認,這樣可以保證信息的可信度;
- 可用性:指的是發送者和接受者雙方的通信方式正常。
5.6 零碎知識點
- 計算機獲取模擬視頻信息的過程中首先要進行A/D變換 。視頻數字化的目的是將模擬信號經A/D轉換和彩色空間變換等過程,轉換成計算機可以顯示和處理的數字信號。
- MP3就是使用MPEG-1 Audio Layer 3的聲音編碼。
- 在YUV彩色空間中對YUV分量進行數字化,對應的數字化位數通常采用Y:U:V=8:4:4 。
- 異地數據備份可以保證數據的可靠性,數據加密只能增強數據的安全性。