115 年 國立中央大學資訊工程學系碩士班《作業系統與計算機組織》
第 1 題
Which of the following statements are TRUE regarding computer architecture?
A. A typical MIPS arithmetic instruction can directly operate on operands located in memory.
B. Fixed instruction length simplifies the instruction decoding logic.
C. A RISC architecture typically has fewer general-purpose registers compared to a CISC architecture, such as x86.
D. Using fewer addressing modes generally simplifies the datapath control logic.
E. A RISC architecture's procedure calls usually require a stack in memory to store the return address and saved registers if the register file is insufficient.
登入後即可作答並保存紀錄。
核心觀念
本題旨在考驗計算機結構(Computer Architecture)中 RISC(精簡指令集計算機)與 CISC(複雜指令集計算機)的設計哲學與差異,涵蓋以下四大核心概念:
- Load-Store 架構與定址模式:RISC 架構(如 MIPS)規定算術與邏輯指令之操作數必須位於暫存器中,記憶體存取僅能透過專屬的 Load/Store 指令完成;簡化定址模式可大幅降低資料路徑(Datapath)與控制邏輯(Control Logic)的複雜度。
- 指令格式設計原則(Simplicity favors regularity):固定指令長度(Fixed Instruction Length)可使指令解碼器(Instruction Decoder)預先掌握操作碼與欄位位置,顯著簡化解碼邏輯。
- 暫存器檔案(Register File)配置:RISC 為了配合 Load-Store 架構並降低主記憶體存取頻率,通常配置較多數量的通用暫存器(General-Purpose Registers)。
- 程序呼叫與堆疊維護(Procedure Call & Stack Frame):當遭遇巢狀呼叫、遞迴或暫存器數量不足時,系統必須將傳回位址(Return Address)及需要保留的暫存器寫入記憶體中的堆疊(Stack)進行保存。
解題方法
從 RISC(以 MIPS 為代表)相較於 CISC(以 x86 為代表)的硬體設計哲學與硬體實作細節進行比對分析:
- 運算指令限制:檢視 MIPS 是否允許 Memory-to-Memory 或 Register-Memory 類型的算術運算。
- 指令解碼成本:評估固定指令長度(如 MIPS 的 )對於控制單元(Control Unit)與硬體電路設計帶來的效益。
- 暫存器數量對比:比較 RISC(如 MIPS-32/RISC-V 均擁有 32 個通用暫存器)與傳統 CISC(如 x86-32 僅有 8 個通用暫存器)的硬體配置習慣。
- 程序呼叫機制:分析非葉端程序(Non-leaf Procedure)發生時,鏈結暫存器(Link Register)及被呼叫者儲存暫存器(Callee-saved Registers)在暫存器資源不足時的保存機制(Register Spilling)。
選項分析
-
A. 錯誤
- 題目原文:A typical MIPS arithmetic instruction can directly operate on operands located in memory.
- 詳細說明:MIPS 採用嚴格的 Load-Store 架構。所有算術與邏輯指令(例如
add,sub,and,or)的操作數都必須儲存於**暫存器(Registers)**內,無法直接對記憶體(Memory)位址中的資料進行運算。若要對記憶體資料進行算術處理,必須先透過lw(Load Word)指令將資料載入暫存器,運算完成後再以sw(Store Word)指令存回記憶體。允許算術指令直接操作記憶體為典型 CISC(如 x86)的特徵。
-
B. 正確
- 題目原文:Fixed instruction length simplifies the instruction decoding logic.
- 詳細說明:符合 RISC「規則化促進簡潔(Simplicity favors regularity)」的設計原則。
第 2 題
Which of the following comparisons between single-cycle and multi-cycle implementations are TRUE?
A. The clock cycle time in a single-cycle implementation is determined by the longest possible path in the logic.
B. A multi-cycle implementation allows functional units (like the ALU) to be reused within a single instruction execution.
C. Single-cycle implementations generally have a higher CPI than multi-cycle implementations.
D. The control unit of a single-cycle implementation is typically purely combinational, whereas a multi-cycle implementation requires a sequential state machine.
E. Floating-point operations are more efficiently handled in a multi-cycle datapath than a single-cycle datapath due to varying latency.
登入後即可作答並保存紀錄。
核心觀念
本題考查計算機組織中「單週期(Single-Cycle)」與「多週期(Multi-Cycle)」處理器架構的設計原理、效能指標(CPI 與 Clock Cycle Time)、硬體資源複用、控制單元實作,以及對具變動延遲(Varying Latency)之複雜運算(如浮點數運算)的支援能力。
主要涉及的效能評估公式為 CPU 執行時間(CPU Time):
兩種架構的關鍵特性對比如下:
-
單週期(Single-Cycle):
- CPI:所有指令固定為 。
- Clock Cycle Time ():由關鍵路徑(Longest Path / Critical Path)延遲最長的指令(通常為載入指令
lw)決定。 - 硬體資源:無法在同一指令執行期間重複使用功能單元(Functional Units),故需獨立的指令記憶體(Instruction Memory)、資料記憶體(Data Memory)與多個算術邏輯單元/加法器。
- 控制單元:為純組合邏輯電路(Combinational Logic),僅依據當前指令的 Opcode / Funct 欄位即可直接輸出控制訊號。
-
多週期(Multi-Cycle):
- CPI:依指令複雜度而異,不同指令耗費不同的週期數(平均 CPI )。
- Clock Cycle Time ():由單一功能元件的最長延遲時間決定(週期較短且固定)。
- 硬體資源:功能單元可在同一指令的不同時脈週期內重複使用(如 ALU 可在第 1 週期計算 ,第 3 週期執行資料運算;記憶體可兼作指令與資料記憶體)。
- 控制單元:控制訊號取決於「當前指令 Opcode」與「當前執行步驟(狀態)」,必須採用包含狀態暫存器的順序邏輯電路,即有限狀態機(Finite State Machine, FSM)。
解題方法
針對題目問及「單週期與多週期比較的正確敘述」,依據物理結構、時脈決定機制、控制邏輯形態以及 CPU 效能三要素(IC、CPI、)進行逐項判斷:
- 檢驗時脈週期(Clock Cycle Time)決定方式。
- 檢驗功能單元(Functional Unit)之資源複用(Reuse)機制。
- 檢驗每指令週期數(CPI)大小關係。
- 檢驗控制單元的電路形態(Combinational vs. Sequential / FSM)。
- 檢驗變動延遲指令(如浮點數運算 Floating-Point Operations)在兩種架構下的執行效率。
選項分析
- (A) 正確
- 說明:單週期實作中,一條指令必須在單一 Clock Cycle 內完整完成指令擷取(Fetch)、解碼(Decode)、執行(Execute)、記憶體存取(Memory Access)與暫存器寫回(Write-back)。
第 3 題
Consider the code sequence:
add x1, x2, x3
sub x4, x1, x5
In a 5-stage MIPS pipeline with full forwarding logic, which of the following are TRUE?
A. A bubble (stall) is required between the add and sub instructions.
B. The result of the add instruction is forwarded from the EX/MEM pipeline
register to the ALU input for the sub instruction.
C. If forwarding were not implemented, the pipeline would need to stall for 2
cycles to avoid the hazard (assuming register write in the first half, read in the
second half).
D. Forwarding eliminates all data hazards, including those caused by Load-Use
dependencies.
E. The hazard detected here is a RAW (Read After Write) hazard.
登入後即可作答並保存紀錄。
觀念與選項分析
本題探討 5 階段 MIPS 管線(IF, ID, EX, MEM, WB)中,暫存器 所產生的資料衝突(Data Hazard)與前傳(Forwarding)機制。
-
A. 錯誤
add與sub皆為 R-type 指令。在具備完全前傳(Full Forwarding)邏輯下,ALU 到 ALU 的資料衝突可被完全消除,不需要插入任何氣泡(0 stall)。 -
B. 正確
add指令於 EX 階段計算完成後,結果保存在EX/MEM管線暫存器中。下一個週期sub進入 EX 階段時,前傳邏輯會將EX/MEM暫存器中的值直接傳送至 ALU 的輸入端。
第 4 題
Which of the following statements about branch prediction are TRUE?
A. Static branch prediction assumes a branch is always taken or always not taken based on the instruction type or direction.
B. A 1-bit dynamic branch predictor will always mispredict a loop exit branch if the loop executes many times.
C. A 2-bit saturating counter predictor changes its prediction immediately after a single misprediction.
D. Branch Target Buffers store the target address of branches to allow fetching from the target in the IF stage.
E. Delayed branching is a hardware technique where the compiler fills the slot after a branch with an independent instruction.
登入後即可作答並保存紀錄。
核心觀念
本題考查計算機組織與架構(Computer Organization and Architecture)中**管道化(Pipelining)與分支預測(Branch Prediction)**機制,主要涵蓋以下觀念:
- 靜態分支預測(Static Branch Prediction):在執行期前依據指令型態、分支方向(如 Backward Taken, Forward Not Taken, BTFN)或編譯器提示進行固定預測。
- 動態分支預測(Dynamic Branch Prediction):
- 1-bit 預測器(1-bit Dynamic Predictor):根據上一次的分支結果更新預測狀態。對於重複執行的迴圈,在迴圈跳出(Loop Exit)時會發生預測錯誤。
- 2-bit 飽和計數器預測器(2-bit Saturating Counter Predictor):具備遲滯性(Hysteresis),需要連續發生兩次預測錯誤才會改變預測輸出(從 Taken 變更為 Not Taken,或反之)。
- 分支目標緩衝區(Branch Target Buffer, BTB):位於 Instruction Fetch (IF) 階段的快取結構,儲存分支指令的目標位址(Target Address),使處理器可在 IF 階段直接取得目標指令位址。
- 延遲分支(Delayed Branch):屬於**軟體/編譯器(Compiler-based)**處理控制危害(Control Hazard)的技術,由編譯器將獨立指令填入分支延遲槽(Branch Delay Slot)。
解題方法
針對題目中五個與分支預測相關的敘述,分別依據電腦結構標準規範進行真偽性判定:
- 靜態預測定義:確認是否單純基於指令本身資訊(指令型態或分支方向)做預測。
- 1-bit 預測器特徵:分析迴圈執行 次後,預測器在迴圈結束(Exit)點的狀態變化與結果。
- 2-bit 飽和計數器狀態轉移:分析狀態機(State Machine),確認單次誤預測是否會立即轉變預測輸出。
- BTB 運作階段:確認 BTB 儲存的內容(Target Address)與作用階段(IF Stage)。
- 延遲分支劃分:區分延遲分支的主導者為硬體還是軟體/編譯器。
選項分析
-
A. 正確。
靜態分支預測(Static Branch Prediction)不依據執行期的歷史紀錄,而是單純根據指令本身的靜態資訊進行預測。常見策略包含:一律預測為 Taken 或 Not Taken、依據指令型態預測,或是依據分支方向(例如:往回跳的 Backward branch 預測為 Taken,往前跳的 Forward branch 預測為 Not Taken,即 BTFN 策略)。故本選項正確。 -
B. 正確。
若迴圈執行多次( 次,其中 ),在第 到第 次疊代中,1-bit 預測器的歷史位元皆會被更新為 Taken。當第 次執行完畢準備跳出迴圈(Loop Exit)時,實際的分支結果為 Not Taken,但預測器仍會根據前一次的紀錄預測為 Taken。
第 5 題
Regarding exceptions in a pipelined processor:
A. "Precise exceptions" imply that the processor state can be recovered exactly as it was before the faulting instruction executed.
B. When an exception occurs, the pipeline must flush instructions that occurred after the faulting instruction.
C. Handling exceptions is easier in a pipelined processor than in a single-cycle processor.
D. The EPC (Exception Program Counter) stores the address of the instruction that caused the exception.
E. External interrupts (like I/O requests) are synchronous events tied to the CPU clock.
登入後即可作答並保存紀錄。
核心觀念
本題考查流水線處理器(Pipelined Processor)中異常(Exception)與中斷(Interrupt)的處理機制,包含以下核心理論與定義:
- 精確異常(Precise Exception):定義處理器遭遇異常時,狀態是否與單步執行一致。要求異常發生時,故障指令(Faulting Instruction)之前的指令均已執行完畢並更新狀態,而故障指令本身及之後的所有指令均未對處理器狀態(如暫存器、記憶體)造成永久性修改。
- 流水線沖刷(Pipeline Flush):當異常發生時,在程式順序上位於故障指令之後(已進入流水線前段)的指令必須被丟棄(Flush),以確保處理器狀態不被污染。
- 單週期與流水線異常處理複雜度:流水線因多道指令重疊執行,可能在不同階段同時引發異常,且需維持程式順序並精確撤銷前段指令,故異常處理機制比單週期處理器複雜許多。
- 異常程式計數器(EPC, Exception Program Counter):專用暫存器,用於儲存引發異常之指令的記憶體位址,以便異常處理程式(Exception Handler)結束後能精確返回原程式繼續執行。
- 同步(Synchronous)與異步(Asynchronous)事件:
- 同步事件:由 CPU 內部指令執行直接引發(如算術溢位 Overflow、非法指令 Invalid Instruction、系統呼叫 Syscall、缺頁 Page Fault)。
- 異步事件:由 CPU 外部硬體獨立觸發(如 I/O 請求、定時器中斷 Timer Interrupt、電源故障 Power Failure),其發生時間點與 CPU 目前執行的指令獨立無關。
解題方法
本題切入點為比對電腦中斷與異常處理的規範標準:
- 驗證精確異常定義:比對精確異常對處理器狀態還原(State Recovery)的要求。
- 分析流水線 Flush 方向:確認發生異常時,應被 Flush 的指令為程式順序中在故障指令之後(Younger)的指令。
- 比較架構複雜度:單週期處理器同一時間僅有一道指令,無指令重疊與搶佔問題;流水線處理器需處理多階段重疊與多重異常衝突,處理難度極高。
- 檢視 EPC 功能:確認 EPC 在硬體架構中紀錄故障指令位址的作用。
- 區分事件觸發來源:根據事件是由內部指令解碼執行引發還是外部硬體獨立傳送訊號,區分 Synchronous 與 Asynchronous。
選項分析
-
A. 正確。
- 說明:根據精確異常(Precise Exception)的標準定義,處理器在發生異常時,必須確保故障指令(Faulting Instruction)執行前的處理器狀態(暫存器與記憶體內容)被完整保留或可精確還原,且故障指令本身及其後續指令不得修改任何處理器狀態。因此,「處理器狀態可被精確還原至故障指令執行前」完全符合精確異常的定義。
-
B. 正確。
- 說明:在流水線中,當某道指令在後期階段(例如 EX 或 MEM 階段)偵測到異常時,在程式順序(Program Order)上位於該故障指令之後的指令(目前尚在 IF、ID 階段)已
第 6 題
Regarding Virtual Memory and Translation Lookaside Buffers (TLBs) in a modern hierarchical memory system, which statements are correct?
A. A TLB miss implies a Page Fault must strictly occur.
B. Huge Pages (e.g., 2MB or 1GB pages) generally reduce TLB miss rates by increasing TLB reach.
C. In a virtualized cloud environment using Extended Page Tables (EPT) or Nested Paging, a TLB miss requires a two-dimensional page walk, increasing latency compared to native execution.
D. Virtually Indexed, Physically Tagged (VIPT) L1 caches allow the cache lookup to proceed in parallel with the TLB translation.
E. None of the above.
登入後即可作答並保存紀錄。
核心觀念
本題考驗現代計算機架構與作業系統中虛擬記憶體(Virtual Memory)、TLB(Translation Lookaside Buffer)、巨型分頁(Huge Pages)、**硬體輔助虛擬化轉譯(EPT / Nested Paging)以及快取定址與轉譯並列機制(VIPT Cache)**等核心主題。
關鍵定義與原理如下:
- TLB Miss 與 Page Fault 的權責分離:TLB 為頁表項(PTE)的高速快取。TLB miss 僅代表轉譯資料未在 TLB 快取中命中,需走頁表巡訪(Page Table Walk);只有當頁表項標示該頁面未存於實體記憶體中(Valid Bit = 0)時,才會引發 Page Fault。
- TLB Reach(TLB 覆蓋範圍):定義為 。採用 Huge Pages 可在不增加 TLB 條目數前提下大幅擴大 TLB Reach,降低高記憶體存取應用程式的 TLB Miss Rate。
- 兩維頁表巡訪(Two-Dimensional Page Walk):在虛擬化環境中,Guest OS 將 Guest Virtual Address (GVA) 轉譯為 Host Physical Address (HPA) 時,Guest 頁表本身亦位於 GPA,存取時需經由 Host 頁表轉譯為 HPA。若兩者皆採用 4 層頁表,發生 TLB Miss 時最多需執行 次記憶體存取。
- VIPT(Virtually Indexed, Physically Tagged):利用頁內偏移量(Page Offset)在虛擬位址與實體位址中完全相同的特性,使用虛擬位址的 Index 位元進行快取尋址,同時將虛擬頁號送入 TLB 進行實體頁號轉譯,使快取尋址與位址轉譯得以平行執行,大幅降低 L1 Cache 存取潛伏時間(Latency)。
解題方法
本題為觀念綜合比較題,切入點為建立記憶體轉譯階層與硬體/作業系統的分工關係:
- 釐清 TLB Miss(硬體快取層級)與 Page Fault(作業系統分頁頁面層級)的差異與順序。
- 利用 TLB Reach 的數學關係式評估 Huge Page 對 TLB Miss Rate 的影響。
- 分析 Nested Paging / EPT 的兩維轉譯(2D Page Walk)開銷。
- 驗證 VIPT L1 Cache 運用 Page Offset 實現快取 Index Lookup 與 TLB Translation 平行化的可行性。
逐一檢驗各選項敘述,判斷其正確性。
選項分析
- A. 錯誤。
TLB Miss 僅代表「TLB 快取中沒有目標頁面的位址轉譯記錄」,此時系統會自動執行頁表巡訪(Page Table Walk)至實體記憶體讀取頁表(Page Table)。若該頁面已存於實體記憶體中(PTE 之 Valid bit 為 1),則完成位址轉譯並將 PTE 載入 TLB 後即可正常繼續執行,絕非一定會發生 Page Fault。
第 7 題
Consider a Multi-Level Cache (MLC) hierarchy (L1, L2, L3). Which design choices regarding inclusion and writing policies are correct?
A. Inclusive Caches (e.g., L3 includes all L1/L2 contents) simplify cache coherence because the snoop filter only needs to check the L3 tags to know if a line exists in the core.
B. Exclusive Caches (e.g., L3 contains only victims evicted from L2) maximize the total effective cache capacity of the hierarchy.
C. A Virtually Indexed, Physically Tagged (VIPT) L1 cache allows the TLB lookup and the cache set index decoding to proceed in parallel, reducing the critical path latency.
D. Write-Allocate is typically paired with Write-Through caches to ensure the line is brought into the cache on a write miss.
E. In a Non-Uniform Cache Architecture (NUCA) L3, the latency to access a specific L3 bank depends on the physical distance between the requesting core and that bank on the die.
登入後即可作答並保存紀錄。
核心觀念
本題考驗多層級快取架構(Multi-Level Cache, MLC)設計的核心機制與政策判斷,涵蓋以下四大主軸:
- 包含政策(Inclusion Policies):
- 包含式快取(Inclusive Cache):若資料區塊存在於上層快取(如 L1/L2),則必須同時存在於下層快取(如 L3),即 。此設計可簡化快取一致性(Cache Coherence)的窺探(Snooping)與過濾機制。
- 互斥式快取(Exclusive Cache):同一資料區塊只能存在於某一層快取中。當區塊從 L2 被淘汰(Evict)時才寫入 L3(作為 Victim Cache)。此設計可消除跨層級的重複資料,最大化整體架構之總有效快取容量(Total Effective Capacity):
- 定址與尋址機制(Cache Addressing):
- 虛擬索引物理標籤(Virtually Indexed, Physically Tagged, VIPT):利用虛擬位址(Virtual Address)的頁偏移量(Page Offset)直接對快取進行 Set Index 解碼,同時將虛擬頁號(VPN)送往 TLB 轉換為物理頁號(PPN)。由於 Page Offset 在虛擬與物理位址中完全相同,TLB 轉換與 Set Index 解碼可完全平行化(Parallelize),有效縮短臨界路徑延遲(Critical Path Latency)。
- 寫入政策(Write Policies):
- 寫入分配(Write-Allocate):發生 Write Miss 時,先將記憶體區塊載入快取再執行寫入,通常與**寫回法(Write-Back)**搭配使用。
- 非寫入分配(Write-No-Allocate):發生 Write Miss 時,直接寫入下一層記憶體而不載入快取,通常與**直寫法(Write-Through)**搭配使用。
- 非均勻快取架構(NUCA, Non-Uniform Cache Architecture):
- 將大型晶片上末級快取(LLC/L3)切分為多個 Bank 並分佈於晶片(Die)各處,核心存取特定 Bank 的延遲取決於兩者在晶片上的實體距離(Physical Distance)與晶片上網路(NoC)的轉跳數。
解題方法
針對題目對於五個快取設計選項之敘述,採取觀念比對與定義檢驗切入:
- 針對 Inclusion 政策分析其對快取一致性窺探過濾器(Snoop Filter)的影響。
- 針對 Exclusion 政策分析其快取容量之利用率。
- 針對 VIPT 運作原理分析 TLB 查表與 Set Indexing 動作是否可平行重疊(Overlap)。
- 針對 Write Policy 組合(Write-Allocate vs. Write-No-Allocate 與 Write-Back vs. Write-Through)之標準搭配邏輯進行比對。
- 針對 NUCA 之物理分佈特性確認其存取延遲非均勻性。
選項分析
第 8 題
In Modern GPU Architectures (SIMT - Single Instruction, Multiple Threads), how are memory divergence and control divergence handled?
A. If threads within a single Warp take different paths of an if-else branch, the hardware serializes the execution, executing both paths for all threads but masking off writes for inactive threads.
B. Memory Coalescing occurs when threads in a Warp access contiguous memory addresses, allowing the GPU memory controller to combine them into a single high-bandwidth transaction.
C. GPUs rely on massive L3 caches (hundreds of MBs) rather than thread-level parallelism to hide memory latency.
D. A Shared Memory (or Scratchpad) bank conflict occurs when multiple threads in a Warp try to access different addresses that map to the same physical memory bank in the same cycle.
E. Unlike CPUs, GPUs strictly avoid context switching and run a single kernel to completion before starting another.
登入後即可作答並保存紀錄。
核心觀念
本題考查現代 GPU 架構中 SIMT(Single Instruction, Multiple Threads,單指令多執行緒) 模型的核心運作機制,涵蓋以下四大重點觀念:
- 控制歧異(Control Divergence / Branch Divergence):當同一 Warp 內的執行緒發散至不同分支時,GPU 硬體如何透過序列化(Serialization)與 Mask 機制進行處理。
- 記憶體整合(Memory Coalescing):同一 Warp 的執行緒存取連續記憶體位址時,記憶體控制器如何將多筆存取合併為單一交易以提升頻寬。
- 共享記憶體 Bank 衝突(Shared Memory Bank Conflict):多個執行緒同時存取相同 Bank 內的「不同位址」時所產生的效能瓶頸。
- GPU 延遲遮蔽(Latency Hiding)與切換機制:GPU 依靠高執行緒級平行度(Thread-Level Parallelism, TLP)與零時脈開銷的 Warp 切換遮蔽記憶體延遲,而非仰賴大容量 L3 快取。
解題方法
切入點為對照現代 GPU(如 NVIDIA CUDA / SIMT 架構)的執行模型與記憶體階層特性:
- 控制歧異與序列化:SIMT 模型中硬體發射指令的基本單位為 Warp(包含 32 個執行緒)。當 Warp 遇到條件分支(如
if-else)且執行緒評估結果不一致時,GPU 無法同時執行兩條指令流,必須先執行if分支(關閉評估為 false 的執行緒寫入權限),再執行else分支(關閉評估為 true 的執行緒寫入權限),此即硬體序列化。 - Global Memory coalescing:當 Warp 內的 32 個執行緒同時存取 Global Memory 時,若存取位址為連續(Contiguous)且對齊(Aligned),記憶體控制器會將這 32 個獨立請求合併(Coalesce)為 1 次高頻寬的記憶體 Transaction。
- Shared Memory bank mapping:Shared Memory 硬體劃分為 32 個獨立模組(Banks)。若同一週期內多個執行緒存取同一個 Bank 內的不同位址,Bank 無法並行處理,必須序列化存取(Bank Conflict);若存取同一個 Bank 的相同位址,則透過 Broadcast 機制完成,無衝突。
- TLP vs. Cache:CPU 著重低延遲(Low Latency),使用大快取;GPU 著重高吞吐量(High Throughput),透過硬體暫存器全數保留實現「零開銷 Warp 切換」,在某 Warp 停頓等待 DRAM 時切換至其他 Active Warp 執行,藉此遮蔽延遲。
選項分析
- A. 正確
- 原文:If threads within a single Warp take different paths of an if-else branch, the hardware serializes the execution, executing both paths for all threads but masking off writes for inactive threads.
- 說明:在 SIMT 模式下,同一 Warp 內的 32 個執行緒共享同一個指令發射單元。當產生分支歧異(Control Divergence)時,硬體會序列化(Serialize)執行兩條路徑。執行其中一條路徑時,硬體會設定 Execution Mask(或 Active Mask / Predicates),將不屬於該路徑的非活躍執行緒(Inactive Threads)進行 Mask off,使其指令不產生運算結果或關閉暫存器與記憶體的寫入更新。
第 9 題
Which of the following statements correctly describe the principles of Locality of Reference?
A. Temporal Locality implies that if a memory location is referenced, it is likely to be referenced again soon (e.g., variables in a loop).
B. Spatial Locality implies that if a memory location is referenced, nearby addresses are likely to be referenced soon (e.g., traversing an array).
C. Caches rely on Spatial Locality by loading data in "Blocks" or "Lines" rather than single bytes.
D. Temporal Locality is primarily exploited by the Prefetcher, not the Cache.
E. Instruction caches generally exhibit high Spatial Locality because programs usually execute instructions sequentially.
登入後即可作答並保存紀錄。
核心觀念
本題考查計算機組織與作業系統的核心基石——**參考局部性原理(Principle of Locality / Locality of Reference)**及其在記憶體階層(Memory Hierarchy)架構下的硬體實作機制。
參考局部性主要分為兩大類:
- 時間局部性(Temporal Locality):若某個記憶體位置被存取,則該位置在不久的將來極可能再次被存取。
- 空間局部性(Spatial Locality):若某個記憶體位置被存取,則其相鄰的記憶體位址在不久的將來極可能被存取。
記憶體階層架構(如 Cache)即是依據局部性原理設計:
- 快取的保留機制(Retention / Replacement Policy):將最近存取過的資料暫存在高頻寬、低延遲的 Cache 中,主要用來利用時間局部性。
- 快取區塊(Cache Line / Block)與預取器(Prefetcher):以 Block 為單位進行資料搬移,或利用 Prefetcher 提前抓取連續位址,主要用來利用空間局部性。
解題方法
本題為多項選擇觀念題,解題切入點為將題幹與選項中的描述,與局部性原理的權威定義及現代 CPU 硬體架構(Cache Line、Prefetcher、Instruction Fetch)進行精確對照:
- 判斷 A、B 選項:檢視時間局部性與空間局部性的定義及常見程式範例(如迴圈變數、陣列走訪)是否正確。
- 判斷 C 選項:分析 Cache Line/Block 的抓取單位與空間局部性的因果關係。
- 判斷 D 選項:區分 Cache 暫存與 Prefetcher 預取機制各自所利用的局部性類型。
- 判斷 E 選項:分析指令讀取(Instruction Fetch)在控制流(Sequential Control Flow)下的空間局部性表現。
選項分析
- 選項 A 正確:此敘述為時間局部性(Temporal Locality)的標準定義。當程式存取某記憶體位址後,該位址在短時間內再次被存取的機率極高。典型範例為迴圈中的區域變數(如迴圈計數器 或累加變數
sum),在每次迭代中都會重複被讀寫。 - 選項 B 正確:此敘述為空間局部性(Spatial Locality)的標準定義。
第 10 題
Modern GPUs often use GDDR (Graphics Double Data Rate) or HBM. How does the memory subsystem of a GPU differ from a CPU's DDR subsystem regarding latency and parallelism?
A. CPU memory controllers are optimized for Low Latency to ensure quick response times for serial tasks and OS interrupts.
B. GPU memory controllers are optimized for Throughput and are designed to tolerate high latency by switching between thousands of active threads (latency hiding).
C. Memory Coalescing: GPU hardware attempts to combine memory accesses from adjacent threads into a single transaction to maximize bus utilization, a feature less critical in standard CPU scalar execution.
D. CPUs typically use massive L1/L2/L3 caches to reduce the effective memory latency, whereas GPUs devote more die area to ALUs and use smaller caches relative to their compute throughput.
E. GDDR memory is pin-compatible with standard DDR memory, meaning you can plug GDDR6 chips directly into a standard PC motherboard DDR4 slot.
登入後即可作答並保存紀錄。
核心觀念
本題考驗 CPU 與 GPU 在**記憶體子系統架構設計哲學(Memory Subsystem Architecture Trade-offs)**上的根本差異,涵蓋以下重點概念:
-
設計目標差異(Latency vs. Throughput):
- CPU (Latency-Oriented):專為執行序列任務(Serial Tasks)與處理作業系統即時中斷(OS Interrupts)設計,核心目標是最小化記憶體存取延遲(Minimize Latency)。
- GPU (Throughput-Oriented):專為大規模平行運算(Massive Parallelism)設計,核心目標是極大化資料吞吐量(Maximize Throughput)。
-
延遲隱藏(Latency Hiding)與晶片面積配置(Die Area Allocation):
- CPU:將絕大部分晶片面積(Die Area)用於大容量 L1/L2/L3 快取、複雜的分支預測器與亂序執行(Out-of-Order Execution)單元,藉此掩蓋記憶體延遲。
- GPU:將晶片面積主要留給算術邏輯單元(ALU),快取容量相對較小。當某一組執行緒(如 CUDA 中的 Warp)因讀寫記憶體而阻塞(Stall)時,排程器能以零/極低開銷切換至其他 Ready 狀態的執行緒執行,此即延遲隱藏。
-
記憶體存取機制與架構規範:
- 記憶體合併(Memory Coalescing):GPU 硬體將同一 Warp 中相鄰執行緒對連續記憶體位址的讀寫需求,自動合併為單一 DRAM 匯流排交易(Burst Transaction),以發揮最大頻寬效率。
- DDR vs. GDDR/HBM 介面:不同記憶體標準在腳位定義(Pinout)、匯流排寬度、電氣特性與訊號協定上完全不同,硬體上不具備腳位相容性(Not Pin-Compatible)。
解題方法
本題為多重選擇題,解答時應依據「CPU 追求低延遲、GPU 追求高吞吐量」的主軸,逐一審視微架構設計、快取配置、執行緒調度及記憶體實體介面:
- 評估記憶體控制器設計:確認 CPU 與 GPU 記憶體控制器的優化方向(低延遲 vs. 高吞吐量)。
- 評估軟硬體協同優化機制:分析 GPU 如何利用多執行緒切換進行 Latency Hiding,以及利用 Memory Coalescing 優化匯流排利用率。
- 評估晶片資源分配策略:比較兩者在快取記憶體(Cache)與算術邏輯單元(ALU)佔用晶片面積的比例關係。
- 檢驗硬體實體介面規格:確認 GDDR 與標準 PC DDR 記憶體在物理與電氣規格上的相容性。
選項分析
第 11 題
Which of the following statements accurately describe the system startup and boot process?
A. The BIOS/UEFI resides in volatile RAM and is the first program executed when the computer is powered on.
B. The Bootloader (e.g., GRUB) is typically responsible for loading the Operating System kernel from the disk into the main memory.
C. UEFI (Unified Extensible Firmware Interface) supports "Secure Boot," which checks the cryptographic signature of the bootloader and kernel to prevent malware injection.
D. The kernel initialization phase includes probing hardware, mounting the root file system, and starting the first user-space process (e.g., init or systemd).
E. The Master Boot Record (MBR) partition scheme is required for drives larger than 4 TB to function as a boot drive.
登入後即可作答並保存紀錄。
核心觀念
本題考查計算機系統的啟動與開機流程(System Startup and Boot Process),涵蓋以下核心知識點:
- 韌體層級(Firmware Layer):ROM/Flash 記憶體中的 BIOS/UEFI 及其非揮發性(Non-volatile)特性與首要執行任務。
- 引導加載程式(Bootloader):如 GRUB、LILO,負責將作業系統核心(OS Kernel)從次級儲存載入主記憶體(RAM)。
- 安全啟動機制(Secure Boot):UEFI 的 PKI 數位簽章驗證機制,用以防止 Rootkit 與惡意軟體注入。
- 核心初始化階段(Kernel Initialization Phase):探測硬體、掛載根檔案系統(Root Filesystem)與啟動使用者空間第一個程序(PID 1, e.g.,
init/systemd)。 - 磁碟分割表格式(Partition Scheme):MBR 與 GPT 的定址限制,特別是 MBR 採用 32 位元 LBA 所導致的 容量上限。
解題方法
解題切入點為將電腦開機流程依序拆解為四大階段並進行觀念比對:
- POST 與韌體階段(BIOS/UEFI):檢視儲存介質屬性。韌體必須保存在非揮發性記憶體(ROM/Flash Memory),斷電後資料才不會遺失;若放在揮發性記憶體(Volatile RAM),開機時 RAM 無資料,CPU 無法載入第一條指令。
- Bootloader 階段:確認引導程式在磁碟與記憶體間的角色與轉移控制權之機制。
- UEFI 安全機制:分析 Secure Boot 密碼學簽章驗證之標的(Bootloader、Kernel)與防禦目的。
- Kernel 初始化:比對核心載入主記憶體後,建立系統執行環境與開啟使用者空間(User Space)PID 1 的順序。
- 分割表規格計算:利用位址線寬度與磁區大小推導 MBR 之極限容量:
選項分析
-
A. 錯誤。
BIOS/UEFI resides in non-volatile memory (e.g., ROM or Flash Memory),非 volatile RAM。若韌體位於揮發性記憶體(RAM),斷電後資料即消失,電腦電源開啟(Power-on)時 CPU 將無法讀取到重置向量(Reset Vector)處的開機第一條指令。 -
B. 正確。
Bootloader(如 GRUB、LILO、Windows Boot Manager)位於次級儲存裝置的引導磁區或 ESP(UEFI System Partition)。
第 12 題
Which of the following are valid Process States and transitions in a standard 5-state process model?
A. Running → Ready: This transition happens when a process is preempted by the scheduler (e.g., time quantum expires).
B. Blocked (Waiting) → Running: A process moves directly to Running when its I/O operation completes.
C. Ready → Running: This transition is managed by the Dispatcher.
D. Running → Blocked (Waiting): This transition occurs when a process requests an I/O operation or waits for an event.
E. Terminated → Ready: A zombie process can be restarted by the parent process.
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統中**標準五狀態行程模型(Standard 5-State Process Model)**的行程狀態(Process States)及其狀態轉換(State Transitions)。
標準五狀態行程模型包含以下五個狀態:
- New(新建):行程正在被建立。
- Ready(就緒):行程已載入記憶體,並準備好等待獲得 CPU 執行權。
- Running(執行):行程獲得 CPU 執行權,正在 CPU 上執行指令。
- Waiting / Blocked(等待 / 阻塞):行程因等待某些事件完成(例如 I/O 操作完成或接收到訊號)而無法繼續執行。
- Terminated / Exit(結束):行程已執行完畢或異常終止。
標準狀態轉移關係如下:
- :行程建立完成並被納入 Ready 隊列(Admitted)。
- :排程器選定該行程後,由分派器(Dispatcher)進行上下文切換(Context Switch)並切換至執行狀態(Scheduler Dispatch)。
- :行程被搶佔(Preemption),如時間片(Time Quantum)用盡或有更高優先權行程到達。
- :行程自主請求 I/O 操作或等待特定事件(I/O or Event Wait)。
- :當 I/O 操作或事件完成時,行程轉移回 Ready 隊列(I/O or Event Completion)。
- :行程執行完畢結束(Exit)。
解題方法
依據五狀態轉移圖(State Transition Diagram)的規範,檢視各選項敘述的「出發狀態」、「到達狀態」與「觸發條件 / 控制者」是否符合作業系統核心設計原則:
- 區分 Ready 與 Running:CPU 一次僅能執行一個行程(單核心),當阻塞(Waiting)行程完成 I/O 時,CPU 可能正由其他行程佔用,因此不可直接跳轉回 Running,必須先進入 Ready 隊列等待 CPU 排程。
- 釐清排程元件:CPU 排程器(Scheduler)負責「決定」哪個 Ready 行程獲得 CPU,而分派器(Dispatcher)負責「執行」上下文切換(Context Switch)、切換至使用者模式及跳轉至適當指令位置。
- 終止狀態的不可逆性:Terminated 為終端狀態(Terminal State / Sink State),行程終止後無法恢復至 Ready 狀態。
選項分析
- A. 正確。
原敘述:「Running → Ready: This transition happens when a process is preempted by the scheduler (e.g., time quantum expires).」
第 13 題
What specific OS features are critical for high-performance AI/Machine Learning workloads?
A. Huge Pages / Large Pages support reduces TLB miss rates when training models with massive datasets.
B. NUMA (Non-Uniform Memory Access) awareness allows the OS to schedule threads on CPU cores that are physically closer to the memory bank holding the training data.
C. GPUDirect (or similar RDMA technologies) enables network adapters to move data directly to/from GPU memory, bypassing the CPU and system RAM.
D. AI Workloads typically prefer Fine-Grained Context Switching (frequent switching) to maximize CPU responsiveness during training.
E. Containerization (e.g., Docker/Kubernetes) is preferred over full Virtual Machines for AI deployment due to lower overhead and direct access to hardware drivers.
登入後即可作答並保存紀錄。
核心觀念
本題考查高效能 AI/機器學習(AI/ML)工作負載在作業系統與電腦結構層級的核心優化機制。AI/ML 訓練與推論具備「海量資料存取」、「高運算吞吐量(Throughput-oriented)」、「多 GPU/多 CPU 協同運算」以及「對 I/O 與記憶體延遲極度敏感」等特性。涉及關鍵觀念如下:
- 虛擬記憶體與 TLB 覆蓋率:大頁面(Huge Pages / Large Pages)能顯著擴大 Translation Lookaside Buffer (TLB) 的位址覆蓋範圍,降低頁表走訪(Page Table Walk)開銷。
- NUMA 拓撲與執行緒親和性(Affinity):非均勻記憶體存取(NUMA)架構下,OS 需將執行緒排程至資料所在的本地記憶體節點(Local Node),降低跨 Node 通訊延遲。
- 零拷貝與 Direct I/O (GPUDirect RDMA):利用 RDMA 技術讓網卡直接對 GPU VRAM 進行 DMA 讀寫,繞過 CPU 與系統主記憶體。
- 行程排程與上下文切換(Context Switch):計算密集型(Compute-bound)任務偏好較長時隙與極低切換頻率,避免 CPU Cache 污染與暫存器儲存/還原的開銷。
- 部署環境開銷比對:容器化(Containerization)共享宿主機 OS 核心並支援硬體 Pass-through,效能開銷遠低於具備 Hypervisor 抽象層的全虛擬化(Full Virtualization)虛擬機。
解題方法
解題切入點在於比較「AI 工作負載的需求特性(高吞吐量、零拷貝、低 Overhead、海量記憶體腳印)」與「傳統 OS 管理機制」的適配性:
- 記憶體管理:AI 訓練需要維持數百 GB 的資料與模型參數。若採用預設 分頁,分頁表過大導致 TLB Miss 飆升,必須使用 Huge Pages(如 或 )。
- 記憶體架構:多 Socket 伺服器普遍採用 NUMA。OS 若缺乏 NUMA awareness,跨 Node 存取的延遲與匯流排擁塞會成為嚴重瓶頸。
- 資料傳輸:傳統 I/O 需要將資料從 NIC 複製到系統 RAM,再複製到 GPU VRAM。GPUDirect RDMA 可達成直接點對點 DMA 傳輸。
- 排程策略:細粒度內容切換(Fine-Grained Context Switching)是為兼顧互動式(Interactive)系統的「高響應度」設計的,對吞吐量導向的 AI 訓練而言是純粹的效能損耗。
- 虛擬化技術:Containers 幾乎提供接近原生(Near-native)的效能與 Driver 直通能力,優於需要轉譯與資源隔離的 VMs。
選項分析
- A. 正確。AI 模型訓練時需在記憶體中維護大規模資料集與參數。若使用標準 分頁,分頁表條目極多,TLB 無法覆蓋廣泛的虛擬位址範圍,導致極高的 TLB miss rate。
第 14 題
How does OS design adapt for Solid State Drives (SSDs) compared to HDDs?
A. SSDs perform "in-place updates" just like HDDs, allowing data to be overwritten physically in the same location without erasure.
B. The Flash Translation Layer (FTL) maps logical block addresses (LBA) to physical pages, hiding the complexity of erase blocks from the OS.
C. The TRIM command allows the OS to inform the SSD which data blocks are no longer considered in use (e.g., after file deletion), aiding internal Garbage Collection.
D. Write Amplification is a phenomenon where the actual amount of data written to the flash chips is greater than the amount of data written by the host OS.
E. Wear Leveling algorithms are implemented by the OS kernel to ensure all SSD cells effectively have the same lifespan.
登入後即可作答並保存紀錄。
核心觀念
本題考查固態硬碟(Solid State Drive, SSD)與傳統磁碟(Hard Disk Drive, HDD)在作業系統(OS)設計、底層硬體特性與儲存架構上的差異。
關鍵知識點包含:
- NAND Flash 物理限制:以頁(Page)為讀寫單位、以區塊(Block)為擦除單位(Erase-before-write),無法進行「原地更新」(In-place Update),必須採用「異地更新」(Out-of-place Update)。
- 閃存翻譯層(Flash Translation Layer, FTL):位於 SSD 控制器內部的韌體,負責邏輯區塊地址(LBA)到物理頁(Physical Page)的動態映射,向 OS 隱藏擦除與垃圾回收細節。
- 垃圾回收(Garbage Collection, GC)與寫入放大(Write Amplification):異地更新導致舊資料頁失效(Invalid),GC 搬移有效頁並擦除整個 Block 時會產生額外寫入,形成寫入放大。寫入放大因子(Write Amplification Factor, WAF)公式為:
- OS 協同指令(TRIM Command):OS 在刪除檔案時透過 TRIM 告知 SSD 哪些 LBA 已無效,以協助內部的 GC 程序。
- 損耗平均(Wear Leveling):均勻分攤各 NAND cell 的擦寫次數,由 SSD 內部的 FTL 實作,而非 OS 核心。
解題方法
解題切入點在於區分**「作業系統核心(OS Kernel)」與「SSD 控制器韌體(FTL Firmware)」**的分工邊界,並對照 NAND Flash 的物理特性:
- 判斷寫入機制:HDD 磁性介面可直接覆寫(In-place);SSD 必須「先擦除後寫入」,只能異地更新(Out-of-place)。
- 劃分職責邊界:
- FTL(SSD 控制器):負責 LBA-to-PBA 地址映射、Wear Leveling、Bad Block Management、內部 Garbage Collection。
- OS 核心:負責高階檔案系統管理,透過標準區塊介面存取,並在刪除資料時發送 TRIM 指令提供無效頁資訊。
- 分析現象定義:寫入放大(Write Amplification)為內部 GC 搬移資料導致「物理寫入量 邏輯寫入量」的客觀現象。
選項分析
- A. 錯誤
HDD 支援「原地更新」(In-place update),可直接覆寫同一個物理軌道區塊。然而 SSD 的 NAND Flash 具有物理限制:讀寫以 Page 為單位,擦除(Erase)以 Block 為單位,且已寫入資料的 Page 在擦除前無法直接覆寫。
第 15 題
Which statements accurately describe I/O Subsystem mechanisms?
A. DMA (Direct Memory Access) allows an I/O device to transfer data directly to/from memory without continuous CPU intervention.
B. Interrupt-driven I/O requires the CPU to constantly poll the device status register to check if data is ready.
C. Blocking I/O suspends the execution of the calling process until the I/O operation is complete.
D. Double Buffering allows the producer (device) and consumer (CPU) to operate in parallel, smoothing out speed mismatches.
E. The Kernel I/O Subsystem manages issues like caching, spooling, and device reservation.
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統中 I/O 子系統(I/O Subsystem)與 I/O 控制機制 的核心觀念,涵蓋以下主題:
- I/O 傳輸控制方式:程式化 I/O(Programmed I/O / Polling)、中斷驅動 I/O(Interrupt-driven I/O)及直接記憶體存取(DMA, Direct Memory Access)之運作機制與 CPU 參與度比較。
- I/O 系統呼叫介面:阻塞式 I/O(Blocking I/O)對行程狀態(Process State)變化的影響。
- 緩衝區技術(Buffering):雙重緩衝(Double Buffering)如何實現生產者與消費者之平行處理,以解決裝置與 CPU 之間的速度差異。
- 核心 I/O 子系統服務(Kernel I/O Subsystem Services):包含快取(Caching)、假脫機(Spooling)、裝置預留(Device Reservation)、排程(Scheduling)與緩衝(Buffering)等服務。
解題方法
分析各選項描述切入點如下:
- 辨識 I/O 控制傳輸模式:
- DMA:由 DMA 控制器接管大區塊資料傳輸,傳輸期間無需 CPU 介入,完成時再觸發中斷。
- Interrupt-driven:由裝置在資料準備完畢時主動發送中斷通知 CPU,CPU 無需主動輪詢。
- Programmed I/O:CPU 必須以忙碌等待(Busy-waiting)方式持續輪詢裝置狀態暫存器。
- 分析行程狀態變更:
- 發起 Blocking I/O 的行程會被作業系統置入等待狀態(Waiting State),直到 I/O 動作完成。
- 釐清雙重緩衝(Double Buffering)效能提升原理:
- 透過兩組緩衝區交替讀寫,讓 I/O 裝置輸入/輸出與 CPU 的運算能夠重疊(Overlap/Parallelism),降低閒置等待時間。
- 檢視 Kernel I/O Subsystem 功能範疇:
- 對照經典作業系統理論(如 Silberschatz 著《Operating System Concepts》),Kernel I/O Subsystem 負責 I/O 排程、緩衝、快取、假脫機、裝置預留及錯誤處理。
選項分析
-
A. 正確。
DMA(Direct Memory Access)的核心目的即為減輕 CPU 處理大量資料傳輸的負擔。CPU 僅需在傳輸開始前設定 DMA 控制器的暫存器(如來源/目的位址與傳輸位元組數),之後整批區塊資料的傳輸均由 DMA 控制器直接與主記憶體進行,期間不需要 CPU 持續介入;當整個區塊傳輸完畢後,DMA 控制器才會發送一個硬體中斷告知 CPU。 -
B. 錯誤。
敘述所描繪的「需要 CPU 持續輪詢(Polling)裝置狀態暫存器」屬於 Programmed I/O(程式化 I/O / Polling I/O) 的特徵。在中斷驅動 I/O(Interrupt-driven I/O)機制中,CPU 發出 I/O 請求後即可切換執行其他行程;
第 16 題
Choose the correct statements from the multiple choices
A. In a multithreaded process using kernel-level threads, a blocking I/O operation in one thread causes the entire process to block.
B. During a context switch between two threads belonging to the same process, the operating system must update the CPU's page table base register.
C. When two processes share the same physical memory page, they use the same virtual address to refer to that page.
D. If two processes share a physical memory page, any modification to that page is immediately visible to both processes.
E. None of the above.
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統(Operating System)的核心記憶體管理與多執行緒機制,涵蓋以下四大觀念:
- 執行緒模型與阻塞型 I/O(Thread Models & Blocking I/O):核心級執行緒(Kernel-Level Thread, KLT)與使用者級執行緒(User-Level Thread, ULT)在面對阻塞型系統呼叫時的排程行為差異。
- 上下文切換與頁表基底暫存器(Context Switching & Page Table Base Register):同行程(Process)內部執行緒切換與跨行程切換時,CPU 暫存器(如 x86 的 CR3 或 ARM 的 TTBR)與記憶體管理單元(MMU)的更新規範。
- 共用記憶體與虛擬位址映射(Shared Memory & Virtual Addressing):多個行程映射同一實體分頁(Physical Page)時,其虛擬位址(Virtual Address)空間的獨立性。
- 寫入時複製與共用分頁修改(Copy-on-Write, COW & Memory Sharing):實體分頁共用狀態下(例如
fork()觸發的 COW 機制),對分頁進行寫入操作時的保護機制與對其他行程的可見性。
解題方法
本題為觀念檢驗型的多選題,採用「觀念定義檢驗法」與「反例導駁法」逐一審視各選項:
- 執行緒控制權轉移:分析 KLT 架構下作業系統核心能否單獨排程未阻塞的執行緒。
- 虛擬位址空間共用性:檢驗同行程執行緒是否共用同一頁表,進而判斷切換時是否需要更換頁表暫存器。
- 頁表映射機制:檢驗各行程頁表獨立性,確認映射至同一實體頁框時虛擬位址是否強制相等。
- 記憶體保護與 COW 檢驗:利用寫入時複製(Copy-on-Write)機制為反例,檢驗「對共用實體分頁的修改必定即時對所有共用行程可見」此敘述的真偽。
選項分析
-
(A) 錯誤。
在核心級執行緒(Kernel-Level Thread, KLT,如 1:1 執行緒模型)架構下,作業系統核心能直接感知並排程每一個執行緒。當行程中的某個執行緒執行阻塞型 I/O(Blocking I/O)時,核心僅會將該特定執行緒置入阻塞狀態(Blocked State),並能將 CPU 時間片排程給同行程中其他處於就緒狀態(Ready State)的執行緒繼續執行,因此不會導致整個行程(Entire Process)被阻塞。只有在使用者級執行緒(User-Level Thread, ULT,即 Many-to-One 模型)中,單一執行緒發起阻塞呼叫才會導致整體行程阻塞。 -
(B) 錯誤。
同一個行程(Process)內的所有執行緒共用相同的虛擬位址空間(Virtual Address Space)與相同的頁表(Page Table)。
第 17 題
Choose the correct statements from the multiple choices
A. An attack that compromises data confidentiality does not necessarily affect data integrity.
B. If Alice encrypts a document using her private key in an asymmetric cryptographic system, the operation provides authentication rather than confidentiality.
C. Transport-layer encryption protects data from eavesdropping and also prevents traffic analysis.
D. Side-channel attacks are fundamentally designed to exploit mathematical weaknesses or logical flaws within a cryptographic algorithm's design.
E. None of the above.
登入後即可作答並保存紀錄。
核心觀念
本題考察作業系統與資訊安全(Information Security & Cryptography)領域的核心概念,包含:
- 資訊安全三大要素(CIA Triad):機密性(Confidentiality)、完整性(Integrity)與可用性(Availability)的定義與獨立性。
- 非對稱加密與數位簽章(Asymmetric Cryptography & Digital Signature):公鑰加密(提供機密性)與私鑰加密(提供身份驗證與不可否認性)的功能差異。
- 傳輸層加密與流量分析(Transport-Layer Encryption & Traffic Analysis):TLS/SSL 等傳輸層保護範疇與限制。
- 側通道攻擊(Side-Channel Attacks):針對實作層面物理特徵(時間、耗電、快取等)的攻擊方式,與傳統密碼分析(Cryptanalysis)的差異。
解題方法
本題為研究所考試中常見的複選觀念題。解題切入點為逐一釐清各資安名詞之嚴謹定義,並分析攻擊目標與防護範疇:
- 資安威脅目標:被動監聽(Passive Attack)僅破壞機密性,主動竄改(Active Attack)才會破壞完整性。
- 金鑰用途區分:接收者公鑰加密提供「機密性」;傳送者私鑰加密提供「身份驗證(Authentication)」與「不可否認性(Non-repudiation)」。
- 網路協定階層:傳輸層加密僅隱藏應用層 Payload,IP 表頭、Port 號與封包時間/長度特徵仍外洩,無法防範流量分析。
- 攻擊管道區分:區分演算法理論漏洞(Mathematical Weakness)與實體實作洩漏(Physical Side-Channel Leakage)。
選項分析
- A. 正確。
機密性(Confidentiality)旨在防止未授權資訊洩漏;完整性(Integrity)旨在防止未授權資料竄改。被動監聽攻擊(Passive Eavesdropping,如側聽明文封包)會洩漏資料內容從而破壞機密性,但若攻擊者並未修改傳送的內容,資料完整性並不受影響。因此,破壞機密性的攻擊不一定會影響完整性。 - B. 正確。
在非對稱密碼學(如 RSA)中:- 用接收者的公鑰加密:僅接收者的私鑰可解密,提供機密性(Confidentiality)。
第 18 題
Choose the correct statements from the multiple choices
A. When the OS switches to a process with a different address space, the existing TLB entries are typically no longer valid and therefore need to be flushed or invalidated.
B. A TLB miss is a sufficient condition to conclude that the referenced page is not resident in physical memory.
C. Reducing the frequency of TLB misses can significantly improve system performance.
D. The TLB indexes translations by virtual address, so different virtual addresses mapping to the same physical page require separate TLB entries.
E. None of the above.
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統(Operating Systems)與計算機組織(Computer Architecture)中**轉譯後備緩衝區(Translation Lookaside Buffer, TLB)**的運作機制與性能影響。涉及核心概念如下:
- TLB 的角色與檢索機制:TLB 是以硬體實現的高速快取(Cache),專門存放虛擬頁號(Virtual Page Number, VPN)到實體頁框號(Physical Frame Number, PFN)的對映關係()。TLB 以虛擬頁號(VPN)作為 Tag 進行搜尋比對。
- 上下文切換(Context Switch)與 TLB 快取一致性:不同進程(Process)具備獨立的虛擬位址空間。在典型或未配置位址空間標識符(Address Space Identifier, ASID)的架構下,切換進程時必須將既存的 TLB 條目清空(Flush/Invalidate),防止新進程誤用舊進程的對映。
- TLB Miss 與 Page Fault 的階層關係:
- TLB Miss:轉譯資料未存在於 TLB 快取中。
- Page Fault:目標頁面未載入至實體記憶體(DRAM)中。
- TLB Miss 發生時,系統僅需進行頁表走訪(Page Table Walk)。若頁表條目(PTE)的 Valid bit 為 1,則直接完成轉譯(Memory Hit),無需觸發 Page Fault。
- 有效記憶體存取時間(Effective Memory Access Time, EMAT):
其中 為 TLB 命中率(Hit Rate), 為 TLB 缺失率(Miss Rate), 為存取多層頁表所需的主記憶體時間。 - 記憶體共享(Shared Memory)與別名問題(Aliasing):當多個不同的虛擬位址指向同一個實體頁面時,由於 TLB 以虛擬位址(VPN)作為索引標籤,故每個不同的虛擬位址皆需佔用一個獨立的 TLB 條目。
解題方法
本題為作業系統與計算機組織的觀念判斷題。解題切入點為依據虛擬記憶體(Virtual Memory)管理規範,逐一比對 TLB 在「進程切換維護」、「快取未命中處理」、「系統性能公式(EMAT)」與「共享記憶體對映」等方面的運作行為,判斷各選項敘述之正確性。
選項分析
- A. 正確
當 OS 切換至擁有不同位址空間的進程時,舊進程留在 TLB 中的對映資料對新進程而言均無效且可能造成安全威脅。
第 19 題
Choose the correct statements from the multiple choices
A. Spinlocks are generally more efficient than binary semaphores because they avoid putting threads to sleep.
B. In an interrupt handler, a spinlock is usually a better synchronization choice than a semaphore because interrupt handlers are not allowed to sleep.
C. Disabling interrupts while holding a spinlock can prevent deadlock between a thread and an interrupt handler.
D. The optimal maximum spin time for a spinlock is independent of the time required to perform a context switch.
E. None of the above.
登入後即可作答並保存紀錄。
核心觀念
本題聚焦於作業系統(Operating Systems)中**同步機制(Synchronization Primitives)**的設計原則與應用場景,主要考查以下四大核心概念:
- 忙碌等待(Busy Waiting)與阻塞(Blocking/Sleeping):
- 自旋鎖(Spinlock):採用忙碌等待,當無法取得鎖時,執行緒會在迴圈中持續輪詢(Spin),不放棄 CPU 執行權。
- 二元信號燈(Binary Semaphore):採用阻塞機制,當無法取得鎖時,執行緒會被放入等待佇列並引發上下文切換(Context Switch),讓出 CPU 執行權。
- 中斷上下文(Interrupt Context)的執行限制:
- 中斷處理常式(Interrupt Handler / ISR)執行於中斷上下文,缺乏獨立的進程/執行緒控制區塊(PCB/TCB),因此絕對禁止進入睡眠(Sleep)或觸發排程切換。
- 中斷與執行緒間的死鎖預防(Deadlock Prevention):
- 當一般核心執行緒與 ISR 共用同一把 Spinlock 時,若執行緒取得鎖後未關閉區域中斷(Local Interrupt),同一 CPU 觸發中斷執行 ISR 並試圖獲取該鎖時,將導致 ISR 無限期自旋,而持鎖執行緒因被搶佔無法執行,造成單核死鎖。
- 臨界自旋時間(Optimal Spin Time)成本模型:
- 自旋與睡眠的開銷權衡取決於上下文切換開銷()與臨界區鎖持有時間()。
解題方法
從執行上下文特性與系統開銷代價模型切入分析:
- 評估 Spinlock 與 Semaphore 的適用時機:
- Spinlock 避免了上下文切換的成本,但持續佔用 CPU;Semaphore 節省 CPU 週期,但需要負擔上下文切換成本 。因此 Spinlock 的高效率僅成立於「預期鎖持有時間極短且為多核心(SMP)系統」,非「普遍(generally)」較優。
- 檢視 ISR 的同步約束:
- 因 ISR 嚴禁睡眠,任何可能引發阻塞的同步基元(如 Semaphore)皆不能在 ISR 中使用,只能選用不會睡眠的 Spinlock。
- 推導中斷搶佔引發死鎖的條件:
- 持鎖執行緒在進入臨界區前關閉中斷(Disable Interrupts),可避免同一 CPU 在持鎖期間被 ISR 搶佔,解決競態條件與死鎖問題。
- 分析最佳自旋時間與 Context Switch 的關係:
- 在自適應鎖(Adaptive Mutex)設計中,最佳最大自旋時間通常設定為上下文切換時間的數量級(如 )。若自旋時間過長,其代價將超過睡眠與喚醒的代價,故自旋時間上界必然依賴於 。
選項分析
第 20 題
Choose the correct statements from the multiple choices
A. GPU internal thread scheduling is physically managed and allocated directly by the OS kernel scheduler.
B. When a GPU reads system memory via DMA, the CPU is not directly involved in the data movement during the transfer.
C. The OS interrupt handling mechanism can be used to notify the CPU upon completion of a GPU computation.
D. The OS, through its GPU drivers, enforces access control and resource-sharing policies that determine which processes are permitted to submit work to the GPU.
E. None of the above.
登入後即可作答並保存紀錄。
核心觀念
本題主要考查作業系統(OS)與異質計算單元(GPU)之間的互動機制與軟硬體分工,包含以下核心概念:
- GPU 硬體排程(Hardware Thread Scheduling):GPU 採用 SIMT(Single Instruction, Multiple Threads)架構,內部數以萬計執行緒(Threads)的切換與派發是由 GPU 內部的硬體排程器(如 Hardware Warp Scheduler)在晶片層級直接控管,而非由 CPU 作業系統的核心排程器(OS Kernel Scheduler)管理。
- 直接記憶體存取(Direct Memory Access, DMA):DMA 技術允許 GPU 等周邊設備直接與系統主記憶體(System RAM)進行資料交換。CPU 僅負責在傳輸前設置 DMA 控制器的暫存器,在資料搬移過程中,CPU 完全不參與處理。
- 硬體中斷通知機制(Interrupt Handling):當 GPU 完成非同步運算或 DMA 搬移時,會透過匯流排(PCIe)向 CPU 發送硬體中斷(Hardware Interrupt),引導 OS 執行對應的中斷服務常式(ISR),達成即時且非同步的完成通知。
- 驅動程式與資源存取控制(OS Device Driver & Access Control):作業系統透過 GPU 裝置驅動程式(GPU Drivers)實作保護與隔離機制,管理硬體上下文(Context)、執行權限與時間切片(Time-slicing),管制哪些使用者行程(Processes)能向 GPU 提交運算任務。
解題方法
解答本題的切入點為釐清「CPU / 作業系統」與「GPU 硬體」的權責邊界與互動流程:
- 權責劃分:判斷該動作屬於「GPU 內部晶片自動化處理(硬體邏輯)」還是「OS 核心與驅動程式負責的管理政策(軟體邏輯)」。
- I/O 搬移與通知:分析 DMA 傳輸過程與中斷(Interrupt)觸發機制中 CPU 的實際參與程度。
- 選項對照:逐一檢驗選項敘述是否符合電腦架構與作業系統控制周邊設備的標準規範。
選項分析
- A. 錯誤
GPU 內部的執行緒排程(例如 CUDA 的 Warp 排程與指令發射)是由 GPU 晶片內建的**硬體排程器(Hardware Warp Scheduler / GigaThread Engine)**在納秒等級動態完成的。