109 一般警察特考二等 刑事警察人員數位鑑識組 計算機系統(包括計算機結構、作業系統) 考古題詳解
第 一 題25 分
假設有 、、、、 五個行程,每個行程所需的 CPU 時間如下:
| Process | Burst Time | Priority |
|---|---|---|
| 2 | 2 | |
| 1 | 1 | |
| 8 | 4 | |
| 4 | 2 | |
| 5 | 3 |
假設 、、、、 依序於時間點 0 開始等候 CPU 執行。
(一) 請根據以下四種演算法,畫出時間甘特圖,以描述 CPU 處理五個行程的使用情形:
- First Come First Serve(FCFS)
- Shortest Job First(SJF)
- Non-Preemptive Priority(較小的 priority number 表示較高的優先權)
- Round Robin(quantum = 4)
(15 分)
(二) 請計算上述四種演算法的平均等待時間為何?請列出計算過程。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查四種 CPU 排程演算法,以及由執行順序計算等待時間。
行程均在時間點 到達,因此不必考慮到達時間差異,也不會發生行程到達後插隊的情形。各行程的等待時間可用下式計算:
本題到達時間皆為 ,所以等待時間等於該行程首次開始執行的時間。平均等待時間為:
- FCFS:依到達順序執行。
- SJF:選擇 CPU 執行時間最短的行程;本題採非搶先方式。
- Non-Preemptive Priority:選擇優先權數字最小的行程;同優先權時依到達順序執行。
- Round Robin:每個行程最多連續執行一個時間片,未完成者排到就緒佇列尾端;時間片為 。
解題方法與時間甘特圖
1. FCFS
依到達順序 執行。各行程依序累加其 Burst Time。
0 2 3 11 15 20
| P1 | P2 | P3 | P4 | P5 |
2. SJF
所有行程同時等候,依 Burst Time 由短至長排列:
0 1 3 7 12 20
| P2 | P1 | P4 | P5 | P3 |
3. Non-Preemptive Priority
優先權數字越小,優先權越高。依序為:
與 優先權相同,依到達順序先執行 。
0 1 3 7 12 20
| P2 | P1 | P4 | P5 | P3 |
4. Round Robin(quantum = 4)
依就緒佇列輪流執行,每次最多執行 個時間單位。、、 在各自輪次內完成;、 未完成者回到佇列尾端。
0 2 3 7 11 15 16 17 20
| P1 | P2 | P3 | P4 | P5 | P3 | P5 | P3 |
等待時間計算
1. FCFS
依甘特圖可得各行程開始執行時間:
| 行程 | 開始時間 | 等待時間 |
|---|---|---|
| 0 | 0 | |
| 2 | 2 | |
| 3 | 3 | |
| 11 | 11 | |
| 15 | 15 |
第 二 題15 分
某多項式為 ,其中 、、、 均為非零整數。
給定一個 值,在求 值時,請問最少需要做多少次乘法運算?最少需要做多少次加法運算?
登入後即可作答並保存紀錄。
核心觀念
這題考多項式的**乘法鏈(addition chain)**與霍納法則。計算時可以重複使用已算出的冪次,因此不必把 、、 分別從頭計算。
題目只問乘法與加法次數,以下將係數乘法也計入乘法次數;加法則是把多項式各項合併所需的加法。
解題方法
先令 ,則
以霍納法則改寫:
依序計算:
- :一次乘法。
- :一次加法。
- :一次乘法。
- :一次加法。
第 三 題10 分
在一個分頁系統中,使用了轉譯旁觀緩衝區(translate look-aside buffer, TLB)的硬體裝置,能有效提高系統中分頁表(page table)的效能。
假設 TLB 的命中率(hit ratio)為 90%,TLB 的存取時間為 10 奈秒(nanosecond, ns),記憶體存取時間為 100 奈秒(ns)。請回答下列問題:
(一) 使用單層分頁表(single-level page table)的有效記憶體存取時間(effective memory-access time, EAT)為何?
(二) 使用雙層分頁表(two-level page table)的有效記憶體存取時間(EAT)為何?
登入後即可作答並保存紀錄。
核心觀念
本題考查轉譯旁觀緩衝區(TLB)命中與未命中時,虛擬位址轉換所需的記憶體存取次數,並據此計算有效記憶體存取時間(EAT)。
設 TLB 命中率為 、TLB 存取時間為 、記憶體存取時間為 。命中時,先查 TLB,再存取資料;未命中時,還須查詢分頁表,再存取資料。因此:
- 命中所需時間:
- 未命中所需時間:
其中 是分頁表的層數:單層分頁表 ,雙層分頁表 。故:
解題方法
已知 、、。命中與未命中都要先查詢 TLB,因此兩種情況均計入 的 TLB 存取時間。
(一)單層分頁表
TLB 命中時,存取 TLB 後直接存取資料,需 。
TLB 未命中時,需存取一次分頁表,再存取資料,合計 。
第 四 題30 分
給定一個混合有不同指令集的 benchmark 測試程式,每種指令集有不同的平均每指令週期數(clock cycles per instruction, CPI),如下表。我們利用此 benchmark 來測試一個 2-GHz 的處理器。
| 指令集 | Frequency | CPI |
|---|---|---|
| Integer ALU | 30% | 1 |
| Floating-point operations | 20% | 12 |
| Load and stores | 35% | 4 |
| Branches | 15% | 2 |
(一) 假設 benchmark 中所有指令數目為 ,請問有效平均週期數(effective CPI)是多少?此 benchmark 的執行時間(execution time)為何?(10 分)
(二) 假設我們設計一個最佳化編譯器,能將 branch 指令集減少 ,並能將 Integer ALU 指令集減少 ,請問有效平均週期數變為多少?請問此最佳化編譯器的效能加速提升(speedup)為何?
依據 Amdahl 法則中的定義,效能加速提升為提升後的執行時間除以提升前的執行時間。(10 分)
(三) 依據原來的 benchmark 指令集表格,假設我們設計一個效能改善方法,能將 floating-point 指令集的 CPI 減少到 4,請問有效平均週期數變為多少?效能加速提升為何?(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查有效平均週期數(effective CPI)與執行時間的計算,以及指令數或 CPI 改變時的效能比較。
各類指令的執行時間由「指令數 × 該類指令 CPI」決定。有效平均週期數是依各類指令所占比例加權的平均:
處理器執行時間為:
效能加速比通常定義為改善前執行時間除以改善後執行時間。本題特別指定「提升後執行時間除以提升前執行時間」,因此依題意計算的數值是傳統加速比的倒數;數值越小代表改善越大。
(一)原始有效 CPI 與執行時間
依各指令類別的比例加權:
因此,有效平均週期數為 個週期/指令。
處理器時脈頻率為 週期/秒,指令總數為 ,故:
(二)編譯器減少 Branch 與 Integer ALU 指令
先將各類指令數換算為原始指令總數的比例。Integer ALU 指令減少 ,Branch 指令減少 :
- Integer ALU:
- Floating-point:
- Load and stores:
- Branches:
最佳化後總指令數為原始指令數的:
因此,最佳化後指令總數為 。各類指令數都以原始指令總數為基準換算,最佳化後的總週期數為:
最佳化後的有效 CPI 應以最佳化後指令總數為分母:
所以有效 CPI 為 。雖然有效 CPI 高於原先的 ,總指令數減少後,總執行時間仍會縮短。
原始執行時間為 秒;最佳化後執行時間為:
第 五 題20 分
給定一個以 byte 為最小單位(byte-oriented)的記憶體分頁管理系統:
- 邏輯位置(logical address)空間共有 128 個分頁(page)。
- 每頁大小為 1,024 bytes。
- 實體記憶體(physical memory)共有 512 個頁框(frame)。
請問在此記憶體分頁管理系統中:
(一) 邏輯位置最少需要多少個 bit 才能描述?
(二) 實體位置最少需要多少個 bit 才能描述?
登入後即可作答並保存紀錄。
核心觀念
分頁式記憶體位址由兩部分組成:頁號(page number)與頁內位移(offset)。邏輯位址以頁號識別分頁;實體位址以頁框號(frame number)識別頁框。頁內位移的位元數則由每頁的 byte 數決定。
解題方法
每頁大小為 bytes,因此頁內位移需要 bit。
(一) 邏輯位置
邏輯空間有 個分頁,頁號需要 bit。加上頁內位移: