110 港務人員升資考試員級晉高員級 技術類(選試輪機管理與安全)-臺灣港務公司 電子計算機概論 考古題詳解
第 一 題20 分
請試述下列名詞之意涵:(每小題 5 分,共 20 分)
(一) DMA(Direct Memory Access)
(二) instruction cycle
(三) stack
(四) program counter
登入後即可作答並保存紀錄。
核心觀念
本題考查電腦組織中四個基本名詞:直接記憶體存取、指令週期、堆疊,以及程式計數器。作答時應交代各名詞的功能、運作方式,以及它們在處理器與記憶體之間的關係。
解題方法
逐一說明名詞的定義及其主要用途,並補上必要的操作順序。尤其要區分:DMA 可讓周邊裝置與記憶體直接傳輸資料;instruction cycle 是處理器執行指令的循環;stack 遵循後進先出;program counter 則記錄下一個要取出的指令位址。
(一) DMA(Direct Memory Access,直接記憶體存取)
DMA 是一種資料傳輸方式,允許輸入/輸出裝置在 DMA 控制器協助下,直接與主記憶體交換資料,而不必由 CPU 逐筆搬移資料。
典型流程如下:
- CPU 設定 DMA 傳輸的起始記憶體位址、資料量及傳輸方向。
- DMA 控制器取得系統匯流排的控制權,讓裝置與主記憶體直接傳輸資料。
- 傳輸完成後,DMA 控制器通知 CPU,通常以中斷方式告知。
DMA 能減少 CPU 處理大量資料搬移的負擔,提高輸入/輸出效率。不過,傳輸期間 DMA 控制器可能與 CPU 競爭匯流排使用權。
(二) instruction cycle(指令週期)
指令週期是 CPU 執行一條指令所需的完整處理循環,通常包括:
- 取指令(fetch):依程式計數器所記錄的位址,從記憶體取出指令。
- 解碼(decode):分析指令內容,判斷要執行的操作及所需資料。
- 執行(execute):由運算單元或其他處理單元執行指令。
- 寫回(write back):將結果寫入暫存器或記憶體;部分指令不需要此步驟。
實際處理器可能將部分階段合併、細分或以管線方式重疊執行。指令週期是概念上的執行流程,不代表所有處理器的硬體階段完全相同。
(三) stack(堆疊)
第 二 題35 分
假設 為一整數型態之一維陣列,其陣列大小為 ,陣列索引從 1 開始算起,陣列元素均互異。今欲以快速排序法(quick sort)將 中的陣列元素由小到大排列。
快速排序法其中一個很重要的動作稱為 partition(分割),其功能為:將一個稱為 pivot 的元素擺放至正確的位置,同時將此陣列元素區分成兩半部,分別是左半部及右半部,其中左半部的元素均比 pivot 來得小,而右半部的元素均比 pivot 來得大。不失一般性,我們以陣列中的第一個元素為 pivot。
以陣列 為例, 即為 pivot。經過 partition 後,結果如下:
pivot:
左半部:;右半部:
今將 partition 設計為一回傳整數值的函數,其形式為 ,其中參數包含欲處理陣列()及其左邊界()及右邊界(),而回傳的數值為 partition 後 pivot 所在的位置。
以上例為例,、、,回傳的數值為 。
請回答以下問題:
(一) 請根據上述說明,設計一時間複雜度為 的 partition 函數。(15 分)
(二) 若將快速排序法設計成一副程式,其形式為 ,參數定義同上說明。請根據子題(一)的結果,設計快速排序法之副程式。(10 分)
(三) 請根據子題(二)的結果,將 以快速排序法(quick sort)將 中的元素由小到大排列。請將交換過程詳細列出,未列出者,不予計分。(10 分)
登入後即可作答並保存紀錄。
核心觀念
快速排序的 partition 會選定一個基準值 pivot,將比它小的元素移到左側、比它大的元素留在右側,最後把 pivot 放到正確位置並回傳該位置。題目指定以子陣列第一個元素作為 pivot,且陣列索引從 1 開始。
以下採用 Lomuto 分割法:用 i 記錄小於 pivot 的區域末端,逐一掃描其餘元素;遇到小於 pivot 的元素,就擴大小於區域並交換。掃描完後,再將 pivot 放到 i 的下一個位置。
解題方法
(一)時間複雜度為 的 partition
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int partition(int S[], int lb, int rb)
{
int pivot = S[lb];
int i = lb;
for (int j = lb + 1; j <= rb; j++) {
if (S[j] < pivot) {
i++;
swap(&S[i], &S[j]);
}
}
swap(&S[lb], &S[i]);
return i;
}
掃描範圍是 lb + 1 到 rb,每個元素只檢查一次,最後再做一次基準值交換,因此時間複雜度為 ,對大小為 的陣列即為 。分割完成後,S[i] 是 pivot,S[lb..i-1] 的元素都小於 pivot,S[i+1..rb] 的元素都大於 pivot。
(二)快速排序副程式
void Quicksort(int S[], int lb, int rb)
{
if (lb < rb) {
int p = partition(S, lb, rb);
Quicksort(S, lb, p - 1);
Quicksort(S, p + 1, rb);
}
}
每次分割後,pivot 已在最終位置,所以遞迴處理它左側與右側的子陣列即可。當 lb >= rb 時,子陣列至多只有一個元素,已經排好序。
(三)交換過程
以下用 表示陣列,並依照程式先遞迴處理左側,再處理右側。相同位置的交換會列出,並註明為自我交換。
第一次分割:範圍 ,pivot = 42
初始陣列:
- :, 移至 2,交換 與 ,陣列不變。
- :,不交換。
- :, 移至 3,交換 與 :
- :,不交換。
- :, 移至 4,交換 與 :
第 三 題20 分
電腦的記憶體系統採用階層式設計,請回答下列問題:
(一) 請說明何謂階層式記憶體系統。(10 分)
(二) 請說明如此設計的理由。(10 分)
登入後即可作答並保存紀錄。
**核心觀念:**階層式記憶體系統是將不同速度、容量與每位元成本的記憶體,依特性分層配置,使電腦兼顧存取速度、儲存容量與成本。由處理器往外,常見層級依序為:
暫存器最接近處理器,存取最快、容量最小;快取記憶體用來暫存近期或常用資料;主記憶體供正在執行的程式與資料使用;輔助記憶體則包括固態硬碟、硬碟等,容量較大且可長期保存資料,但存取速度較慢。
一般而言,愈靠近處理器的層級,存取速度愈快、每位元成本愈高、容量愈小;愈遠離處理器的層級,容量愈大、每位元成本愈低,存取速度則愈慢。處理器會先在較高層級尋找所需資料;若未命中,才向較低層級取得資料,並視情況將資料複製至較高層級。
(二)採用階層式設計的理由
**解題方法:**從記憶體各層級的速度、容量與成本差異切入,再說明如何利用區域性原理,讓常用資料以較快的記憶體服務,同時保有較大容量的儲存空間。
- **調和處理器與記憶體的速度差距:**處理器運算速度遠高於主記憶體。若每次存取都等待較慢的記憶體,處理器便會花費時間等候資料。
第 四 題25 分
電腦網路依據國際標準組織(International Standard Organization, ISO)訂定的 OSI(Open System Interconnection)網路參考模型,將網路的架構分成 7 層。請回答下列問題:
(一) 說明網路分層運作的優點及缺點。(10 分)
(二) 說明現行的網際網路 Internet 的架構。(15 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查網路分層的設計原則,以及 Internet 實際採用的協定架構。OSI 是用來描述網路功能的七層參考模型;Internet 則以 TCP/IP 協定族群為核心,實務上常用四層模型說明。兩者可以對照理解,但層數與分層方式並不完全相同。
解題方法
作答時先說明分層如何把複雜的網路通訊工作拆成彼此協作的功能,再分別整理其優點與代價。談 Internet 架構時,依資料由應用程式往下傳送的順序,說明各層的功能與代表協定,並補充資料封裝及 OSI 對照關係。
(一)網路分層運作的優點及缺點
優點
- 降低系統複雜度:將通訊工作依功能切分,各層各自處理特定問題,容易設計、理解與實作。
- 模組化,便於維護:只要層與層之間的服務介面維持穩定,某一層的實作改變通常不必全面修改其他層。
- 促進互通與標準化:不同廠商可依共同的協定及介面實作設備或軟體,提升異質系統間的互通性。
- 便於測試與故障定位:可以逐層檢查問題,例如判斷故障是在應用服務、傳輸、路由或實體連線。
- 支援技術替換與擴充:可在不改變整體架構的情況下替換特定層的技術,例如更換區域網路媒介,而維持上層通訊方式。
缺點
- 分層與介面會增加額外負擔:資料須經過多層處理,各層可能加入標頭或控制資訊,增加傳輸開銷與處理時間。
- 可能重複執行功能:不同層可能各自提供錯誤檢查、流量控制或其他相近功能,造成資源浪費。
- 效能最佳化較受限制:嚴格的層次分隔可能阻礙跨層資訊共享,使系統難以針對整體效能調整。
- 功能不易完全歸屬單一層:有些功能與多層相關,實際系統未必能清楚、唯一地歸入某一層。
- 模型可能與實作不完全一致:參考模型是理解與設計的抽象工具;實際協定堆疊可能合併、跨越或未實作模型中的某些功能。
(二)現行 Internet 的架構
Internet 的通訊以 TCP/IP 協定族群為核心。常見的說明方式是四層架構,由上而下如下: