考點分析 / 中正 / 113

113 中正資工所硬體考點分析

15 題單選裡有 6 題與 108–111 年一字不差。第 3 題與 106 年成大第 7 題同一道最大可接受頁錯誤率。

題型與配分

科目名稱:計算機系統,系所組別「資訊工程學系-甲組」,第 3 節,全卷 100 分、5 頁、6 大題。

題號配分主題
130%十五個單選(每題 2 分)
210%巢狀 fork + thread_create 的程序與執行緒數
310%需求分頁的最大可接受頁錯誤率
420%快取失誤的 3C 分類(兩種區塊大小)
515%管線為何無法達到無限加速(CPI 與時脈兩方面)
615%MIPS 迴圈的危障、插 NOP 與總週期數

中正硬體的單選題重複率極高:本卷 15 題中至少有 6 題與 108–111 年完全相同(非法位址、Linux 架構、SRTF 的問題、MLFQ 的時間分配、多層頁表的動機、清理髒頁、sandbox 模式)。

OS 與計組的比重:OS 50%(第 1、2、3 題)、計組 50%(第 4、5、6 題)。

第 1 題:十五個單選(30%)

  • (1)|程序產生超出合法範圍的位址,立即結果是什麼——與 109 年第 1(7) 題一字不差
  • (2)|控制器產生中斷時會發生什麼——要能描述中斷向量在這個流程裡的角色
  • (3)|哪個最能描述 Linux 的架構——要能分辨單體式(monolithic)、微核心、模組化三者,以及 Linux 實際上是哪一種的混合。與 108 年第 1(9) 題一字不差
  • (4)|單處理器時代就有、如今讓程式能在 SMP 上利用平行的是什麼技術
  • (5)|FCFS 排程最大的問題——要能說出這個效應的名稱與成因
  • (6)|SRTF 在實務上的根本困難——與 108 年第 1(7) 題一字不差;中央 112 年第 11 題也考過同一個觀念
  • (7)|MLFQ 下 CPU 時間如何在各層之間分配——與 108 第 1(4)、109 第 1(9) 題一字不差,這是第三次出現
  • (8)|為什麼要發展多層頁表——單層頁表的問題出在哪,要能講清楚。與 108 年第 1(3) 題一字不差
  • (9)|為了避免磁碟存取而先花掉一些 CPU 週期,哪一種做法划算——關鍵是「哪一種頁被換出時不必寫回磁碟」。與 108 年第 1(5) 題一字不差
  • (10)|什麼是 buddy system——要能說出它怎麼切割與合併區塊
  • (11)|驗證使用者身分的方式中,哪個「不是」課本提過的——課本只列三種 something you ___,要能背出來
  • (12)|什麼是沙箱(sandbox)模式——與 108 年第 1(10) 題一字不差
  • (13)|檔案系統中的內部碎裂是什麼——要能把內部碎裂與外部碎裂各寫一句,選項就是拿兩者互換
  • (14)|既然 LOOK 的尋道延遲最小,為何還要設計尋道時間更長的其他磁碟排程演算法——效能以外還有另一個目標
  • (15)|哪些是網際網路的應用層協定——要能把 HTTP/FTP/SMTP/POP3 等協定歸到正確的層級

第 2 題:巢狀 fork 與執行緒(10%)

pid_t pid;
pid = fork();
if (pid == 0) {
    fork();
    thread_create(...);
}
fork();
  • (a)|建立了幾個獨特的程序。要逐層畫出程序樹,並標出每個節點走的是哪一條分支。「created」算不算最初的父程序題目沒講清楚,作答時要說明自己的計算方式
  • (b)|建立了幾個獨特的執行緒。thread_create() 被包在 if 區塊裡,要先數出「有哪些程序會走進那個區塊」;另外要說明算不算每個程序原本的主執行緒
  • 陷阱:if 裡面的 fork() 產生的子程序,也會繼續往下執行 thread_create,容易漏算

第 3 題:最大可接受頁錯誤率(10%)

頁表放在暫存器中、頁錯誤服務時間 8 ms(乾淨)或 20 ms(髒)、70% 的被換出頁是髒的、記憶體存取 100 ns,要求有效存取時間 ≤ 200 ns。

  • 考有效存取時間的公式,並反求頁錯誤率的上限
  • 先把兩種頁錯誤服務時間依比例加權,再代入不等式。ms 與 ns 差了六個數量級,單位要統一

