系統架構設計師(一):計算機系統基礎知識
- 引言
- 計算機系統概述
- 計算機硬件
- 處理器
- 處理器指令集
- 常見處理器
- 存儲器
- 總線
- 總線性能指標
- 總線分類
- 按照總線在計算機中所處的位置劃分
- 按照連接方式分類
- 按照功能分類
- 接口
- 接口分類
- 計算機軟件
- 文件系統
- 文件類型
- 文件結構
- 文件的邏輯結構
- 文件的物理結構
- 文件存取方法
- 文件存儲空間的管理方法
- 位示圖計算題
- 文件共享
- 文件保護
- 中間件
- 中間件分類
- 軟件構件
- 軟件構件的組裝模型
- 商用構件的標準規范
引言
本文對應《系統架構設計師教程》(以下簡稱官方教材)第二章部分章節內容。官方教材中,第二章作為核心知識章節,全面涵蓋了計算機硬件、軟件、操作系統、嵌入式系統等多領域基礎內容。然而,從歷年考試命題趨勢來看,操作系統、嵌入式系統、計算機網絡及系統性能模塊是考查的重點,其考察內容遠遠超過官方教材中羅列的知識點,后續我們將對這些高頻考點進行專項深度解析。為避免知識龐雜導致學習負擔過重,本文將聚焦計算機硬件、計算機軟件兩大基礎板塊,幫助大家夯實根基,為后續的重點突破做好鋪墊。
計算機系統概述
計算機系統是指用于數據管理的計算機硬件、 軟件及網絡組成的系統。它是按人的要求接收和存儲信息,自動進行數據處理和計算, 并輸出結果信息的機器系統。典型計算機系統的組成結構如下圖所示:
從上圖可以看出,典型計算機系統的組成主要分為硬件和軟件兩大模塊。
計算機硬件
計算機硬件源于傳統馮·諾依曼計算機結構,包含五大構件:運算器、控制器、存儲器、輸入設備和輸出設備。
- 運算器和控制器是中央處理器(CPU)的核心處理部件。
- 存儲器分為內存和外存。內存一般以GB為單位,其特點是斷電數據易丟失,無法持久化保持,但是速度快,效率高。外存通常指硬盤,一般以GB或TB為單位,其特點是容量大,速度慢,數據可以持久化保存。
- 輸入設備和輸出設備統稱為I/O設備(Input/Output)。
處理器
處理器指令集
處理器指令集包括復雜指令集(CISC)和精簡指令集(RISC),兩者對比如下所示:
維度 | CISC | RISC |
---|---|---|
指令數量 | 指令多,通常 >200 條(如 x86 有上千條指令) | 指令少,通常 <100 條(如 ARM 有 64 條核心指令) |
指令長度 | 不固定長(1-15 字節) | 長度相對固定(通常 4 字節) |
執行周期 | 多周期,1-20 個周期不等 | 單周期指令,大多 1 個周期內 |
實現方式 | 微程序控制 | 硬布線邏輯 |
執行效率 | 效率低 | 效率高 |
典型應用 | Intel系列(如 i5/i7/i9)、AMD Ryzen 系列(如 x86) | ARM、POWER |
常見處理器
- 圖形處理器GPU:一種特殊類型的處理器,具有數百或數千個內核,經過優化可并行運行大量計算,因此近些年在深度學習和機器學習領域得到了廣泛應用。
- 信號處理器DSP:專用于實時的數字信號處理,通過采用飽和算法處理溢出問題,通過乘積累加運算提高矩陣運算的效率,以及為傅里葉變換設計專用指令等方法,在各類高速信號采集的設備中得到廣泛應用。
- 可編程邏輯門陣列FRGA。
- 通用處理器CPU。
存儲器
存儲器是利用半導體、磁、光等介質制成用于存儲數據的電子設備。根據存儲器的硬件結
構可分為SRAM、DRAM、NVRAM、Flash、EPROM、Disk等。計算機系統中的存儲器通常采
用分層的體系結構,按照與處理器的物理距離可分為4個層次:
- 片上緩存:又稱為片內緩存,即芯片內直接繼承的緩存,在處理器核心中直接集成的緩存,一般為 SRAM結構,實現數據的快速讀取。它容量較小,一般為16kB~512kB, 按照不同的設計可能劃分為一級或二級。其特點是容量最小,速度最快。
- 片外緩存:類似于Cache,在處理器核心外的緩存,需要經過交換互聯開關訪問,一般也是由SRAM構成,容量較片上緩存略大,可以為256kB~4MB。 按照層級被稱為 L2Cache或 L3Cache, 或者稱為平臺Cache。
- 主存(內存):通常采用 DRAM結構,以獨立的部件/芯片存在,通過總線與處理器連接。 DRAM依賴不斷充電維持其中的數據,容量在數百M B 至數十G B 之間。
- 外存:可以是磁帶、磁盤、光盤和各類Flash等介質器件,這類設備訪問速度慢,但容量大,且在掉電后能夠保持其數據。
總線
總線 是指計算機部件間 遵循某一特定協議實現數據交換的形式,即以一種特定格式按照規定的控制邏輯實現部件間的數據傳輸。
總線性能指標
總線的性能指標常見的有總線帶寬、總線服務質量QoS、 總線時延和總線抖動等。
總線分類
按照總線在計算機中所處的位置劃分
按照總線在計算機中所處的位置劃分為內總線、系統總線和外部總線。
- 內總線:用于各類芯片內部互連,也可稱為片上總線 或片內總線。
- 系統總線:指計算機中CPU、 主存、 I/O 接口的總線,計算機發展為多總線結構后,系統總線的含義有所變化。
- 狹義的系統總線仍為CPU與主存、通信橋連接的總線。
- 廣義上,還應包含計算機系統內,經由系統總線再次級聯的總線,常被稱為局部總線。
- 外部總線:計算機板和外部設備之間,或者計算機系統之間互聯的總線,又稱為通信總線。
按照連接方式分類
按照連接方式分類,可分為并行總線和串行總線。
- 并行總線:主要包括PCI、PCle和ATA(IDE) 等,其特點是效率高、傳輸距離短。
- 串行總線:主要包括USB、SATA、CAN、RS-232、RS-485、RapidIO和以太網等,其特點是效率低、傳輸距離長。
按照功能分類
按照功能分類,可劃分為數據總線、地址總線、控制總線。
接口
接口是指同一計算機不同功能層之間的通信規則。
接口分類
- 顯示類接口:HDMI、DVI 和 DVI等。
- 音頻輸入輸出類接口:TRS、RCA、XLR等。
- 網絡類接口:RJ45、FC等。
- PS/2接口
- USB接口
- SATA接口
- LPT打印接口
- RS-232 接口
注:對于總線而言,一種總線可能存在多種接口。
計算機軟件
文件系統
文件 (File) 是具有符號名的、在邏輯上具有完整意義的一組相關信息項的集合,是一種抽象機制,它隱藏了硬件和實現細節,提供了將信息保存在外存上而且便于以后讀取的手段,使用戶不必了解信息存儲的方法、位置以及存儲設備實際操作方式便可存取信息。
一個文件包括文件體和文件說明。文件體是文件真實的內容;文件說明是操作系統為了管理文件所用到的信息,包括文件名、文件內部標識、文件類型、文件存儲地址、文件長度、訪問權限、建立時間和訪問時間等。
文件系統是操作系統中實現文件統一管理的一組軟件和相關數據的集合,是專門負責管理和存取文件信息的軟件機構。文件系統的功能包括按名存取、統一的用戶接口、并發訪問和控制、安全性控制、優化性能、差錯恢復。
- 按名存取:即用戶可以“按名存取”,而不是“按地址存取”。
- 統一的用戶接口:在不同設備上提供同樣的接口,方便用戶操作和編程。
- 并發訪問和控制:在多道程序系統中支持對文件的并發訪問和控制。
- 安全性控制:在多用戶系統中的不同用戶對同一文件可有不同的訪問權限。
- 優化性能:采用相關技術提高系統對文件的存儲效率、檢索和讀/寫性能。
- 差錯恢復:能夠驗證文件的正確性,并具有一定的差錯恢復能力。
文件類型
- 按文件的性質和用途分類可將文件分為系統文件、庫文件和用戶文件。
- 按信息保存期限分類可將文件分為臨時文件、檔案文件和永久文件。
- 按文件的保護方式分類可將文件分為只讀文件、讀/寫文件、可執行文件和不保護文件。
- UNIX系統將文件分為普通文件、目錄文件和設備文件(特殊文件)。
文件結構
文件的結構是指文件的組織形式。從用戶角度看到的文件組織形式稱為文件的邏輯結構;從實現的角度看,文件在文件存儲器上的存放方式稱為文件的物理結構。
文件的邏輯結構
- 有結構的記錄式文件:由一個以上的記錄構成的文件;在記錄式文件中,所有的記錄通常都是描述一個實體集的,有著相同或不同數目的數據項,記錄的長度可分為定長(指文件中所有記錄的長度相同)和不定長(指文件中各記錄的長度不相同)兩類。
- 無結構的流式文件:由一串順序字符流構成的文件。無結構的流式文件的文件體為字節流,不劃分記錄。無結構的流式文件通常采用順序訪問方式,并且每次讀/寫訪問可以指定任意數據長度,其長度以字節為單位。
文件的物理結構
- 連續結構:也稱順序結構,它將邏輯上連續的文件信息依次存放在連續編號的物理塊上。只要知道文件的起始物理塊號和文件的長度,就可以很方便地進行文件的存取。邏輯上相鄰,物理上也相鄰。
- 鏈接結構:也稱串聯結構,它將邏輯上連續的文件信息存放在不連續的物理塊上,每個物理塊設有一個指針指向下一個物理塊。因此,只要知道文件的第1個物理塊號,就可以按鏈指針查找整個文件。邏輯上相鄰,物理上不相鄰。
- 索引結構:將邏輯上連續的文件信息存放在不連續的物理塊中,系統為每個文件建立一張索引表(類似目錄)。索引表記錄了文件信息所在的邏輯塊號對應的物理塊號,并將索引表的起始地址放在與文件對應的文件目錄項中。
- 多個物理塊的索引表:多個物理塊的索引表可以有兩種組織方式:鏈接文件和多重索引方式。
文件存取方法
- 順序存取方法是指對文件中的信息按順序依次進行讀/寫。
- 隨機存取方法是指對文件中的信息可以按任意的次序隨機地讀/寫。
文件存儲空間的管理方法
- 空閑區表:將外存空間上的一個連續的未分配區域稱為“空閑區”。操作系統為磁盤外存上的所有空閑區建立一張空閑表,每個表項對應一個空閑區,空閑表中包含序號、空閑區的第1塊號、空閑塊的塊數和狀態等信息。它適用于連續文件結構。
- 位示圖:這種方法是在外存上建立一張位示圖(Bitmap),記錄文件存儲器的使用情況。每一位對應文件存儲器上的一個物理塊,取值0和1分別表示空閑和占用。
- 空閑塊鏈:每個空閑物理塊中有指向下一個空閑物理塊的指針,所有空閑物理塊構成一個鏈表。
- 成組鏈接法: UNIX 系統采用該方法。例如,在實現時系統將空閑塊分成若干組,每100個空閑塊為一組,每組的第1個空閑塊登記了下一組空閑塊的物理盤塊號和空閑塊總數。
位示圖計算題
題1:
如下所示,每個字字長為8bit,字編號、位編號、磁盤塊編號都是從0開始,請問第64塊磁盤應該放在幾號字的幾號位?
解析:由于字編號、位編號、磁盤塊編號都是從0開始的,所以第64塊磁盤應該對應編號65。
65/8 = 8…1,因此放在第9個字(第8個字放不下),編號8;放在第1位,編號0。
題2:
某字長為32位的計算機文件管理系統采用位示圖記錄磁盤使用情況。若磁盤容量為300GB,物理塊大小為1MB,那么位示圖的大小為多少個字?
解析:300GB /1MB/32 = 9600
文件共享
文件共享通常采用文件鏈接的方式,常見的文件鏈接有硬鏈接和符號鏈接兩種。
- 硬鏈接:兩個文件目錄表目指向同一個索引結點的鏈接,該鏈接也稱基于索引結點的鏈接。換句話說,硬鏈接是指不同文件名與同一個文件實體的鏈接。文件硬鏈接不利于文件主刪除它擁有的文件,因為文件主要刪除它擁有的共享文件,必須首先刪除(關閉)所有的硬鏈接,否則就會造成共享該文件的用戶的目錄表目指針懸空。
- 符號鏈接:又稱軟連接,建立新的文件或目錄,并與原來文件或目錄的路徑名進行映射,當訪問一個符號鏈接時,系統通過該映射找到原文件的路徑,并對其進行訪問。采用符號鏈接可以跨越文件系統,甚至可以通過計算機網絡連接到世界上任何地方的機器中的文件,此時只須提供該文件所在的地址以及在該機器中的文件路徑。
文件保護
文件系統對文件的保護常采用存取控制的方式進行,其實現方式分為以下幾種:
- 存取控制矩陣:理論上,存取控制的方法可用存取控制矩陣實現,它是一個二維矩陣,一維列出計算機的全部用戶,另一維列出系統中的全部文件,矩陣中的每個元素A,表示第i個用戶對第j 個文件的存取權限。
- 存取控制表:存取控制矩陣由于太大往往無法實現。一個改進的辦法是按用戶對文件的訪問權力的差別對用戶進行分類,由于某一文件往往只與少數幾個用戶有關,所以這種分類方法可使存取控制表簡化。 UNIX系統就是使用了這種存取控制表方法,它把用戶分成三類:文件主、同組用戶和其他用戶,每類用戶的存取權限為可讀、可寫、可執行以及它們的組合。相當于列出一個文件的有權限的用戶。
- 用戶權限表。改進存取控制矩陣的另一種方法是以用戶或用戶組為單位將用戶可存取的文件集中起來存入表中,這稱為用戶權限表。表中的每個表目表示該用戶對應文件的存取權限,這相當于存取控制矩陣一行的簡化。相當于列出用戶有權限訪問的所有文件。
- 密碼:在創建文件時,由用戶提供一個密碼,在文件存入磁盤時用該密碼對文件的內容加密。在進行讀取操作時,要對文件進行解密,只有知道密碼的用戶才能讀取文件。
中間件
中間件(Middleware) 作為應用軟件與各種操作系統之間使用的標準化編程接口和協議,可以起承上啟下的作用,使應用軟件的開發相對獨立于計算機硬件和操作系統,并能在不同的系統上運行,實現相同的應用功能。
中間件分類
按照中間件在分布式系統中承擔的職責不同,可以劃分以下幾類中間件產品:
- 通信處理(消息)中間件:在分布式系統中,人們要建網和制定出通信協議,以保證系統能在不同平臺之間通信,實現分布式系統中可靠的、高效的、實時的跨平臺數據傳輸,這類中間件稱為消息中間件,也是市面上銷售額最大的中間件產品,目前主要產品有BEA的eLink、IBM 的 MQSeries、TongLINK等。
- 事務處理(交易)中間件:在分布式事務處理系統中,經常要處理大量事務,特別是OLTP 中,每項事務常常要多臺服務器上的程序按順序協調完成,一旦中間發生某種故障,不但要完成恢復工作,而且要自動切換系統保證系統永不停機,實現高可靠性運行。要使大量事務在多臺應用服務器上能實時并發運行,并進行負載平衡的調度,實現與昂貴的可靠性機和大型計算機系統的同等功能,為了實現這個目標,要求中間件系統具有監視和調度整個系統的功能。
- 數據存取管理中間件:在分布式系統中,重要的數據都集中存放在數據服務器中,它們可以是關系型的、復合文檔型、具有各種存放格式的多媒體型,或者是經過加密或壓縮存放的,該中間件將為在網絡上虛擬緩沖存取、格式轉換、解壓等帶來方便。
- Web服務器中間件:瀏覽器圖形用戶界面已成為公認規范,然而它的會話能力差,不擅長做數據的寫入任務,受HTTP 協議的限制多等,就必須對其進行修改和擴充,因此出現了Web服務器中間件,如SilverStream公司的產品。
- 安全中間件:一些軍事、政府和商務部門上網的最大障礙是安全保密問題,而且不能使用國外提供的安全措施(如防火墻、加密和認證等),必須用國產產品。產生不安全因素是由操作系統引起的,但必須要用中間件去解決,以適應靈活多變的要求。
- 跨平臺和架構的中間件:在分布式系統中,還需要集成各結點上的不同系統平臺上的構件或新老版本的構件,由此產生了架構中間件。
- 專用平臺中間件:專用平臺中間件為特定應用領域設計領域參考模式,建立相應架構,配置相應的構件庫和中間件,為應用服務器開發和運行特定領域的關鍵任務(如電子商務、網站等)。
- 網絡中間件:包括網管、接入、網絡測試、虛擬社區和虛擬緩沖等。
軟件構件
構件又稱為組件,是一個自包容、可復用的程序集。構件是一個程序集,或者說是一組程序的集合。這個集合可能會以各種方式體現出來,如源程序或二進制的代碼。這個集合整體向外提供統一的訪問接口,構件外部只能通過接口來訪問構件,而不能直接操作構件的內部。構件的兩個最重要的特性是自包容與可重用。
軟件構件的組裝模型
隨著軟件構件技術的發展,人們開始嘗試利用軟件構件進行搭積木式的開發,即構件組裝模型。在構件組裝模型中,當經過需求分析定義出軟件功能后,將對構件的組裝結構進行設計,將系統劃分成一組構件的集合,明確構件之間的關系。在確定了系統構件后,則將獨立完成每一個構件,這時既可以開發軟件構件,也可以重用已有的構件,當然也可以購買或選用第三方的構件。構件是獨立的、自包容的,因此架構的開發也是獨立的,構件之間通過接口相互協作。
商用構件的標準規范
本小節了解即可,因為J2EE、DNA 2000等內容太老了,應該不會再考。
當前,主流的商用構件標準規范包括對象管理組織 (OMG) 的CORBA、Sun 的J2EE和 Microsoft 的DNA。
- CORBA:公共對象請求代理架構 (CORBA) 主要分為3個層次:對象請求代理、公共對象服務和公共設施。
- 對象請求代理:最底層的對象請求代理 (ORB) 規定了分布對象的定義(接口)和語言映射,實現對象間的通信和互操作,是分布對象系統中的“軟總線”。
- 公共對象服務:在ORB之上定義了很多公共服務,可以提供諸如并發服務、名字服務、事務(交易)服務、安全服務等各種各樣的服務。
- 公共設施:最上層的公共設施則定義了構件框架,提供可直接為業務對象使用的服務,規定業務對象有效協作所需的協定規則。
- CORBA CCM:CORBA CCM(CORBA Component Model)構件模型是OMG組織制定的一個用于開發和配置分布式應用的服務器端構件模型規范,它主要包括如下3項內容:
- 抽象構件模型:用以描述服務器端構件結構及構件間互操作的結構。
- 構件容器結構:用以提供通用的構件運行和管理環境,并支持對安全、事務、持久狀態等系統服務的集成。
- 構件的配置和打包規范: CCM 使用打包技術來管理構件的二進制、多語言版本的可執行代碼和配置信息,并制定了構件包的具體內容和文檔內容標準。
- J2EE:J2EE 同時支持遠程方法調用(RMI)和互聯網內部對象請求代理協議(IIOP), 而在服務器端分布式應用的構造形式,則包括了 Java Servlet、JSP、EJB等多種形式,以支持不同的業務需求。
- DNA 2000:Microsoft 的 DCOM/COM/COM+ 技術在DNA 2000 分布計算結構基礎上,展現了一個全新的分布構件應用模型。