1 計算機系統概述
計算機系統 (Computer System) 是指用于數據管理的計算機硬件、軟件及網絡組成的系統。
計算機系統可劃分為硬件(子系統)和軟件(子系統)兩部分。硬件由機械、電子元器件、磁介質和光介質等物理實體構成,例如處理器(含運算單元和控制單元)、存儲器、輸入設備和輸出設備等。軟件是一系列按照特定順序組織的數據和指令,并控制硬件完成指定的功能。
2 計算機硬件
2.1 計算機硬件組成
計算機組成結構 (Computer Architecture) 源于馮·諾依曼計算機結構,該結構成為現代計算機系統發展的基礎。馮·諾依曼計算機結構將計算機硬件劃分為5部分。
但在現實的硬件構成中,控制單元和運算單元被集成為一體,封裝為通常意義上的處理器(但處理器并不是只有上述兩部分);輸入設備和輸出設備則經常被設計者集成為一體,按照傳輸過程被劃分為總線、接口和外部設備。
下面按照處理器、存儲器、總線、接口和外部設備進行闡述。
2.2 處理器
處理器 (Central Processing Unit,CPU) 是計算機系統運算和控制的核心部件。
處理器的指令集按照其復雜程度可分為復雜指令集 (Complex Instruction Set Computers,CISC) 與精簡指令集 (Reduced Instruction Set Computers,RISC) 兩類。 CISC 以 Intel、AMD 的 x86 CPU 為代表, RISC 以 ARM 和 Power 為代表。隨著研究的深入,除了由于歷史原因而仍然存在的 CISC 結構外, RISC 已經成為計算機指令集發展的趨勢,幾乎所有后期出現的指令集均為 RISC 架構。
隨著微電子技術發展,用于專用目的處理器芯片不斷涌現,常見的有圖形處理器 (Graphics Processing Unit,GPU) 處理器、信號處理器 (Digital Signal Processor,DSP) 以及現場可編程邏輯門陣列 (Field Programmable Gate Array,FPGA) 等。
2.3 存儲器
根據存儲器的硬件結構可分為 SRAM、DRAM、NVRAM、Flash、EPROM、Disk 等。
- 本質
用半導體、磁、光等介質做成的數據存儲電子設備。 - 分層體系(離 CPU 由近到遠)
- 片上緩存(L0/L1)
? 集成在 CPU 核內,SRAM,16 kB–512 kB,最快。 - 片外緩存(L2/L3/Platform Cache)
? CPU 核外,SRAM,256 kB–4 MB,經總線訪問。 - 主存(內存)
? DRAM,獨立芯片,百MB – 數十GB,需不斷刷新。 - 外存
? 磁盤、光盤、磁帶、Flash 等,容量大、速度慢,掉電不丟。
? 數據壽命:Flash≈10 年,光盤數年-數十年,磁盤 >10 年,磁帶 >30 年。
- 片上緩存(L0/L1)
2.4 總線
- 定義:計算機部件按協議交換數據的通路。
- 層級
– 內總線(片上總線):芯片內部互聯。
– 系統總線:狹義指 CPU-主存-橋;廣義含局部總線(Local Bus)。
– 外部總線(通信總線):計算機與外部設備/系統之間的總線。 - 橋(Bridge):完成不同總線協議轉換。
- 性能指標:總線帶寬、總線質量 QoS、總線時延、總線抖動。
- 常見總線
– 并行:PCI、PCIe、ATA(IDE)
– 串行:USB、SATA、CAN、RS-232/485、RapidIO、以太網
– 專業:ARINC429/659/664、MIL-STD-1553B、IEEE-1394、VME 等。
2.5 接口
- 定義:同一計算機不同功能層之間的通信規則。
- 常見接口
– 顯示:HDMI、DVI、DP
– 音頻:TRS、RCA、XLR
– 網絡:RJ45、FC
– 其它:USB、SATA、PS/2、RS-232、LPT、離散量、A/D 等。 - 特點:一種總線可對應多種物理接口(例:以太網→RJ-45/同軸; PCle 總線則具有多種形態的接口實現連接)。
2.6 外部設備(外圍設備)
- 定義:計算機非必要但常見的擴展設備,通過接口連接。
- 典型示例
– 通用:鍵盤、鼠標、顯示器、掃描儀、攝像頭、麥克風、打印機、光驅、網卡、U 盤/存儲卡。
– 移動/穿戴:加速計、GPS、陀螺儀、感光、指紋識別。
– 專業領域:測溫儀、測速儀、機械臂、液壓裝置、油門/駕駛桿等。
3 計算機軟件
計算機軟件是指計算機系統中的程序及其文檔,是計算任務的處理對象和處理規則的描述。任何以計算機為處理工具的任務都是計算任務。處理對象是數據(如數字、文字、圖形、圖像和聲音等,他們只是表示,而無含義)或信息(數據及有關的含義)。處理規則一般指處理的動作和步驟,文檔是為了便于了解程序所需的闡述性資料。
3.1 計算機軟件概述
軟件系統是指在計算機硬件系統上運行的程序、相關的文檔資料和數據的集合。計算機軟件用來擴充計算機系統的功能,提高計算機系統的效率。按照軟件所起的作用和需要的運行環境的不同,通常將計算機軟件分為系統軟件和應用軟件兩大類。
系統軟件是為整個計算機系統配置的不依賴特定應用領域的通用軟件。這些軟件對計算機系統的硬件和軟件資源進行控制和管理,并為用戶使用和其他應用軟件的運行提供服務。也就是說,只有在系統軟件的作用下,計算機硬件才能協調工作,應用軟件才能運行。根據系統軟件功能的不同,可將其劃分為:操作系統、程序設計語言翻譯系統、數據庫管理系統和網絡軟件等。
應用軟件是指為某類應用需要或解決某個特定問題而設計的軟件,如圖形圖像處理軟件、財務軟件、游戲軟件和各種軟件包等。在企事業單位或機構中,應用軟件發揮著巨大的作用,承擔了許多計算任務,如人事管理、財務管理和圖書管理等。按照應用軟件使用面的不同,可進一步把應用軟件分為專用的應用軟件和通用的應用軟件兩類。
3.2 操作系統
3.2.1 操作系統的組成
操作系統是一種大型、復雜的軟件產品,它們通常由操作系統內核 (Kernel) 和其他許多附加的配套軟件所組成,包括圖形用戶界面程序、常用的應用程序(如日歷、計算器、資源管理器和網絡瀏覽器等)、實用程序(任務管理器、磁盤清理程序、殺毒軟件和防火墻等)以及為支持應用軟件開發和運行的各種軟件構件(如應用框架、編譯器和程序庫等)。
操作系統內核對硬件設備進行了抽象,為應用軟件提供了一套簡潔、統一的接口(稱為系統調用接口或應用程序接口 API)。
操作系統內核指的是能提供進程管理(任務管理)、存儲管理、文件管理和設備管理等功能的那些軟件模塊,它們是操作系統中最基本的部分。 內核通常都駐留在內存中,它以 CPU 的最高優先級運行,能執行指令系統中的特權指令,具有直接訪問各種外設和全部主存空間的特權,負責對系統資源進行管理和分配。
3.2.2 操作系統的作用
操作系統主要有以下 3 個方面的重要作用。
(1)管理計算機中運行的程序和分配各種軟硬件資源。計算機中一般總有多個程序在運行,這些程序在運行時都可能要求使用系統中的資源(如訪問硬盤,在屏幕上顯示信息等),此時操作系統就承擔著資源的調度和分配任務,以避免沖突,保證程序正常有序地運行。操作系統的資源管理功能主要包括處理器管理、存儲管理、文件管理、 I/O 設備管理等幾個方面。
(2)為用戶提供友善的人機界面。人機界面的任務是實現用戶與計算機之間的通信(對話)。幾乎所有操作系統都向用戶提供圖形用戶界面 (GUI), 它通過多個窗口分別顯示正在運行的各個程序的狀態,采用圖標 (Icon) 來形象地表示系統中的文件、程序和設備等對象,用戶借助單擊“菜單”的方法來選擇要求系統執行的命令或輸入某個參數,利用鼠標器或觸摸屏控制屏幕光標的移動,并通過單擊操作以啟動某個操作命令的執行,甚至還可以采用拖放方式執行所需要的操作。這些措施使用戶能夠比較直觀、靈活、有效地使用計算機。
(3)為應用程序的開發和運行提供一個高效率的平臺。安裝了操作系統之后,實際上呈現在應用程序和用戶面前的是一臺“虛擬計算機”。操作系統屏蔽了幾乎所有物理設備的技術細節,它以規范、高效的方式(例如系統調用、庫函數等)向應用程序提供了有力的支持,從而為開發和運行其他系統軟件及各種應用軟件提供了一個平臺。
除了上述 3 個方面的作用之外,操作系統還具有輔導用戶操作(幫助功能)、處理軟硬件錯誤、監控系統性能、保護系統安全等許多作用。總之,有了操作系統,計算機才能成為一個高效、可靠、通用的數據處理系統。
3.2.3 操作系統的特征
- 并發性
- 表示:在一段時間內宏觀上多個程序同時運行,但在單 CPU 環境中微觀上只有一個程序在執行;多 CPU 環境中可將程序分配到不同 CPU 實現并行。
- 共享性
- 表示:系統資源(硬件、信息)可被多個并發進程(線程)共同使用,而非獨占。
- 方式:
- 同時共享
- 互斥共享
- 虛擬性
- 表示:把物理上的一個實體變成邏輯上的多個對應物,或把物理上的多個實體變成邏輯上的一個對應物。
- 目的:提供易于使用且高效的操作環境。
- 不確定性
- 表示:進程執行“走走停停”,何時執行、何時暫停、推進速度及總執行時間均不可預知,導致程序執行結果可能不唯一。
3.2.4 操作系統的分類
3.2.4.1 批處理操作系統
- 單道批處理
- 表示:一次只有一個作業裝入內存執行,作業結束后自動調入同批下一作業,減少人工干預。
- 多道批處理
- 表示:多個作業裝入內存,當某作業因 I/O 等待時讓出 CPU,宏觀并行、微觀串行。
3.2.4.2 分時操作系統
表示:CPU 時間被劃分為極短的時間片,輪流為多個終端用戶服務,具備多路性、獨立性、交互性、及時性。
3.2.4.3 實時操作系統
- 實時控制系統
- 表示:用于生產過程自動控制,如武器控制、導彈制導等。
- 實時信息處理系統
- 表示:用于實時信息處理,如飛機訂票、情報檢索等。
3.2.4.4 網絡操作系統
表示:提供網絡通信、共享資源管理、電子郵件、文件傳輸、打印共享、網絡安全、目錄服務等功能;具有硬件獨立性、多用戶支持、多種客戶端支持。
3.2.4.5 分布式操作系統
表示:由多臺無主從之分的計算機組成,可動態分配資源、任務劃分與協調,提供統一界面;具備網絡操作系統的全部功能,并增加透明性、可靠性與高性能。
3.2.4.6 微型計算機操作系統
表示:運行于個人計算機,常見有 Windows、Mac OS、Linux。
3.2.4.7 嵌入式操作系統
- 微型化:占用資源少、代碼量小。
- 可定制:能在不同微處理器平臺配置結構與功能。
- 實時性:滿足過程控制、數據采集等快速響應需求。
- 可靠性:提供容錯與防故障措施。
- 易移植性:采用 HAL 與 BSP 技術。
常見系統:VxWorks、μClinux、PalmOS、Windows CE、μC/OS-III、eCos 等。
3.3 數據庫
3.3.1 數據庫類型總覽
- 表示:關系型數據庫 & 非關系型數據庫。
- 細化:按存儲體系再分為
- 關系型數據庫
- 鍵值 Key-Value 數據庫
- 列存儲數據庫
- 文檔數據庫
- 搜索引擎數據庫
3.3.2 關系型數據庫
3.3.2.1 基本概念
- 表示:把復雜數據結構歸結為二元關系(二維表)。
- 特點:較小冗余、較高數據獨立性、易擴展、可共享。
3.3.2.2 數據模型
- 數據結構:二維表(關系)。
- 數據操作:選擇、投影、連接、增刪改查。
- 完整性約束:實體完整性、參照完整性、用戶定義完整性。
3.3.2.3 關系實例
- 學生(學號,姓名,年齡,系別)
- 課程(課程號,課程名,學分)
- 選課(學號,課程號,分數)
3.3.2.4 設計方法
- 設計階段
- 需求分析
- 概念結構設計(E-R 模型)
- 邏輯結構設計(關系模式、規范化)
- 物理結構設計(存儲結構、索引、存取路徑)
- 設計技術
- 基于 3 NF 的方法
- 基于 E-R 模型的方法
- 基于視圖概念的方法
- 面向對象的關系庫設計方法
- 計算機輔助設計工具(CASE)
3.3.2.5 運行維護
- 轉儲與恢復
- 安全性、完整性控制
- 性能監督與調優
- 重組與重構
3.3.3 分布式數據庫
- 定義
- 表示:地理分散,邏輯相關,場地透明+自治。
- 特點
- 集中控制性
- 數據獨立性
- 冗余可控性
- 場地自治性
- 存取有效性
- 體系結構
- 四層模式
- 全局外層(全局外模式)
- 全局概念層(全局概念模式、分片/分配模式)
- 局部概念層(局部概念模式)
- 局部內層(局部內模式、局部數據庫)
- 映射:層間映射保證同構/異構兼容。
- 典型應用
- 分布式計算
- Internet 應用
- 數據倉庫
- 數據復制
- 全球聯網查詢
- 例:Sybase Replication Server
3.3.4 常用數據庫管理系統
- MySQL
- 輕量級關系型,開源,被 Oracle 收購。
- Oracle
- 大型關系型,支持對象擴展,組件:
- 數據庫服務器
- 開發工具
- 連接產品
- 工具:Export、Import、PL/SQL
- 大型關系型,支持對象擴展,組件:
- IBM DB2
- 分布式關系型,支持跨數據庫、跨 DBMS 查詢。
- Sybase
- 產品:
- Adaptive Server Enterprise
- EAServer
- PowerDesigner
- PowerBuilder
- 產品:
- Microsoft SQL Server
- 多平臺關系型,特點:
- 高度安全性
- 靈活備份/恢復、設備鏡像
- 操作系統級容錯
- 數據完整性手段豐富
- 分布式處理功能
- 多平臺關系型,特點:
3.3.5 大型數據庫管理系統的特點
- 網絡環境支持
可用于 C/S 結構與 B/S 結構的數據庫應用系統。 - 大規模并發與容量
支持數千并發用戶、上百萬事務、數百 GB 以上數據容量。 - 并發控制
自動鎖功能,保證并發用戶安全高效訪問數據。 - 安全性
系統級高度安全性保障。 - 備份與恢復
- 靈活的數據備份與恢復方法
- 設備鏡像功能
- 利用操作系統容錯,最大限度恢復意外損壞數據
- 數據完整性
提供多種手段維護數據完整性。 - 分布式處理
內建方便易用的分布式處理功能。
3.4 文件系統
- 文件與文件系統
- 文件定義:具有符號名的、邏輯上完整的一組相關信息項集合。
- 文件組成:
- 文件體:真實內容。
- 文件說明:操作系統用于管理的信息(文件名、類型、長度、權限、時間戳等)。
- 文件系統:實現文件統一管理的一組軟件及相關數據,提供按名存取、統一接口、并發控制、安全性、性能優化、差錯恢復等功能。
- 文件類型
- 按性質和用途:系統文件、庫文件、用戶文件。
- 按保存期限:臨時文件、檔案文件、永久文件。
- 按保護方式:只讀文件、讀/寫文件、可執行文件、不保護文件。
- 按 UNIX 分類:普通文件、目錄文件、設備文件(特殊文件)。
- 文件的結構與組織
- 邏輯結構(用戶視角):
- 記錄式文件:有結構,記錄長度可為定長或變長。
- 流式文件:無結構,字節流,可順序或隨機訪問。
- 物理結構(實現視角):
- 連續結構:邏輯上連續的信息存放在物理上連續的塊中。
- 鏈接結構:信息存放在不連續的塊中,通過指針鏈接。
- 索引結構:為每個文件建立索引表,記錄邏輯塊號到物理塊號的映射。
- 多重索引:大文件采用多級索引,如 UNIX 的 inode 結構。
- 文件存取方法
- 順序存取:依次讀寫。
- 隨機存取:按任意次序直接讀寫。
- 存儲空間管理
- 空閑區表:記錄連續空閑區(序號、起始塊號、塊數、狀態)。
- 位示圖:用位圖表示塊狀態(0 空閑,1 占用)。
- 空閑塊鏈:空閑塊通過指針形成鏈表。
- 成組鏈接法(UNIX):空閑塊按組管理,每組首塊記錄下一組信息。
- 文件共享與保護
- 共享方式:
- 硬鏈接:多個目錄項指向同一索引節點。
- 符號鏈接:新文件存儲原文件路徑名,可跨文件系統。
- 保護機制:
- 存取控制矩陣:二維矩陣表示用戶-文件權限。
- 存取控制表:按用戶類別(文件主、同組、其他)設置權限。
- 用戶權限表:以用戶為單位集中管理可訪問文件及權限。
- 密碼:文件加密,需密碼才能訪問。
3.5 網絡協議
- 基本概念
- 協議定義:計算機網絡中通信雙方必須共同遵守的“規則”或“約定”,用于保證數據正確、有序地發送與接收。
- 協議三要素:語法(數據格式)、語義(控制信息含義)、同步(通信時序)。
- 主要分類
- 局域網協議 LAN
- 廣域網協議 WAN
- 無線網協議 WLAN
- 移動網協議(如 5G)
- 互聯網核心協議簇:TCP/IP
3.6 中間件
2.3.6 中間件
- 定義
- 位于操作系統與應用軟件之間的系統軟件,向上為應用提供統一、標準的接口,向下屏蔽硬件與操作系統差異,實現跨平臺、分布式應用的開發與運行。
- 核心作用
- 承上啟下:使應用開發與具體硬件、操作系統解耦。
- 復用與擴展:提供通用服務(通信、事務、數據、安全等),減少重復開發。
- 提高可靠性與性能:通過負載均衡、容錯、緩存、事務控制等機制。
- 常見分類
- 通信處理(消息)中間件:MQSeries、TongLINK、Kafka。
- 事務處理(交易)中間件:Tuxedo、WebLogic JTA。
- 數據存取管理中間件:該中間件將為在網絡上虛擬緩沖存取、格式轉換、解壓等帶來方便。
- Web 服務器中間件:Tomcat、Jetty、IIS。
- 安全中間件:PKI、SSL/TLS 庫、身份認證網關。
- 跨平臺/架構中間件:CORBA、DCOM/COM+、RMI。
- 專用平臺中間件:電子商務、物聯網、金融等垂直領域框架。
- 網絡中間件:它包括網管、接入、網絡測試、虛擬社區和虛擬緩沖等,也是當前最熱門的研發項目。
- 代表產品
- IBM MQSeries:是 IBM 的消息處理中間件。異步、可靠消息傳輸。
- BEA Tuxedo:屬于交易中間件。它允許客戶機和服務器參與一個涉及多個數據庫協調更新的交易,并能夠確保數據的完整性。分布式事務處理、負載均衡、故障恢復。
- CORBA:跨語言、跨平臺的對象請求代理。
- J2EE(EJB、JSP、Servlet):Java 企業級組件標準。
- Microsoft COM+/DCOM:Windows 平臺分布式組件。
- 部署形態
- 獨立進程:如消息代理、事務服務器。
- 庫/框架:如 ODBC/JDBC 驅動、SSL 庫。
- 容器化:現代微服務架構中,以容器或 Sidecar 形式運行。
3.7 軟件構件
- 定義
- 構件(Component)是自包容、可復用的程序集合,通過明確定義的接口對外提供服務,隱藏內部實現細節。
- 核心特性
- 自包容:內部功能完整,不依賴外部細節。
- 可重用:可在不同系統或環境中多次使用。
- 可組裝:支持“搭積木”式開發,通過接口與其他構件協同。
- 組裝模型
- 設計構件組裝 → 建立構件庫 → 構建應用軟件 → 測試發布。
- 優點:縮短開發周期、降低成本、并行開發、易于維護。
- 缺點:需要高水平架構設計、性能可能妥協、第三方構件質量不可控、學習成本較高。
- 主流標準與規范
- OMG CORBA:跨語言、跨平臺的分布式對象標準。
- Sun J2EE / Jakarta EE:以 EJB 為核心的企業級 Java 構件規范。
- Microsoft COM / DCOM / COM+:Windows 平臺構件模型,支持本地與遠程調用。
- 構件粒度與層次
- 細粒度:函數級、類庫級。
- 中粒度:業務模塊、服務單元。
- 粗粒度:子系統、獨立應用。
3.8 應用軟件
- 定義
- 應用軟件是為滿足用戶在特定領域或任務中的需求而專門設計的程序集合,用于解決實際問題、擴展計算機功能、提升用戶效率。
- 與系統軟件的關系
- 系統軟件提供運行平臺與資源管理;應用軟件在系統軟件之上直接面向用戶,完成具體業務功能。
- 分類
- 通用軟件:辦公軟件(Word、Excel)、瀏覽器、多媒體播放器、即時通訊工具等。
- 專用/行業軟件:CAD 工程設計、醫院 HIS、銀行核心系統、ERP 等。
- 按運行環境:桌面應用、移動 App、Web 應用、小程序、云原生 SaaS 等。
- 核心特點
- 功能針對性強:針對特定業務或生活場景設計。
- 用戶界面友好:通常提供 GUI,易于學習和操作。
- 可定制與可擴展:支持配置、插件、二次開發,滿足個性化需求。
- 跨平臺能力:現代應用普遍支持 Windows、macOS、Linux、iOS、Android 及 Web 瀏覽器。
- 持續更新:通過版本迭代修復缺陷、增加功能、提升安全性。
4 嵌入式系統及軟件
4.1 嵌入式系統的組成及特點
- 定義:以應用為中心、以計算機技術為基礎,軟硬件可裁減,適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。
- 組成:
- 嵌入式處理器(MCU、MPU、DSP、FPGA/SoC)
- 支撐硬件:存儲器(ROM、RAM、Flash)、時鐘、電源、外設接口(GPIO、UART、SPI、I2C、USB、CAN、Ethernet)
- 嵌入式操作系統(RTOS、μClinux、FreeRTOS、VxWorks、RT-Thread)
- 支撐軟件:BSP(Board Support Package)、HAL(Hardware Abstraction Layer)、驅動程序、協議棧
- 應用軟件:面向具體業務的控制程序或算法
- 特點:
- 專用性強、軟硬件高度耦合
- 資源受限(低功耗、小內存)
- 實時性需求(硬實時/軟實時)
- 高可靠性與穩定性
- 生命周期長,固件升級機制完備
4.2 嵌入式系統的分類
- 按實時性
- 硬實時(Hard Real-Time)
- 軟實時(Soft Real-Time)
- 按安全等級
- 安全攸關系統 (Safety-Critical System)
- 非安全攸關系統
- 按復雜度與規模
- 8/16/32/64 位系統;單片機、SoC、SBC、模塊化計算機
4.3 嵌入式軟件的組成及特點
- 層次結構
- 硬件層 → 硬件抽象(HAL)/板級支持包(BSP) → 操作系統層 → 中間件層 → 應用層
- 開發模式
- 宿主機(Host)開發、交叉編譯、仿真調試
- 目標機(Target)運行,固件燒錄或遠程 OTA 更新
- 軟件特點:
- 可裁剪、可配置、靜態鏈接為主
- 實時調度(優先級搶占、時間片輪轉)
- 資源靜態分配,避免動態內存碎片
- 低功耗管理(時鐘門控、動態電壓頻率調節 DVFS)
- 安全性 (Safety)與可靠性設計
4.4 安全攸關軟件的安全性設計
- 依據標準:
- DO-178C(航空)
- 安全生命周期:
- 需求 → 設計 → 實現 → 驗證 → 確認 → 維護
- 關鍵技術:
- 形式化方法與模型檢測
- 靜態代碼分析、單元/集成/系統測試、故障注入
- 分區保護(ARINC 653、內存保護單元 MPU)
- 冗余與容錯(TMR、雙機熱備、Fail-Safe 模式)
5 計算機網絡
計算機網絡是利用通信線路將地理上分散的、具有獨立功能的計算機系統和通信設備按不同的形式連接起來,并依靠網絡軟件及通信協議實現資源共享和信息傳遞的系統。計算機網絡技術主要涵蓋通信技術、網絡技術、組網技術和網絡工程等四個方面。
5.1 網絡的基本概念
- 計算機網絡的定義
- 由獨立計算機系統、通信設備及通信協議通過通信線路互聯,實現資源共享和信息傳遞的系統。
- 發展四階段
- 誕生階段:20 世紀 60 年代前,單主機遠程聯機系統。
- 形成階段:20 世紀 60 年代中–70 年代,ARPANET 引領的多主機互連。
- 互聯互通階段:20 世紀 70 年代末–90 年代,TCP/IP 與 OSI 標準確立。
- 高速發展階段:20 世紀 90 年代至今,Internet 普及,高速光纖、無線技術廣泛應用。
- 核心功能
- 數據通信:二進制形式的信息交換。
- 資源共享:硬件(打印機、存儲)、軟件、數據。
- 管理集中化:管理信息系統、辦公自動化系統等,通過這些系統可以實現日常工作的集中管理,提高工作效率,增加經濟效益。
- 分布式處理:任務拆分、并行計算、結果匯總。
- 負荷均衡:動態分配工作負載,提升整體效率。
- 性能指標
- 速率(bit/s)、帶寬(Hz 或 bit/s)、吞吐量、時延、往返時間 RTT、信道利用率、網絡利用率。
- 非性能指標:費用、質量、標準化、可靠性、可擴展性、易管理性。
- 應用前景
- 因特網是人類自印刷術發明以來在通信方面最大的變革。現在,人們的生活、工作、學習和交往都已離不開因特網了。
- 信息時代基石,推動教育、金融、制造、政務、社交等領域數字化轉型,支撐云計算、物聯網、大數據、AI 的融合發展。
5.2 通信技術
- 信道
- 物理信道:由傳輸介質(雙絞線、光纖、無線、衛星等)和通信設備組成。
- 邏輯信道:發端到收端之間的虛擬線路,可面向連接或無連接。
- 香農公式
- 信道容量 C=Blog?2(1+SN)C = B \log_2(1+\dfrac{S}{N})C=Blog2?(1+NS?)
- CCC 為最大比特率,BBB 為帶寬,SN\dfrac{S}{N}NS? 為信噪比。
- 提升信道容量可以使用比較大的帶寬,降低信噪比;也可以使用比較小的帶寬,升高信噪比。
- 信號處理流程
- 發端:信源編碼→信道編碼→交織→脈沖成形→調制→信道。
- 收端:解調→去交織→信道譯碼→信源譯碼→輸出。
- 復用技術
- TDM 時分復用、FDM 頻分復用、CDM 碼分復用。其中 ADSL 使用了 FDM 的技術,語音的上行和下行占用了不同的帶寬。
- 多址技術
- TDMA 時分多址、FDMA 頻分多址、CDMA 碼分多址。
- 5G 關鍵技術
- OFDM 優化波形與可擴展子載波間隔。
- 大規模 MIMO、毫米波、頻譜共享、LDPC/Polar 編碼。
5.3 網絡技術
- 局域網 LAN
- 覆蓋范圍:辦公室、樓宇、校園等有限地理區域。
- 常見拓撲:星形、樹形、總線、環形、網狀。
- 關鍵技術:以太網(IEEE 802.3)、交換式以太網、VLAN、PoE。
- 無線局域網 WLAN
- 標準:IEEE 802.11 a/b/g/n/ac/ax(Wi-Fi 6/6E)。
- 拓撲:基礎設施模式(AP-STA)、Ad-hoc、Mesh。
- 關鍵技術:OFDM、MIMO、WPA3 安全、射頻管理與漫游。
- 城域網 MAN
- 覆蓋城市范圍,技術:DQDB(IEEE 802.6)、千兆/萬兆以太網、MPLS、SPN。
- 分層結構:核心層、匯聚層、接入層。
- 廣域網 WAN
- 覆蓋國家/全球,技術:SONET/SDH、MPLS、Frame Relay、ATM、xDSL、PON。
- 互聯方式:電路交換、分組交換、SD-WAN(軟件定義廣域網)。
- 移動通信網
- 1G → 5G 演進:模擬 → 數字 → 寬帶 → 全 IP → 云原生。
- 5G 核心:SBA 服務化架構、網絡切片、邊緣計算、uRLLC/eMBB/mMTC 場景。
5.4 組網技術
5.4.1 網絡設備及其功能層級
- 集線器 Hub:物理層,廣播轉發,所有端口共享沖突域。
- 中繼器 Repeater:物理層,信號放大、整形,延長傳輸距離。
- 網橋 Bridge:數據鏈路層,基于 MAC 地址過濾、隔離沖突域。
- 交換機 Switch:數據鏈路層,MAC 地址學習、單播轉發,支持 VLAN、STP、鏈路聚合。
- 路由器 Router:網絡層,基于 IP 地址轉發,實現子網間互聯、路由選擇、ACL、NAT。
- 防火墻 Firewall:工作于網絡層及以上,安全策略過濾,支持狀態檢測、VPN、IPS/IDS。
5.4.2 網絡協議基礎
- OSI 七層模型 vs TCP/IP 四層模型
- OSI:物理→數據鏈路→網絡→傳輸→會話→表示→應用
- TCP/IP:網絡接口→網際層→傳輸層→應用層
- 核心協議
- IP / ICMP(Internet Control Message Protocol) / ARP / RARP(網際層)
- TCP / UDP(傳輸層)
- HTTP / HTTPS / FTP / SMTP / DNS(應用層)
5.4.3 交換技術
人們日常使用的計算機通常就是通過交換機接入網絡的。
- 交換原理
- 學習:根據源 MAC 建立端口-MAC 表
- 轉發:已知目的 MAC 單播轉發;未知 MAC 泛洪
- 更新:老化機制保持 MAC 表實時性
- 環路避免
- STP/RSTP/MSTP:生成樹協議,邏輯阻塞冗余鏈路
- 鏈路聚合:802.3ad/LACP,多條物理鏈路捆綁為一條邏輯鏈路,提升帶寬與冗余
5.4.4 路由技術
- 路由原理
- 路由表構成:目的網絡、下一跳、出接口、度量值
- 路由過程:最長前綴匹配 → 轉發決策 → 數據包封裝 → 下一跳發送
- 路由協議
- 靜態路由:人工配置,簡單但維護量大
- 動態路由
- 內部網關協議 IGP
- 鏈路狀態:OSPF、IS-IS(支持大規模網絡)
- 距離矢量:RIP
- 外部網關協議 EGP:BGP(自治系統間路徑向量協議)
- 內部網關協議 IGP
5.5 網絡工程
5.5.1 網絡規劃
- 需求分析:業務目標、用戶規模、應用類型、流量模型、安全合規。
- 可行性分析:技術可行性、經濟評估、風險識別、ROI 計算。
- 現網評估:拓撲梳理、性能基線、瓶頸診斷、資產盤點。
5.5.2 網絡設計
- 總體目標:高可用、高性能、可擴展、易管理、安全合規。
- 設計原則:模塊化、分層(核心/匯聚/接入)、冗余、可演進。
- 關鍵內容:
- 拓撲設計:物理與邏輯拓撲、雙核心冗余、鏈路聚合、VRRP/HSRP。
- 地址規劃:IPv4/IPv6 地址分配、子網劃分、路由聚合、NAT 策略。
- 設備選型:交換機(L2/L3)、路由器、防火墻、無線 AP、光模塊。
- 性能設計:帶寬瓶頸計算、QoS 策略、緩存與隊列管理。
- 安全設計:分層防御(防火墻/IPS/VPN)、零信任、訪問控制、日志審計。
- 管理設計:SNMP/NetFlow/Syslog、自動化運維、故障定位體系。
5.5.3 網絡實施
- 工程實施計劃:里程碑、資源排期、割接窗口、回退預案。
- 設備驗收:硬件清點、功能/性能測試、固件版本一致性。
- 安裝調試:拓撲布線、設備上架、配置下發、連通性驗證、冗余切換測試。
- 試運行:壓力測試、故障演練、監控基線校準、用戶培訓。
- 正式切換:割接流程審批、實時監測、問題回滾、驗收報告。
- 用戶培訓等。
6 計算機語言
6.1 計算機語言的組成
- 表達式
- 變量:存儲數據的命名單元
- 常量:運行期間值不變
- 字面量:直接書寫的數值、字符或字符串
- 運算符:算術 +++、關系 <<<、邏輯 ∧\land∧、位運算 ⊕\oplus⊕ 等
- 流程控制
- 分支:if / else、switch / case
- 循環:for、while、do-while
- 函數:定義、調用、參數傳遞、返回值
- 異常:try / catch / finally、raise / throw
- 集合(數據結構)
- 字符串:字符序列
- 數組:同類型元素的有序集合
- 散列表(哈希表):鍵-值映射
- 組織單元
- 語句:最小可執行單元
- 模塊 / 包:代碼復用與命名空間管理
- 注釋:單行、多行、文檔注釋
6.2 計算機語言的分類
6.2.1 機器語言
二進制指令,CPU 直接執行;與硬件強相關、不可移植。
6.2.2 匯編語言
助記符形式(MOV、ADD 等);經匯編程序翻譯為機器碼;依賴指令集、效率高、可移植性差。
6.2.3 高級語言
- 接近自然語言、跨平臺;需編譯或解釋執行。
- 常見:C、C++、Java、Python、C#、Go。
6.2.4 建模語言
描述系統結構與行為,不直接執行;典型代表 UML、SysML。
- 概念與作用
- 使用圖形化或文本化符號對系統需求、結構、行為進行抽象描述的語言。
- 目的:在編碼之前可視化系統、減少歧義、支持驗證與自動生成代碼。
- 發展歷程
- 1970s(1970 到 1979 這十年):結構化分析(SA)、數據流圖(DFD)。
- 1990s(1990–1999):面向對象分析興起,出現 Booch93、OMT、OOSE。
- 1997:OMG 采納 UML 1.1,統一建模語言誕生。
- 2005 后:SysML(系統工程擴展)、BPMN(業務流程)、ArchiMate(企業架構)相繼成熟。
- UML 的組成要素
- 基本構造塊
- 事物
- 結構事物
- 行為事物
- 分組事物
- 注釋事物
- 關系
- 依賴 (Dependency)
- 語義:使用關系,一方變化影響另一方;通常是臨時、非結構化。
- 圖形:帶箭頭的虛線,箭頭指向被依賴者。
- 示例:類 A 的方法參數中出現類 B 的類型。
- 關聯 (Association)
- 語義:結構化連接,表示對象之間的長期引用;可單向/雙向,可多重性。
- 圖形:實線,可在線端標多重性(0…1、1、* 等);箭頭表示導航方向。
- 示例:訂單 —— 客戶。
- 泛化 (Generalization)
- 語義:繼承關系,子元素繼承父元素的結構與行為;可替代父元素。
- 圖形:帶空心三角箭頭的實線,箭頭指向父類。
- 示例:Shape ← Triangle。
- 實現 (Realization)
- 語義:契約關系,類或構件實現接口/用例所定義的行為規范。
- 圖形:帶空心三角箭頭的虛線,箭頭指向接口或用例。
- 示例:Runnable ← Thread。
- 依賴 (Dependency)
- 事物
- 圖(支配基本構造塊如何放置在一起的規則)
- 運用于整個語言的公用機制。
- 基本構造塊
- UML 的 5 種視圖
- 用例視圖、邏輯視圖、進程視圖、實現視圖和部署視圖,其中的用例視圖居于中心地位。
- UML 核心圖(13 種)
- 結構圖:類圖、對象圖、構件圖、部署圖、包圖、組合結構圖。
- 行為圖:用例圖、活動圖、狀態機圖、序列圖、通信圖、時序圖、交互概覽圖。
6.2.5 形式化語言
基于數學邏輯精確描述需求與規格;如 Z 語言、CSP、TLA+;用于高可信系統驗證。
7 多媒體
7.1 多媒體概述
2.7.1 多媒體概述
- 多媒體定義
- 利用計算機技術將文本、圖形、圖像、音頻、視頻、動畫等多種媒體信息數字化后綜合集成,并建立邏輯連接,形成具有交互性的系統。
- 媒體分類(ITU-T)
- 感覺媒體(Perception Medium):視覺、聽覺、觸覺等信息形式。
- 表示媒體(Representation Medium):圖像、聲音、視頻等編碼格式。
- 表現媒體(Presentation Medium):鍵盤、鼠標、顯示器、打印機、音箱等輸入輸出設備。
- 存儲媒體(Storage Medium):硬盤、光盤、閃存等物理載體。
- 傳輸媒體(Transmission Medium):雙絞線、光纖、電磁波、衛星鏈路等通信介質。
- 多媒體四大特征
- 多維化:多種媒體形態并存與交互。
- 集成性:設備、信息、表現手段高度統一。
- 交互性:用戶可主動控制、實時反饋。
- 實時性:音頻、視頻等時間敏感媒體需同步處理。
- 多媒體系統的組成
- 多媒體硬件
- 多媒體計算機(MPC、圖形工作站等)
- 多媒體板卡(顯示卡、音頻卡、視頻卡等)
- 多媒體外部設備(觸摸屏、掃描儀、攝像頭等)
- 多媒體軟件
- 多媒體系統軟件
- 多媒體驅動程序
- 多媒體操作系統
- 多媒體支持軟件
- 多媒體素材制作工具
- 多媒體著作工具
- 多媒體編程語言
- 多媒體應用軟件
- 多媒體系統軟件
- 多媒體硬件
- 應用領域
- 工業監控、醫療影像、軍事仿真、軌道交通、辦公協作、教育培訓、數字娛樂、智能家居等。
7.2 多媒體系統的關鍵技術
7.2.1 視音頻技術
音頻技術:包括音頻數字化、語音處理、語音合成及語音識別 4 個方面。
視頻技術
- 視頻數字化:模擬信號 → 數字信號。
- 視頻編碼技術
- 釋義:是將數字化的視頻信號經過編碼成為視頻信號,從而可以錄制或播放。
- 視音頻編解碼器:硬件/軟件實現,支持同步、字幕、元數據。
- 視頻編碼:壓縮算法(H.26x、MPEG-x)。
視音頻壓縮方法:
- 無損:FLAC、WAV、TTA。
- 有損:MP3、AAC、H.264、H.265。
7.2.2 通信技術
通信技術是多媒體系統中的一項關鍵技術,是指將信息從一個地點傳送到另一個地點所采取的方法和措施。這里所說的通信技術僅僅涵蓋多媒體系統采用的通信方法。
通信技術通常包括了數據傳輸信道技術和數據傳輸技術。
- 信道:雙絞線、光纖、無線、衛星。
- 復用:TDM、FDM、CDM。
- 交換:電路交換、分組交換、ATM、MPLS。
7.2.3 數據壓縮技術
- 靜態圖像:JPEG、JPEG 2000。
- 動態圖像視頻編碼標準 (MPEG) MPEG-1/2/4
- 視頻編解碼器標準 (H.26L)
7.2.4 虛擬現實 ( V R ) /增強現實 ( A R ) 技術
- VR:完全由計算機生成的三維沉浸式環境,用戶與現實世界隔離。
- 應用場景:沉浸培訓、虛擬仿真、數字孿生、游戲、心理治療。
- AR:將計算機生成的虛擬信息(文字、圖像、3D 模型等)實時疊加到真實世界中,實現“增強”的感官體驗。
- 應用場景:遠程協作、工業維護、導航、教育、零售試穿、醫療手術導航。
8 系統工程
系統工程是一種組織管理技術。
8.1 系統工程概述
- 定義:面向復雜系統的跨學科方法,通過整體規劃、分析、設計、實現與評估,使系統在約束條件下達到整體最優。
- 起源:二戰期間運籌與項目管理實踐;阿波羅登月計劃奠定現代系統工程框架。
- 特點:整體性、多學科、生命周期視角、持續迭代。
8.2 系統工程方法
系統工程方法是一種現代的科學決策方法,也是一門基本的決策技術。
- 霍爾三維結構(1969)
- 時間維:規劃→方案→研制→生產→安裝→運行→更新。
- 邏輯維:明確問題→目標→綜合→分析→優化→決策→實施。
- 知識維:工程、管理、法律、經濟等多領域知識。
- 切克蘭德軟系統方法(1981)
- 七步:問題情境→根底定義→建立概念模型→比較→選擇→設計與實施→評估與反饋。
- 強調“比較-學習”而非“最優化”,適用于難量化的社會經濟系統。
- 并行工程(1986)
- 設計-制造-維護并行推進,縮短周期、降低成本、提高質量。
- 綜合集成法(1990,錢學森)
- 定性+定量、專家+數據+模型,解決“開放的復雜巨系統”。
- WSR 方法論(1994,顧基發)
- “物理-事理-人理”三維協調,強調人、關系、利益的動態平衡。
8.3 系統工程的生命周期(ISO/IEC 15288)
8.3.1 生命周期階段
下面是系統工程流程的7個一般生命周期階段。
- 探索性研究:需求洞察、技術可行性。
- 概念階段:需求細化、方案比選。
- 開發階段:詳細設計、原型、驗證確認。
- 生產階段:制造、驗收、交付。
- 使用階段:運行、監控、持續改進。
- 保障階段:維護、升級、延壽。
- 退役階段:數據歸檔、資源回收、環境善后。
8.3.2 生命周期方法
- 計劃驅動方法
- 漸進迭代式開發
- 精益開發
- 敏捷開發
8.4 基于模型的系統工程 MBSE
- 定義:用形式化、圖形化模型貫穿需求-設計-驗證全生命周期。
- 三大支柱
- 建模語言:SysML(系統)、UML(軟件)、BPMN(流程)。
- 建模工具:Cameo、Capella、Rhapsody、Enterprise Architect。
- 建模思路:Harmony-SE、OOSEM、SYSMOD 等方法論。
9 系統性能
9.1 性能指標
- 計算機:時鐘頻率(主頻)、CPI、MIPS、FLOPS、內存容量/帶寬、緩存命中率、IOPS、RASIS 特性 ( 即可靠性 (Reliability)、 可用性 (Availability)、 可維護性(Serviceability)、 完整性和安全性 (Integrity and Security))。
- 路由器:吞吐量(pps)、背板容量、路由表規模、丟包率、時延、時延抖動、VPN 并發、QoS 隊列數。
- 交換機:交換容量(Gbps)、MAC 表容量、VLAN 數、ACL 條目、PoE 功率、緩存、可堆疊/集群能力。
- 網絡:評價網絡的性能指標有設備級性能指標、網絡級性能指標、應用級性能指標、用戶級性能指標和吞吐量。
- 舉例:鏈路利用率、帶寬、RTT、重傳率、抖動、QoE、并發連接數。
- 操作系統:上下文切換開銷、系統調用延遲、CPU/內存/磁盤利用率、平均負載、可伸縮性。
- 數據庫:TPS/QPS、并發事務、索引命中率、緩存命中率、鎖等待時間、復制延遲。
- Web 服務器:最大并發連接數、響應延遲、吞吐量(Requests/sec)、錯誤率。
9.2 性能計算
- 計算方法
- 定義法:按指標原始定義直接計算。
- 公式法:利用標準公式(如 MIPS、峰值、吉普森等效指令速度)。
- 程序檢測法:在軟件中插入計時/計數代碼,運行時采樣。
- 儀器檢測法:使用硬件測試儀、邏輯分析儀、示波器等外部設備測量。
- 典型指標
- MIPS:$ \text{MIPS} = \frac{\text{指令條數}}{\text{執行時間} \times 10^6} $
- 峰值計算:理論最大運算能力(FLOPS、IPS)。
- 吉普森法:按指令權重加權平均,得到等效指令速度。
- 實踐處理
- 多種指標復合計算 → 加權算法 → 綜合性能得分。
9.3 性能設計
- 性能調整
- 目標:定位并消除瓶頸。
- 數據庫側重:CPU/內存、表設計、索引、日志、磁盤空間。
- 應用側重:響應時間、并發數、可用性、資源占用。
- 流程:識別約束 → 指定負載 → 設定目標 → 循環“收集-分析-配置-測試”。
- 阿姆達爾定律
- 加速比公式:
S=1(1?f)+fk S = \frac{1}{(1 - f) + \frac{f}{k}} S=(1?f)+kf?1?- fff:可改進部分占總執行時間比例(可并行比例)
- kkk:該部分性能提升倍數(為并行加速倍數)
- 結論:性能提升上限受限于不可并行部分;盲目增加并行度收益遞減。
- 加速比公式:
9.4 性能評估
性能評估的一個目的是為性能的優化提供參考。
- 基準測試程序
- 把應用程序中用得最多、最頻繁的那部分核心程序作為評價計算機性能的標準程序,稱為基準測試程序 (benchmark)。
- Web 服務器的性能評估
- 在 Web 服務器的測試中,反映其性能的指標主要有:最大并發連接數、響應延遲和吞吐量等。
- 常見的 Web 服務器性能評測方法有基準性能測試、壓力測試和可靠性測試。
- 系統監視
- 一是通過系統本身提供的命令,如 UNIX/Linux 中的W、ps、last,Windows 中的 netstat 等;
- 二是通過系統記錄文件查閱系統在特定時間內的運行狀態;
- 三是集成命令、文件記錄和可視化技術,如 Windows 的 Perfmon 應用程序。