考點分析 / 交大 / 113

113 交大資工所硬體考點分析

科目改名為「計算機系統(含作業系統及計算機組織)」、代號換成 8103。前兩題直接考 x86 特權等級與位置無關碼。

題型與配分

科目:計算機系統(含作業系統及計算機組織)(8103),系所班別「資訊聯招」,考試日期 113 年 2 月 2 日第 3 節,全卷 100 分、13 頁、30 題。不可使用計算機、請用答案卡作答。

區段題號配分計分
一、複選題1–2080%(每題 4 分)答對一個選項 +1、答錯一個選項 −1,最多扣至本科目計算機系統 0 分為止;整題未作答不給分
二、題組21–3020%(四個題組各 5 分)各題組下的小題為單選,組內全對才得 5 分

113 年起科目名稱與代號都變了:從「計算機系統(1103)」改成「計算機系統(含作業系統及計算機組織)(8103)」。科目內容沒變。

這一年的題組小題數變少了(A、B 各兩小題,C、D 各三小題,共 10 小題),比 111 年的 15 小題輕鬆,但仍是全對才給分。

OS 與計組的比重:OS 50%(第 1–10 題與題組 A、B)、計組 50%(第 11–20 題與題組 C、D)。

複選題(1–20,80 分)

作業系統(1–10)

  • 第 1 題(4%)|哪些 x86 指令不能在 Ring 3 執行:選項是 MOV CR0, EAX、HLT、LGDT、LIDT。要知道每道指令在做什麼,再判斷使用者程式執行它會不會危害系統。十年唯一一次直接考 x86 特權等級
  • 第 2 題(4%)|哪些 x86 指令是位置無關的:選項是 MOV EAX,1、XOR EBX,EBX、INT 0x80、ADD EAX,1。判準是指令裡有沒有用到絕對位址
  • 第 3 題(4%)|aligned_alloc + mprotect 的行為:程式配置一頁、設成 RWX、寫入字串、再呼叫 mprotect 改權限、然後 printf 印出。四個選項問 程式會不會正常印出、buffer 與區域變數各配置在哪一塊記憶體區、aligned_alloc 回傳值的對齊性質。第一項要仔細看 mprotect 的第三個參數是什麼
  • 第 4 題(4%)|EDF 排程的定義——兩個要點:它依什麼決定優先權、它是不是可搶占的。選項就是拿其他排程演算法的判準來混淆
  • 第 5 題(4%)|x86-64 Linux 的 syscall 慣例——四個選項問 write 的各個引數該放進哪個暫存器、實際寫入的位元組數會不會少於要求、syscall 能不能呼叫核心中的任何函式。要背熟 x86-64 Linux 系統呼叫的暫存器分配,特別是呼叫編號與第一個參數各放哪裡
  • 第 6 題(4%)|程序——四個選項涵蓋 fork() 產生的新程序與原程序的關係、同程序的執行緒共享哪些段、不共享哪些、標準 C 函式庫能不能繞過 OS 讀寫檔案、上下文切換時脈絡存到哪裡。第二項的判斷點是「堆疊」
  • 第 7 題(4%)|I/O 系統——四個選項涵蓋 磨損平衡由 SSD 控制器還是 OS 負責、CPU 收到中斷請求後的動作、哪些裝置會產生中斷、Linux 的 swap 空間現在服務哪一類記憶體頁
  • 第 8 題(4%)|記憶體管理——四個選項涵蓋 產生頁錯誤的是哪一個硬體單元、分頁系統把頁面載入哪一個頁框、slab 配置器服務的對象、多個程序能不能共用一張頁表。第一項要分清 MMU 與記憶體控制器的職責
  • 第 9 題(4%)|虛擬記憶體——四個選項涵蓋 使用者模式的程式能不能自行選擇用實體位址、頁錯誤的處理流程、copy-on-write 的共享範圍與觸發時機、TLB 失誤時的頁表走訪需不需要 OS 介入。最後一項要知道現代硬體的 page walk 能力
  • 第 10 題(4%)|檔案系統——四個選項涵蓋 FCB/inode 裡存了什麼、UNIX 靠不靠副檔名決定開啟方式、多個程序映射同一檔案時的可見性、每個分割區是不是「必須」含檔案系統。最後一項的絕對字眼要檢查

