108 中正資工所硬體考點分析
10 題單選 20 分外全是申論。第 3 題直接印出 SPEC CPU 2006 的記憶體存取熱圖要你解讀,第 6 題算卷積的最小延遲。
題型與配分
科目名稱:計算機系統,系所組別「資訊工程學系-甲組」,第 3 節,全卷 100 分、6 頁、6 大題。
| 題號 | 配分 | 主題 |
|---|---|---|
| 1 | 20% | 十個單選(每題 2 分) |
| 2 | 5% | 「既非死結也非安全」的狀態是否存在 |
| 3 | 8% | 解讀 SPEC CPU 2006 的記憶體存取熱圖 |
| 4 | 7% | 巢狀 fork 後變數 c 有幾份副本、值各是多少 |
| 5 | 10% | Solaris 分派表 |
| 6 | 10% | CNN 卷積的最小延遲時間 |
中正的作答規定:入場後於考試開始 40 分鐘內不得離場(與中正數學相同)。卷面沒有任何倒扣的標示——中正硬體十年都沒有倒扣。
配分不足 100:OCR 可辨識的題目合計 60 分,卷子第 2 頁在掃描中為空白頁,實際還有其他題目。本頁以可辨識的部分為準。
OS 與計組的比重:OS 約 70%(第 1、2、4、5 題)、計組約 30%(第 3、6 題)。中正硬體的 OS 比重是八校裡最高的。
第 1 題:十個單選(20%)
十個小題的考點:
- (1)|哪個機制用來追蹤磁碟上的空閒空間、同時還兼做其他事。考幾種空閒空間管理與檔案配置方式的差別,關鍵在「同時還兼做其他事」
- (2)|哪種 RAID 組態提供冗餘但額外磁碟成本最高。要能算出各級 RAID 的冗餘成本
- (3)|為什麼發展多層頁表。考單層頁表的問題出在哪,要分清「頁表太大」造成的是哪一種碎裂
- (4)|MLFQ 下 CPU 時間如何在各佇列間分配
- (5)|在虛擬記憶體中找空閒頁框時,花 CPU 週期避免磁碟存取,哪個是值得的。考頁面置換的背景工作
- (6)|哪個「不是」死結發生的必要條件。要分清「必要條件」與「處理方法」
- (7)|SRTF 的問題是什麼。SRTF 有不只一個常被提到的問題,要看清楚選項的具體描述與題目用的是「the problem」
- (8)|允許搶占的代價是什麼
- (9)|哪個最能描述 Linux 的架構。考 OS 結構的分類(單體式、微核心、分層、模組化)
- (10)|什麼是「沙箱模式」
申論題
- 第 2 題(5%)|系統有沒有可能處於「既非死結、也非安全」的狀態?請說明。 考 safe、unsafe、deadlock 三種狀態之間的包含關係。這是死結章節最重要的一個觀念,中央硬體十年考了好幾次、中正這裡也考。要說明的是「為什麼」,只寫有或沒有拿不到分
- 第 3 題(8%)|解讀 SPEC CPU 2006 的記憶體存取熱圖:卷上印出 cactusADM、libquantum、xalan、omnetpp、astar 五個 benchmark 的 RD/WD 存取圖(x 軸是取樣時間、y 軸是位址空間中的不同頁面)。
- (a) 4%|描述 astar 的程序行為
- (b) 4%|描述 cactusADM 的行為
- 這題沒有標準答案,考的是「能不能從實測圖看出區域性與工作集」。要從圖上找出存取範圍的寬窄、隨時間有沒有相位變化、是循序掃描還是集中在少數頁,並用正確的術語描述
- 第 4 題(7%)|巢狀 fork 後變數
c有幾份副本、值各是多少:
int child = fork();
int c = 5;
if (child == 0) { c += 5; }
else { child = fork(); c += 10; if (child) { c += 5; } }
- 一定要畫出程序樹,並逐一追蹤每個程序走了哪些分支
- 陷阱是第二次
fork()的位置——它不是在所有程序裡都會執行,不能直接套 2n 的公式 - 另外要注意
c = 5這一行在第一次 fork 之後,以及child變數在第二次 fork 時被覆寫 - 第 5 題(10%)|Solaris 分派表:
- (a) 4%|優先權 10 與 55 的時間量子各是多少毫秒
- (b) 3%|優先權 35 的執行緒用完整個量子而未阻塞,新優先權是多少
- (c) 3%|優先權 35 的執行緒在量子用完前因 I/O 阻塞,新優先權是多少
- (b)(c) 要查的是表上不同的欄位,查錯欄就全錯。這題與成大 112 年第 2 題是同一張表、同樣的問法
- 第 6 題(10%)|CNN 卷積的最小延遲時間:3×4 輸入圖、2×2 卷積核(四個參數 w、x、y、z)、輸出 2×3 特徵圖。已知兩輸入加法器延遲 D_ADD = 0.1 × D_MUL,輸入與核參數在計算前已載入,求一次卷積運算的最小延遲(以 D_MUL 表示)。
- 要先算出一個輸出點需要幾次乘法、幾次加法
- 「最小延遲」的關鍵在於哪些運算可以同時做——乘法之間、加法之間的相依關係要想清楚
- 加法的組合方式會影響層數,這是最容易少想一步的地方
這份考卷的難點
- 第 3 題要從實測圖判讀程式行為。 這不是課本題,而是研究論文裡的圖表。沒有標準答案,給分看你能不能說出「區域性、工作集大小、存取相位」這些正確的術語並對應到圖上的特徵。
- 第 4 題的巢狀 fork 很容易直接套公式。 第二次 fork 只在某一個分支裡,套 2n 會算錯程序數,後面每個
c的值也跟著錯。 - 第 6 題要看出加法可以怎麼排。 題目提示「可以平行執行乘法與加法以最小化延遲」,但沒有明說加法的結構,要自己想到最佳的組合方式。
- 第 1(7) 題的 SRTF 有兩個常見問題,要看清楚選項描述的是哪一個,以及題目用的是「the problem」。
準備建議
- 中正硬體的 OS 比重是八校最高(108 年約 70%)。Silberschatz 要讀得比 Patterson & Hennessy 更熟
- safe/unsafe/deadlock 的包含關係(第 2 題)是跨校最高頻的死結考點:中央考好幾次、中正也考。要能用一兩句話講清楚三者的關係,並舉出例子
- fork 的程序數與變數副本(第 4 題)要練到能畫出程序樹。重點是看清楚每個 fork 在哪個分支裡
- Solaris 分派表(第 5 題)與成大 112 年第 2 題完全同型,兩校一起練。要理解表上每一欄背後的 MLFQ 精神
- 平行運算的延遲計算(第 6 題):n 個數相加的最短延遲怎麼算,這在 CNN、矩陣運算、平行歸約都會用到
- RAID 各級的冗餘成本(第 1(2) 題)要能逐級算出
- 中正十年都沒有倒扣,所以每一題都要作答,選擇題也要全部猜完