這題與成大 106 年第 7 題一字不差——兩校共用同一道 Silberschatz 習題。

第 4 題:快取失誤的 3C 分類(20%)

字位址序列:18, 121, 26, 123, 168, 169, 126, 68, 85, 89(10 個)。

  • (a) 10%|直接對映、10 個區塊、每區塊 1 word。要對每個存取標出是 命中/強制失誤/衝突失誤/容量失誤 之一
  • (b) 10%|每區塊改成 10 words,再做一次
  • 區塊數是 10 而不是 2 的冪,index 要用除法與取餘數算。(b) 要先把字位址換成區塊號再取 index
  • 這題的精髓是「加大區塊利用了空間區域性,但也可能製造新的衝突」,兩種效應同時發生,必須逐一追蹤
  • 與 111 年第 6 題題型完全相同,只換位址序列

第 5 題:管線為何無法無限加速(15%)

CPU 執行時間 = IC × CPI × 時脈週期。N 級管線理想加速比是 N,但 N → ∞ 時無法達到無限加速。

  • (a)|分別說明管線如何透過「CPI」與「時脈週期」影響效能(指令數不變)
  • (b)|列出兩個與「CPI」相關、阻止無限加速的因素
  • (c)|列出兩個與「時脈週期」相關的因素
  • 分類要對:每個因素要歸到正確的那一項(CPI 還是時脈週期),歸錯就答不到點上。可以從危障與管線暫存器/各級切割兩個方向去想

第 6 題:MIPS 迴圈的危障與 NOP(15%)

LOOP: lw   $t0, -4($s0)      # $s0 初值 400
      sw   $t0, 996($s0)
      addi $s0, $s0, -4
      bne  $s0, $zero, LOOP
      trap
  • (a)|找出所有管線危障(五級 IF/ID/EXE/MEM/WB)。資料危障與控制危障都要找
  • (b)|無任何危障硬體(無互鎖、無預測、無 forwarding)時,在不改變指令順序的前提下插入最少的 NOP。NOP 數取決於「暫存器檔能不能同週期先寫後讀」與「分支在哪一級解析」,作答時要註明假設
  • (c)|執行 (b) 的程式碼共需幾個週期(到 trap 完成 WB 為止)。要先算出迴圈跑幾次,再把 (b) 插的 NOP 一起算進去,最後別忘了管線填滿與排空的週期

這份考卷的難點

  1. 第 4 題要對同一組位址做兩次完整的 3C 分類。 區塊大小改變之後,有些原本失誤的會變成命中、有些原本不衝突的反而開始撞,必須逐一追蹤。
  2. 第 6(c) 題要先算出迴圈跑幾次。 $s0 從 400 開始每次減 4、到 0 為止——邊界要算清楚,差一的錯誤在這裡特別常見。
  3. 第 5 題要分別從 CPI 與時脈週期兩個方向回答,而且各要兩個因素,分類錯了就沒分。
  4. 第 2 題的 fork 樹:thread_create 也在 if 區塊裡,要看清楚有哪些程序會執行到它。

準備建議

  • 中正硬體的單選題庫重複率極高。 113 年 15 題裡至少 6 題與 108–111 年完全相同。把 108–112 的所有單選題整理成一份題庫背熟,113 年的 30 分先拿一半
  • 第 3 題與成大 106 年第 7 題一字不差——兩校共用 Silberschatz 的習題。這代表課本習題本身就是最好的考古題
  • 快取失誤的 3C 分類(第 4 題)是中正連兩年的考點(111 年第 6 題、113 年第 4 題)。要練到能:算 index → 追蹤命中失誤 → 判斷是強制、容量還是衝突
  • 管線無法無限加速的理由(第 5 題)要能分成 CPI 類與時脈週期類
  • 插 NOP 的規則(第 6 題):要清楚 NOP 數跟哪些假設有關,而且要先算出迴圈次數才能算總週期
  • 中正十年無倒扣,選擇題全部都要猜完

想看完整逐題詳解?

國立中正大學 108–115 全年度完整詳解共 222 頁,逐題推導。

購買 · NT$ 850 先看試閱

其他年度與考科