計算機結構(11–20)

  • 第 11 題(4%)|MIPS 的定址模式——四個選項涵蓋 哪幾種定址模式用 I-type、MIPS 總共有幾種定址模式(要能把它們都背出來)、偽直接定址的立即值以什麼為單位、32 位元常數能不能用一道指令載入
  • 第 12 題(4%)|有 bug 的管線處理器:圖上的五級管線沒有 forwarding,在 decode 級偵測資料危障後會停頓。程式為 add $4,$1,$2 → or $0,$1,$1 → addi $2,$2,3 → add $3,$4,$3 → add $1,$4,$0。要判斷第四道指令 writeback 完成後各暫存器的值。題目說這是「有 bug」的設計,先找出 bug 在哪,再追蹤數值。提示:看看程式裡有沒有寫入某個特殊暫存器的指令
  • 第 13 題(4%)|分支與預測——四個選項涵蓋 load 後緊接一個依賴它的條件分支、而分支又提前到 decode 級判斷時要停幾拍(要比較「資料在哪一級才有」與「哪一級需要它」)、分支目標位址的計算式、BTB 的實作形式、同時使用局部與全域歷史的預測器叫什麼
  • 第 14 題(4%)|兩個微架構的 CPI 與執行時間:P1 時脈 1 ns、四類 CPI 為 1/1/4/3;P2 時脈 0.8 ns、四類全是 2,指令組合 30%/25%/20%/25%。先用指令組合加權算出兩者的平均 CPI,再乘上各自的時脈週期才是執行時間——兩個指標的排序可能不一致。其餘選項問 兩者跑相同時脈時 CPI 會不會變、只改善單一類指令能不能追上
  • 第 15 題(4%)|MIPS ISA 設計——四個選項涵蓋 是不是所有 I-type 都對立即值做符號延伸、j 是相對跳躍還是絕對跳躍、分支用 I-type 體現了哪一條設計原則、加入更多 R-type 指令後程式大小的變化。後兩個選項都用了「總是」這種絕對字眼
  • 第 16 題(4%)|AI 加速器與 GPU——四個選項涵蓋 AI 加速器的設計挑戰在哪、邊緣推論與資訊安全的關係、高效能設計下功耗最佳化還重不重要、GPU 受不受功耗限制。後兩項都在測試功耗牆的觀念
  • 第 17 題(4%)|效能與指令數——四個選項涵蓋 演算法複雜度與指令數的關係、同一演算法用不同語言寫的指令數差異、MIPS 這個指標為何不公平、倉儲級資料中心的實際伺服器使用率。最後一項與產業實況有關,憑直覺會判斷錯(115 年第 11 題又考一次)
  • 第 18 題(4%)|乘法器與進位預看加法器:卷上給 3-bit×3-bit 乘法器、32-bit 乘法器與 16-bit 兩層 CLA 三張圖。要判斷 前兩張圖的接線是否正確、多層 CLA 緩解了什麼問題、各訊號線轉為正確值的時序先後關係
  • 第 19 題(4%)|乘除法硬體與浮點——四個選項涵蓋 乘除法共用硬體的位移方向與控制單元該看哪一個位元(選項給的位元編號要逐一核對)、浮點加法對齊小數點時該移動哪一個運算元、加法對整數與浮點是否都滿足結合律、在指定的捨入模式與 guard/round/sticky 下算出 ulp(要實際算)
  • 第 20 題(4%)|(7,4) 漢明碼:位元索引 1–7,同位位元在第 1、2、4 位。要 判斷三個收到的字是否正確、錯在哪一位,並回答 加上整體同位 p4 之後漢明距離變成多少、「p4 偶同位成立但 syndrome 非零」代表哪一種錯誤。與 109 年題組 D 是同一個考點

