考點分析 / 台大 / 110

110 台大資工所硬體考點分析

答案必須抄進卷首指定的表格、寫在表格外一律不計分。OS 段佔前 5 題 50 分,計結段的偽共享與 forwarding 訊號值最難。

題型與配分

科目:計算機結構與作業系統(B),題號 396、節次 2,全卷 100 分、6 頁、8 大題。試題隨卷繳回。

區段題號配分主題
作業系統1–550%(各 10 分)OS 架構分層、程序記憶體佈局、排程、I/O 緩衝、信號
計算機結構6–850%(20+25+5)快取一致性與偽共享、RISC-V 管線、綜合判斷

這一年的作答規定是台大硬體十年裡最嚴格的:

  • 只有答案卷「非選擇題作答區」的第一頁計分,其餘全部視為草稿
  • 必須把卷首的表格完整抄到第一頁,不在表格內的內容一律視為計算過程、不計分
  • 表格裡有多格標著「此處不作答」——抄錯格位等於作廢

也就是說,這一年只填答案不寫過程,而且填錯位置就沒分。這與 106–109 的「只寫答案不給分」完全相反。

第 8 題明訂「全對才給分」,是全卷唯一有此規定的題目。

作業系統考點(1–5,50 分)

  • 第 1 題(10%)|OS 架構分層:卷上給一張圖,四個虛線框 A(應用層)、B(系統服務層)、C(核心層)、D(硬體層)。要判斷:
  • (a) 2%|MS-DOS(單體式)的記憶體管理服務在哪一層
  • (b) 3%|Linux(分層式)的標準 I/O 函式庫在哪一層
  • (c) 2%|容器(虛擬化)的排程服務在哪一層
  • (d) 3%|Mach/QNX(微核心)的裝置驅動程式在哪一層
  • 四小題對應四種 OS 架構,要清楚每種架構把服務放在使用者空間還是核心空間。(c) 的關鍵是容器與 VM 在「有沒有自己的核心」上的差別
  • 第 2 題(10%)|程序的四種記憶體脈絡在圖上的位置:stack segment、text segment、未初始化資料段(BSS)、free space。圖上從 0xFFFFFFFF 的環境變數與引數往下排。要背熟程序位址空間各區段由高到低的順序
  • 第 3 題(10%)|五個程序、五種排程演算法,全部問「PID 5 的完成時間」。給 PID、優先權、到達時間、CPU burst、I/O burst(I/O 發生在不同裝置上,且總是在第一個時間單位之後才開始):
  • (a) 2%|RR,量子 3
  • (b) 2%|非搶占優先權(數字越小優先權越高)
  • (c) 2%|搶占式 SJF
  • (d) 2%|搶占式 LJF,且 PID 5 改成在 time 16 到達
  • (e) 2%|搶占式 LJF,且 PID 5 的 CPU burst 改成 8
  • 五個小問要畫五張甘特圖,而且每張的參數都不同。有 I/O burst 介入,程序會離開再回來,是全卷最耗時的一題。「I/O 在第一個時間單位之後才開始」這個條件很容易漏看
  • 第 4 題(10%)|I/O 緩衝模型的效能比較:基準線是「無緩衝 I/O、4 KB 緩衝區、不做磁碟同步、用 write()」。五個小問各用 (A) 較小/(B) 較大/(C) 相近 回答:
  • (a) 無緩衝 + 4 KB + fsync() 的 clock time
  • (b) 無緩衝 + 8 KB + fsync() 的 User CPU time
  • (c) 緩衝 I/O、行緩衝、puts() 的 System CPU time
  • (d) 緩衝 I/O、全緩衝、puts() 的 User CPU time
  • (e) 緩衝 I/O、全緩衝、puts()+fflush()+fsync() 的 System CPU time
  • 核心觀念是分清 user time、system time、clock time 各自在量什麼:每一小題都要先想「這個改變影響的是函式庫層的工作、系統呼叫的次數,還是等待磁碟的時間」。這是 Stevens《APUE》的經典實驗
  • 第 5 題(10%)|看信號處理程式碼回答五個小問(用 sigaction/sigprocmask/sigsuspend):
  • (a) 2%|程序第一次啟動後會停在哪一行
  • (b) 2%|停住時收到 SIGUSR2 會怎樣——要回去看 waitmask 擋掉的是哪一個訊號
  • (c) 2%|SIGUSR2 被捕捉時的信號遮罩是什麼——要想清楚 sigsuspend 期間的遮罩是哪一個,以及處理常式執行時系統會額外加上什麼
  • (d) 2%|SIGINT 被送出並捕捉後從哪一行恢復
  • (e) 2%|把三個 sigaction() 換成 signal() 之後,由 SIGINT 恢復後的遮罩是什麼——這一小問考的是 signal() 與 sigaction() 的語意差異

