109 地方特考三等 電子工程 計算機概論 考古題詳解
第 一 題
請回答下列問題:
(一) 計算機的四個主要結構元件是那四個?(8分)
(二) 在計算機的輸入和輸出介面中,當處理器(processor)、主記憶體(main memory)和 I/O 共享一條共用匯流排(bus)時,有那兩種定址(addressing)方式?(6分)
(三) 在典型的計算機的作業系統(operating system)中,有那三個關鍵介面(key interfaces)?(6分)
(四) 在計算機的處理器(processor)結構和功能中,有那三種類型的資料危險(data hazards)?(6分)
(五)
(1) 十進位 的二進位表示為何?
(2) 十進位 以 8 位元二的補數來表示為何?
(3) 十六進位 的二進位表示為何?
(4) 八進位 的十六進位表示為何?(8分)
登入後即可作答並保存紀錄。
核心觀念
本題出自經典計算機組織與作業系統學理(以 William Stallings 之《Computer Organization and Architecture》與《Operating Systems》為主要命題範本),共評量五大核心主題:
- 計算機頂層結構元件(Top-Level Structural Components):計算機系統四大核心功能組件之劃分標準。
- I/O 介面定址模式(I/O Addressing Schemes):匯流排共享架構下,處理器區隔「記憶體」與「周邊 I/O 暫存器」的定址機制。
- 作業系統關鍵介面(OS Key Interfaces):界定硬體、作業系統核心、系統函式庫與應用程式之間邊界的階層化介面規格。
- 管線化資料危險(Pipeline Data Hazards):指令重疊執行時,因暫存器讀寫時序重疊而產生的資料相依性衝突分類。
- 數值系統轉換與補數運算:非整數進位制轉換(權值拆解法與二進位中介法)及帶號數之二的補數(2's Complement)編碼。
解題方法
(一) 計算機的四個主要結構元件(8分)
依據計算機結構標準定義,現代計算機頂層結構由下列四個主要元件構成:
- 中央處理單元(Central Processing Unit, CPU / 處理器 Processor):負責控制計算機整體運作並執行資料運算處理,內部包含控制單元(Control Unit, CU)、算術邏輯單元(Arithmetic and Logic Unit, ALU)與暫存器組(Registers)。
- 主記憶體(Main Memory):負責儲存處理器當前執行所需之程式指令與運算資料。
- 輸入/輸出(Input/Output, I/O 模組):負責在計算機內部與外部環境(周邊設備如儲存裝置、顯示器、感測器及網路設備)之間傳遞資料與控制訊號。
- 系統互連機構(System Interconnection):提供 CPU、主記憶體與 I/O 模組之間彼此通信之傳輸機制與路徑,最典型的實現方式為系統匯流排(System Bus)(包含資料匯流排、位址匯流排與控制匯流排)。
(二) 共享共用匯流排時的兩種 I/O 定址方式(6分)
當處理器、主記憶體與 I/O 介面共享同一條系統匯流排時,區分記憶體單元與 I/O 埠暫存器的兩種定址方式為:
- 記憶體對應 I/O(Memory-Mapped I/O):
- 原理:記憶體與 I/O 設備共用單一位址空間(Single Address Space)。處理器將 I/O 模組中的狀態暫存器與資料暫存器視為一般的記憶體位址單元。
- 特點:處理器不需要專屬的 I/O 指令,使用標準記憶體存取指令(如
LOAD、STORE、MOV)即可操作 I/O。缺點為佔用部分主記憶體的可用位址範圍。
- 獨立 I/O(Isolated I/O,又稱 I/O 對應 I/O,I/O-Mapped I/O):
- 原理:主記憶體與 I/O 設備各自擁有獨立分開的位址空間(Separate Address Spaces)。
- 特點:匯流排需額外的控制訊號線(例如 訊號線)來區別目前位址匯流排上的位址是屬於記憶體還是 I/O;處理器必須提供專屬的輸入/輸出機器指令(例如 x86 架構之
IN與OUT指令)才能完成存取。優點是不佔用主記憶體位址空間。
(三) 典型的作業系統中三個關鍵介面(6分)
在現代作業系統階層架構中,提供跨層溝通的三個關鍵介面為:
- 指令集架構(Instruction Set Architecture, ISA):
- 定義硬體與軟體(機器語言/組合語言)之間的邊界。它涵蓋處理器所支援的指令、暫存器規格、定址模式與記憶體架構。作業系統核心與使用者程式最終皆透過 ISA 交付硬體執行。
- 應用程式二進位介面(Application Binary Interface, ABI):
- 定義編譯後的二進位執行檔與作業系統核心、硬體底層之間的介面。內容包含系統呼叫介面(System Call Interface)、函式呼叫常規(Calling Conventions,如暫存器傳參分配)、二進位檔案格式等,確保編譯後的機器碼在相容的作業系統平台上具備可移植性與二進位相容性。
- 應用程式設計介面(Application Programming Interface, API):
- 定義高階程式語言原始碼與作業系統/標準函式庫之間的呼叫介面(例如 POSIX API 或 Windows API)。開發者透過呼叫 API 函式來間接請求作業系統服務,使原始碼不依賴底層硬體指令與核心系統呼叫細節,具備原始碼等級之跨平台可攜性。
(四) 處理器結構和功能中的三種資料危險(6分)
在管線化(Pipelining)處理器中,後續指令因相依於前續指令的運算結果,而發生暫存器讀寫時序衝突的危險稱為資料危險,主要分為以下三種:
- 先讀後寫危險(Read-After-Write, RAW,又稱真實資料相依 True Dependency):
- 成因:後續指令需要讀取前續指令將要寫入的暫存器,若管線排程讓後續指令提早執行讀取,將讀取到過時的舊資料。
- 先寫後讀危險(Write-After-Read, WAR,又稱反相依 Anti-dependency):
- 成因:後續指令將要寫入暫存器,若其寫入動作早於前續指令讀取該暫存器的動作,導致前續指令讀取到錯誤的新資料。此現象多發生於具備超純量非依序執行(Out-of-Order Execution)能力的處理器。
- 先寫後寫危險(Write-After-Write, WAW,又稱輸出相依 Output Dependency):
- 成因:前後兩條指令欲寫入同一個暫存器,若後續指令早於前續指令完成寫入,導致該暫存器最終保留了前續指令的舊值而非後續指令的新值。此現象同樣出現在非依序執行架構中。 (註:讀後讀 RAR 因不涉及資料狀態修改,不構成危險。)
(五) 數值轉換與運算推導(8分)
(1) 十進位 轉為二進位
- 整數部分:
- 小數部分: 將權值展為二進位負指數:
- 合併推導:
第 二 題
請回答下列問題:
(一) 在 TCP/IP 階層中,那兩種協定(protocols)來實現傳輸級別(transport level)?(6分)
(二) 假設主機 A 要向主機 B 發送一個大文件,從主機 A 到主機 B 的路徑有三個鏈結路線,速率分別為路線 R1 = 500 Kbps、路線 R2 = 2 Mbps 和路線 R3 = 1 Mbps。假設網路中沒有其他流量,請問文件傳輸的吞吐量(throughput)是多少?假設文件大小為 4 百萬位元組(4 million bytes),請問將文件傳輸到主機 B 需要多少時間?(4分)
(三) 請問 iMessage 是什麼軟體?有何功能?請問 iMessage 使用什麼協議(protocol)?(6分)
登入後即可作答並保存紀錄。
核心觀念
本題涵蓋計算機網路的三大核心主題:
- 傳輸層協定(Transport Layer Protocols):在 TCP/IP 架構中,傳輸層主要負責處理行程對行程(Process-to-Process)的邏輯通訊,最經典且廣泛使用的兩大協定為連線導向的 TCP 與非連線導向的 UDP。
- 瓶頸鏈結(Bottleneck Link)與端到端傳輸時間(Transmission Delay):在串聯的多鏈結路徑且無外加流量干擾下,端到端吞吐量取決於整個傳輸路徑中「傳輸速率最低」的鏈結(即瓶頸鏈結);傳輸延遲公式為: 其中 為傳輸資料大小(bits), 為瓶頸傳輸速率(bps)。
- 應用層即時通訊軟體與通訊協定架構(Instant Messaging & Network Protocols):Apple iMessage 的系統定位、特色功能,及其底層依託的專利推播服務、端到端加密機制與網際網路通訊協定。
解題方法
(一) TCP/IP 傳輸層的兩種協定
在 TCP/IP 協定堆疊的傳輸層(Transport Layer)中,實現該層服務的兩種核心協定分別為:
- 傳輸控制協定(TCP, Transmission Control Protocol):
- 特性:連線導向(Connection-oriented),需透過三次交握(Three-way Handshake)建立連線。
- 機制:提供可靠傳輸(Reliable Data Transfer)、保證封包依序抵達(In-order Delivery)、具備壅塞控制(Congestion Control)與流量控制(Flow Control,滑動視窗機制)。
- 典型應用:HTTP/HTTPS、FTP、SMTP 等需要資料絕對正確的應用。
- 使用者資料包協定(UDP, User Datagram Protocol):
- 特性:非連線導向(Connectionless),不保證資料一定送達(Best-effort 盡力傳送)。
- 機制:封包標頭開銷小(僅 8 Bytes)、傳輸延遲低,無連線維護狀態與壅塞控制。
- 典型應用:DNS、VoIP、即時影音串流、線上網路遊戲等對延遲敏感但容許微量遺失的應用。
(二) 吞吐量與傳輸時間計算
步驟一:求文件傳輸的吞吐量(Throughput) 在由複數鏈結組成的串聯傳輸路徑中,若路徑無其他背景流量,端到端的最大有效吞吐量受限於傳輸速率最小的瓶頸鏈結(Bottleneck Link):
題目給定各鏈結速率為:
代入公式計算:
步驟二:求文件傳輸時間(Transmission Time)
- 依據網路標準定義進行單位換算(在通訊頻寬與儲存傳輸中,未特別指明時十進位 ;):
- 文件總位元數
- 瓶頸速率
- 傳輸時間 :
(三) iMessage 的定義、功能與使用協定
第 三 題24 分
請回答下列問題:(每小題 6 分,共 24 分)
(一) 請問下列遞迴(recursive)演算法的解為何?
(二) 請畫出將 插入最初為空的 AVL 樹中的結果。
(三) 在下圖的展開樹(splay tree)中,請畫出用鍵值(key) 刪除元素(deleting the element)的結果。
🖼️【此處有附圖,請對照原卷】
原圖樹結構如下:根節點為 ; 的左子節點為 、右子節點為 ; 的左子節點為 、右子節點為 ; 的左子節點為 、右子節點為 ; 的左子節點為 、右子節點為 ; 的左子節點為 、右子節點為 ; 的右子節點為 ; 的右子節點為 。
(四) 請畫出使用線性時間演算法(linear time algorithm),將 和 ,來建立二元堆積(binary heap)的結果。
登入後即可作答並保存紀錄。
核心觀念: 這是分治遞迴式。每次將問題縮小為原來的一半,並在該層額外加入成本 。
解題方法: 令 ,展開遞迴直到子問題大小為 。遞迴樹每一層的子問題總規模都是 ,因此每個非基底層的額外成本合計為 。從規模 縮小到 ,共有 個非基底層;最底層有 個規模為 的子問題,基底成本合計為 。
解題技巧: 可用主定理快速驗算:,且 ,故 。依本題基底條件,精確解為 。
(二)AVL 樹插入
核心觀念: AVL 樹要求每個節點左右子樹高度差的絕對值至多為 。插入後若失衡,依失衡型態施行旋轉。
解題方法: 依序插入 。插入 後,節點 發生 RR 失衡,對 左旋;插入 後,根部發生 RL 失衡,先對右子樹右旋,再對根左旋;插入 後,節點 發生 RL 失衡,同樣先右旋、再左旋。插入 後各節點仍符合 AVL 平衡條件。
結果如下:
4
/ \
2 6
/ \ / \
1 3 5 9
/
7
解題技巧: 從新插入的葉節點往根檢查,找到第一個失衡節點,再以該節點及其較高子樹的方向判定 LL、RR、LR 或 RL 旋轉。
(三)展開樹刪除鍵值
核心觀念: 展開樹(splay tree)在搜尋節點後,透過旋轉將該節點移至根。刪除根節點後,常用作法是將左子樹最大值展開至左子樹的根,再接上右子樹。
解題方法: 搜尋 時, 是其父節點 的右子節點,而 是祖父節點 的左子節點,屬於 zig-zag 情形:先對
第 四 題6 分
請回答下列問題:(每小題 3 分,共 6 分)
(一) 惡意程式泛指所有不懷好意的程式碼,請問那一種惡意程式不會主動散播自己?
(二) 網路交友要遵守「網路四不」,來自我保護。在 Facebook 中常有美女網友主動搭訕,你要啟動那一個「不」來保護自己?
登入後即可作答並保存紀錄。
核心觀念
本題評量資訊安全概論中的兩大核心面向:惡意程式(Malware)的分類與行為特性,以及網路社群安全與防詐自我保護準則(網路交友四不原則)。
- 惡意程式的分類與傳播機制: 依據惡意程式是否具有「自我複製能力」、「是否依附宿主(Host)」及「傳播方式」,常見分類如下:
- 電腦病毒(Virus):必須寄生在正常的執行檔或文件中,需要使用者執行該宿主程式才會被動感染與擴散。
- 電腦蠕蟲(Worm):具有獨立執行的能力,不需宿主,且會主動利用網路漏洞進行自我複製並向外散播。
- 特洛伊木馬(Trojan Horse):偽裝成合法、有用或具吸引力的程式,誘騙使用者下載並主動執行,本身不具備自我複製能力,也不會主動向外散播。
- 邏輯炸彈(Logic Bomb):預先埋藏在合法程式中的特定條件觸發碼,同樣不具主動散播能力。
在計算機概論與資訊安全標準教材中,與「主動散播的蠕蟲」形成強烈對比且最常考的非自我散播惡意程式即為特洛伊木馬。
- 網路安全與社交工程(網路交友四不原則): 政府警政與教育單位(如內政部警政署刑事警察局、教育部資訊安全宣導)所推廣的「網路交友四不原則」,主要包含:
- 不透露:不透露個人隱私與個人資料(真實姓名、身分證字號、住址、學校、電話等)。
- 不輕信:不輕易相信對方的身分背景與甜言蜜語(防範假帳號、盜圖與虛擬人設)。
- 不單獨:不單獨與網友見面或赴約(防範人身安全危機)。
- 不給錢/不傳照:不涉及任何金錢往來(不匯款、不買點數)及不拍傳私密照片。
解題方法
(一) 惡意程式傳播特性切入
判斷各類惡意程式在網路傳播行為上的差異:
- 「主動散播」的代表為蠕蟲(Worm),它能掃描網路埠號並自主複製入侵其他主機。
- 特洛伊木馬(Trojan Horse) 的核心運作機制是「偽裝與詐欺」(Deception),它無法像蠕蟲那樣自動向外擴散,而是依賴社交工程(Social Engineering)手法,騙取使用者手動下載、安裝或執行。因此,特洛伊木馬程式不會主動散播自己。
(二) 社群網路安全情境切入
Facebook 上出現陌生美女大頭貼主動搭訕,屬於典型的「假帳號殺豬盤」或「社交工程釣魚」起手式。
- 此類手法利用虛擬假身分(通常為盜用網美照片)主動攀談,企圖降低當事人戒心,後續再誘導進行假投資、購買點數或索取私密照。
- 面對陌生人的主動示好與搭訕,防禦的第一道關卡是保持質疑,啟動**「不輕信」(不輕易相信網友真實身分與說詞/不理會陌生搭訕);同時在互動時必須落實「不透露」(不透露個資與隱私)。國家考試閱卷標準中,以直接針對搭訕動機的「不輕信」(或延伸之「不透露」**)為最標準之應對防線。
選項分析
本題雖非選擇題,但針對題目涉及之專有名詞與分類概念逐一剖析如下:
(一) 常見惡意程式行為對比分析
第 五 題20 分
請回答下列問題:(每小題 5 分,共 20 分)
(一) 假設 的值為 情況下,執行以下函數,請問輸出結果為何?
def fun1(x): print(x) if (x < 2): fun1(x + 1) else: print(x) print(x)
(二) 假設有一棵二元樹 如下左圖所示,執行如下右圖函數,請問輸出結果為何?
🖼️【此處有附圖,請對照原卷】
樹結構為:根節點 A;A 的左子節點為 B、右子節點為 C;B 的左子節點為 D、右子節點為 E;C 的左子節點為 F、右子節點為 G。
def PT(t): if(t is not NULL): print(t.Value) PT(t.Right)
(三) 請問以下程式,輸出結果為何?
main() { int A = 5;
while (A < 7) {
printf("%i ", A);
A++;
}
printf("%i ", A);
while (A > 2) {
printf("%i ", A);
A -= 2;
}
}
(四) 請問以下程式,輸出結果為何?
void funcC(int *p){ int y; y = *p + 3; *p = y * 3; }
main() { int m = 5, n = 6;
funcC(&m);
funcC(&n);
printf("%4d%4d\n", m, n);
}
登入後即可作答並保存紀錄。
核心觀念: 每次呼叫函數時,會先執行函數內的敘述,再依條件決定是否呼叫下一層;遞迴返回後,會繼續執行呼叫位置之後的敘述。
解題方法: 原頁掃描圖中的條件式寫的是 if (N < 2),但函數參數是 x,且題目只交代 x = 0,沒有定義 N。因此照圖面原文執行,先印出 0,接著檢查條件時會因 N 未定義而發生錯誤;遞迴不會開始。
若依題目敘述及函數其他部分,將 N 視為應為 x,輸出順序如下:
- 呼叫
fun1(0):印出0,呼叫fun1(1)。 - 呼叫
fun1(1):印出1,呼叫fun1(2)。 - 呼叫
fun1(2):印出2;條件不成立,再印出2;函數末尾再印出2。 - 返回
fun1(1),函數末尾印出1。 - 返回
fun1(0),函數末尾印出0。
解題技巧: 遞迴題可由最深層開始往回追蹤;每層函數在遞迴呼叫返回後,仍會執行呼叫後的敘述。
(二)二元樹遞迴走訪
核心觀念: 函數先印出目前節點,再只遞迴呼叫右子節點,因此走訪順序是「目前節點、右子樹」。
解題方法: 從根節點 A 開始,依序走到右子節點 C,再走到 C 的右子節點 G。函數沒有呼叫左子節點,所以 B、D、E、F 不會輸出。
解題技巧: 看遞迴呼叫的是 t.Left 還是 t.Right,即可判斷會走訪哪一側;此題只追蹤右側分支。