題組(21–30,20 分)

  • 題組 A(21–22,5%)|緩衝區溢位:char buffer[50] 配 strcpy(buffer, argv[1])。
  • 第 21 題|哪種 argv[1] 會破壞堆疊——判準只有一條:長度有沒有超過緩衝區大小,選項會拿字元的內容來誤導
  • 第 22 題|堆疊被破壞時最不可能受影響的是什麼——要想各個東西存在哪一塊記憶體區、那一塊的權限是什麼
  • 題組 B(23–24,5%)|行主序陣列的走訪順序與頁錯誤:頁面 512 bytes、int 2 bytes。256×256 陣列、只給 128 個頁框、LRU。
  • 第 23 題|Program 1(外層 y、內層 x)的頁錯誤數
  • 第 24 題|兩支程式的頁錯誤數比較
  • 先算出「一頁裝得下幾個 int、剛好是幾列」,再判斷兩支程式哪一支是沿列走、哪一支是跨列跳。頁框數只有頁數的一半,這決定了跳著走的那一支能不能重用
  • 題組 C(25–27,5%)|無 forwarding、無分支預測的五級管線停頓數:暫存器在 decode 後半週期讀、writeback 前半週期寫,分支在 EX 級決定且分支後的取指會停到決定為止。程式是一個跑兩次的迴圈。
  • 第 25 題|整個程式總共插入幾個停頓週期
  • 第 26 題|其中幾個是控制危障造成的
  • 第 27 題|只加上「EX/MEM → ALU 輸入」這一條轉送路徑能消除幾個停頓。要想清楚這一條路徑能救的是哪一個距離的相依
  • 題組 D(28–30,5%)|16-bit 電腦的兩層快取與虛擬記憶體:主記憶體 216 bytes、主快取 28 bytes 直接對映、每區塊 16 words、虛擬位址 16-bit、頁面 0.5 KB = 512 bytes。
  • 第 28 題|哪個組態敘述正確——要算出 頁內偏移與虛擬頁號各佔幾位元、快取的 index 位元數,再判斷 VIPT 是否可行
  • 第 29 題|虛擬定址快取的五次存取(0x8A78、0x8A64、0x8876、0x8FF8、0x8DE7)哪些命中、哪些替換了誰
  • 第 30 題|有無 L2 時的有效 CPI:base CPI 1、5 GHz、lw/sw 佔 25%、主快取每 lw/sw 失誤率 2%、L2 存取 6 ns、全域失誤率 0.2%、失誤罰則 240 ns。ns 要換算成週期數,並注意 0.2% 是全域失誤率

這份考卷的難點

  1. 題組 B 是全卷 CP 值最高但也最容易算錯的一組。 關鍵是先算出「一頁剛好裝幾列」。算出這件事之後,兩個答案就很直接;沒算出來就只能猜。
  2. 第 12 題的 bug 要自己找出來。 要看出「設計錯在哪」而不只是追蹤數值,找不到 bug 就會把數值算成正常處理器的結果。
  3. 第 5 題的 syscall 暫存器分配:呼叫編號與第一個參數放在不同的暫存器,很多人只記得「RAX 是第一個」就直接勾。
  4. 第 3 題的 mprotect:程式看起來很正常,關鍵只在那個權限參數。

準備建議

  • 113 年起科目改名為「計算機系統(含作業系統及計算機組織)」、代號 8103
  • 行主序與頁錯誤的對照(題組 B)是跨校高頻考點。先算「一頁裝得下幾個元素、剛好幾列」
  • 無 forwarding 的停頓數計算(題組 C)要分清三件事:不同距離的 RAW 各停幾拍、分支在哪一級解析罰幾拍,以及「decode 後半讀、writeback 前半寫」這個條件的影響
  • x86 的特權指令與 Ring 等級(第 1、2 題)是 113 年新增的方向,114、115 年可能延續。要認得 MOV CR0、HLT、LGDT、LIDT、IN/OUT 這些指令在做什麼
  • x86-64 的 syscall 慣例(第 5 題):呼叫編號、六個參數、回傳值各放在哪個暫存器
  • 漢明碼(第 20 題)與 109 年題組 D 是同一個考點,兩年一起練
  • MIPS 的定址模式(第 11 題)要能各舉一例
  • 答錯 −1、扣至整科 0 分:把握超過 50% 就值得勾

想看完整逐題詳解?

國立陽明交通大學 106–115 全年度完整詳解共 463 頁,逐題推導。

購買 · NT$ 850 先看試閱

其他年度與考科