計算機結構考點(6–8,50 分)

  • 第 6 題(20%)|SMP 的寫入無效化窺探式快取一致性與偽共享:每個處理器有 4 KiB 直接對映、實體定址、16 bytes/line 的 L1。三個整數陣列 A、B、C 連續擺放,A 起始於 0x0000A000。P0 與 P1 各跑 for (i=4*Pn; i<4*(Pn+1); i++) C[i]=A[i]+B[i];:
  • (a) 5%|tag 陣列的總位元數。題目只問 tag 陣列,要不要計入 valid 位元要看題意並加以說明
  • (b) 5%|提高關聯度能不能減少這段程式的失誤——要判斷 A、B、C 三個陣列在直接對映下會不會對映到同一組。陣列的起始位址與陣列大小是判斷依據
  • (c) 5%|最壞情況會有幾次一致性失誤(c1)、其中幾次是偽共享(c2)。要算出每條 cache line 能放幾個 int,再看兩個處理器負責的索引範圍會不會落進同一條 line
  • (d) 5%|改成 32 bytes/line(快取仍 4 KiB)之後的一致性失誤數(d1)與偽共享數(d2)。與 (c) 對照著做:line 變大之後,兩個處理器的資料分佈會怎麼變
  • 第 7 題(25%)|RISC-V 五級管線,卷上給電路圖與各邏輯區塊的延遲(I-Mem 280 ps、Register File 180 ps、ALU 200 ps、Control Unit 50 ps…)與 R-type 指令格式,程式碼為 lw x10,100(x5) → add x2,x10,x2 → add x2,x2,x4 → sub x6,x2,x6:
  • (a) 10%|哪一級決定時脈週期。要把每一級實際經過的元件延遲加總再比大小,不能只看單一元件
  • (b) 5%|第一道 lw 在 MEM 級時,ID 級(b1)與 EX 級(b2)分別是哪一道指令(填指令編號)。先檢查 lw 與緊接的指令之間有沒有需要停頓的相依,停頓會讓後面的指令往後推
  • (c) 5%|sub(#4)在 EX 級時,ForwardA(c1)與 ForwardB(c2)該設什麼值。要知道 forwarding 單元的控制訊號編碼,並判斷兩個來源暫存器各自與前面哪一道指令相依、距離多少
  • (d) 5%|sub 的四條控制訊號:RegWrite、MemtoReg、MemRead、MemWrite 各是多少。依 R-type 指令的行為逐一判斷
  • 第 8 題(5%,全對才給分)|四個敘述哪些正確:
  • (1) MIPS 值較高的處理器效能是不是一定較好
  • (2) LRU 是不是已被證明為最佳置換策略——要想清楚「最佳」在置換演算法裡指的是哪一個
  • (3) 向量指令對哪一類應用有益
  • (4) SMT 如何提高 CPU 使用率——要能說出它與細粒度/粗粒度多執行緒的差別

這份考卷的難點

  1. 作答規定本身就是陷阱。 必須先花時間把卷首那張含「此處不作答」空格的表格完整抄到答案卷第一頁,抄錯位置或寫到第二頁一律不計分。這是台大硬體十年裡唯一一次只看答案、不看過程。
  2. 第 6(c)(d) 題的偽共享要真的算 cache line 邊界。 兩個小題用了不同的 cache line 大小,就是要讓你比較兩種情況下資料分佈的差異——偽共享出不出現,完全取決於這條邊界落在哪裡。這組對照是整題的設計核心。
  3. 第 3 題要畫五張不同參數的甘特圖,而且每個程序都有 I/O burst(會離開 CPU 再回到就緒佇列)。10 分卻要做五次完整模擬,時間成本極高。
  4. 第 5(e) 題的 signal() 對 sigaction():兩者在遮罩語意上的差異。這是 APUE 反覆強調但課堂上常被跳過的細節。

準備建議

  • 進場先讀作答規定。 台大硬體十年裡,106–109 是「不寫過程只能拿部分分數」,110 年反過來變成「只有表格內的答案計分」。規則每年不同,看錯就全盤皆輸
  • 偽共享(false sharing)是台大最愛的一致性考點:要練到能從陣列起始位址、cache line 大小、各處理器負責的索引範圍判斷哪幾條 line 被兩個核心同時寫入
  • Forwarding 單元的控制訊號編碼要背(ForwardA/ForwardB 的三種值各代表從哪裡取資料)。113 年也考
  • 程序記憶體佈局(第 2 題)是送分題,也常出現在其他學校
  • APUE 的兩個經典實驗要讀:I/O 緩衝對 user/system CPU time 的影響(第 4 題)、sigsuspend 與信號遮罩的完整流程(第 5 題)。這兩題合計 20 分,而且課本以外幾乎找不到
  • 「全對才給分」的第 8 題四個敘述都是課本正文等級,MIPS 指標與「最佳」置換演算法是兩個固定陷阱

想看完整逐題詳解?

國立臺灣大學 106–115 全年度完整詳解共 309 頁,逐題推導。

購買 · NT$ 850 先看試閱

其他年度與考科