112 年 國立中正大學資訊工程學系碩士班甲組《計算機系統》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊

第 1 題

  1. Consider the following situation, each CPU or I/O burst in a process happens sequentially from left to
    right. Which process will be run at timing 23 by using the optimal scheduling algorithm for achieving
    the smallest average waiting time?
    (a) P1
    (b) P2
    (c) P3
    (d) P4
    (e) P5
ProcessCPU BurstI/O BurstCPU burstI/O burstCPU burstArrival time
P136350
P2505052
P3525250
P43482
P51247

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查「最短工作優先」(Shortest Job First, SJF)排程。

  • CPU 與 I/O 可並行;程序進行 I/O 時不占用 CPU,I/O 完成後才重新進入就緒佇列。

  • 等待時間是程序在就緒佇列中等待 CPU 的時間,不包含 I/O 時間:

    Wi=∑(各 CPU burst 的開始時間−該 burst 進入就緒佇列的時間)W_i=\sum(\text{各 CPU burst 的開始時間}-\text{該 burst 進入就緒佇列的時間})

  • SJF 每次 CPU 空閒時,從目前就緒佇列選擇「下一個 CPU burst 最短」的程序。

  • 題目未指定相同 CPU burst 的平手規則,依標準作法以 FCFS(先進先出)處理平手;SJF 本身採非搶先式,因此 CPU burst 開始後不會被新到達的程序中斷。

SJF 能降低平均等待時間的原因是:若兩個可執行的 CPU burst 長度為 a>ba>b,先執行 bb 會讓總等待時間比先執行 aa 少 a−ba-b。


解題方法:建立 CPU 排程時間軸

t=0t=0

就緒程序:

  • P1:CPU burst 33
  • P3:CPU burst 55

選擇 P1:

0∼3:P10\sim3:\text{P1}

P1 之後進行 66 單位 I/O,於 t=9t=9 完成。


t=3t=3

P2、P4 已於 t=2t=2 到達。就緒程序的下一個 CPU burst:

  • P2:55
  • P3:55
  • P4:33

選擇 P4:

3∼6:P43\sim6:\text{P4}

P4 接著進行 44 單位 I/O。


t=6t=6

P2 與 P3 的 CPU burst 都是 55,依 FCFS 平手規則,P3 到達時間較早,因此選擇 P3:

6∼11:P36\sim11:\text{P3}

P3 接著進行 22 單位 I/O,於 t=13t=13 重新進入就緒佇列。

P5 雖於 t=7t=7 到達,但目前 CPU 正執行 P3;SJF 為非搶先式,因此 P5 必須等待。


t=11t=11

此時就緒程序的下一個 CPU burst:

  • P1:33,於 t=9t=9 完成 I/O
  • P2:55
  • P5:11,於 t=7t=7 到達
  • P4 的後續工作長度為 88,不會優先於較短 burst

選擇 P5:

11∼12:P511\sim12:\text{P5}

P5 接著進行 22 單位 I/O,於 t=14t=14 完成。


t=12t=12

就緒程序中:

  • P1:33
  • P2:55

選擇 P1:

12∼15:P112\sim15:\text{P1}

P1 的下一個 CPU burst 為 55;中間沒有額外 I/O,因此於 t=15t=15 進入就緒佇列。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 2 題

Unified virtual memory uses ____ to cache both process page and file data.
(a) page cache
(b) double cache
(c) buffer cache
(d) disk block cache
(e) CPU cache

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

Unified virtual memory 的重點,是將程序記憶體頁面與檔案資料統一納入以「頁(page)」為單位的快取與記憶體管理機制。

當檔案資料被讀入主記憶體,或檔案以 memory-mapped file 方式映射到程序位址空間時,作業系統可讓兩者共用同一份 page cache,避免同一份檔案內容同時存在於 page cache 與 buffer cache 中,形成重複快取(double caching)。

解題方法

題目中的關鍵字是:

  • Unified:表示使用同一套快取機制。
  • virtual memory:基本管理單位是 page。
  • cache both process page and file data:要找能同時管理程序頁面與檔案資料的 page-level cache。

因此,正確填空為 page cache。

選項分析

  • (a) page cache:正確。
    Page cache 以頁為單位保存檔案資料,並可與程序的虛擬記憶體頁面共用同一份實體頁框,是 unified virtual memory 所使用的快取概念。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 3 題

Which of the following is true? Here "MIPS" means million instructions per second.
(a) For two programs, their MIPSs are the same while they are executed on the same computer.
(b) MIPS is a good metric to measure performance.
(c) Two programs running the same machine have the same MIPS.
(d) Relative MIPS cannot reflect the execution time of a program.
(e) MIPS can represent the execution time of a program on a given machine.

登入後即可作答並保存紀錄。

這一題的完整詳解

各選項分析與觀念推導

  1. 選項 (a) 與 (c) 錯誤:
    同一台電腦在執行不同程式時,其指令組合(Instruction Mix)與平均每指令週期數 CPICPI 皆不同。由公式 MIPS=Clock RateCPI×106\text{MIPS} = \frac{\text{Clock Rate}}{CPI \times 10^6} 可知,同一台機器執行不同程式的 MIPS 通常不相同。

  2. 選項 (b) 錯誤:
    MIPS(Million Instructions Per Second)忽略了指令總數(Instruction Count, ICIC)與指令集架構(ISA)的差異。例如編譯器優化可能減少指令數但使平均 CPICPI 增加,導致 MIPS 下降卻使執行時間變短。因此 MIPS 不是衡量效能的良好指標。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 4 題

Which of the following is true?
(a) Floating-point addition is associative.
(b) Right shift instruction is the same as integer division by a power of 2.
(c) The hardware of multiplication and division can be the same.
(d) Booth's algorithm is used to addition.
(e) Overflow occurs while adding two positive numbers and the sum is negative.

登入後即可作答並保存紀錄。

這一題的完整詳解

各選項解析

(a) 錯誤
浮點數加法不符合結合律(即 (a+b)+c≠a+(b+c)(a + b) + c \neq a + (b + c))。由於浮點數受限於有限位元精度,計算過程中會產生捨入誤差(Rounding Error)。
例如:(1020+−1020)+1.0=1.0(10^{20} + -10^{20}) + 1.0 = 1.0,但 1020+(−1020+1.0)=0.010^{20} + (-10^{20} + 1.0) = 0.0。

(b) 錯誤
右移指令不完全等同於 2 的次方整數除法:

  • 邏輯右移(Logical Right Shift)僅適用於無符號整數除法。
  • 算術右移(Arithmetic Right Shift)對負數採用向 −∞-\infty 取整(Floor),而整數除法則是向 00 取整(Truncate toward zero)。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 5 題

Which of the following is false, where RISC and CISC stand for "reduced instruction set computer" and
"complex instruction set computer"?
(a) RISC has fewer instructions than CISC.
(b) RISC has fewer addressing modes than CISC.
(c) CISC always has better performance than RISC.
(d) RISC is suitable for mobile devices.
(e) CISC always consumes much power than RISC.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 RISC 與 CISC 的指令集架構差異,以及「指令集複雜度」與效能、功耗之間的關係。

特性RISCCISC
指令種類較少較多
定址模式較少較多
指令格式通常固定長度常為可變長度
硬體解碼較簡單較複雜
功耗趨勢通常較低通常較高
典型應用行動裝置、嵌入式系統個人電腦、伺服器

處理器效能不能只由 RISC 或 CISC 的名稱決定,常用的 CPU 執行時間公式為

TCPU=IC×CPI×Tcycle=IC×CPIfT_{\text{CPU}}=IC \times CPI \times T_{\text{cycle}} =\frac{IC \times CPI}{f}

其中:

  • ICIC:執行的指令數量
  • CPICPI:每條指令平均所需的週期數
  • ff:時脈頻率

RISC 雖然指令種類較少、指令較簡單,但完成同一工作時可能需要較多指令;CISC 雖然可能用較少指令完成工作,卻可能具有較高的解碼複雜度與 CPI。因此,兩者沒有絕對的效能優劣。

解題方法

逐項檢查各敘述是否符合 RISC 與 CISC 的基本定義,特別注意「always」這類絕對化用語。凡是宣稱某一架構在所有情況下都必然較快,通常不成立,因為實際效能還取決於編譯器、程式特性、微架構、快取、管線與時脈等因素。

選項分析

(a) RISC has fewer instructions than CISC.

正確。

RISC 的設計理念是使用較精簡的指令集,因此指令種類通常少於 CISC。這裡的「fewer instructions」是指指令集中的指令種類較少,不是指執行某個程式時所需的指令總數一定較少。

(b) RISC has fewer addressing modes than CISC.

正確。

RISC 通常只保留少數常用的定址模式,例如暫存器定址與立即定址,藉此簡化指令解碼與硬體設計。CISC 則通常支援較多定址模式,例如直接定址、間接定址、基底加位移定址等。

(c) CISC always has better performance than RISC.

錯誤,這是本題答案。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 II. 1 題

II. 多重選擇題:所有答案必須符合才算分,每題5分。

  1. Which of the following statements are incorrect?
    (a) Filenames are usually stored in directory files.
    (b) Mounting points are usually regular files.
    (c) The technique used to improve I/O efficiency by temporarily storing repeatedly-used data is called buffering.
    (d) DMA controller are efficient for large I/O requirements.
    (e) Modern operating system usually knows the geometry of disks.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題綜合考查檔案系統、掛載、I/O 效能技術,以及現代磁碟的抽象化方式:

  • 目錄(directory):通常以特殊檔案形式存在,內含「檔名 → 檔案控制資訊」的對應,例如 Unix-like 系統中的 inode 編號。
  • 掛載點(mount point):掛載檔案系統時,作為接合位置的目錄。
  • Buffering:以暫存區吸收生產者與消費者之間的速度差異。
  • Caching:暫存經常重複使用的資料副本,以減少再次存取 I/O 的成本。
  • DMA(Direct Memory Access):由 DMA 控制器協助裝置與主記憶體直接交換大量資料,減少 CPU 逐筆搬移資料的負擔。
  • 磁碟幾何(disk geometry):傳統上指磁柱(cylinder)、磁頭(head)、磁區(sector)等實體結構;現代磁碟通常透過 LBA 隱藏實體幾何。

解題方法

題目問的是「不正確」的敘述,因此逐項判斷其定義是否符合作業系統中的標準概念:

  1. 檔名是否存在目錄資料中。
  2. 掛載點的檔案類型。
  3. 「暫存重複使用資料」應稱為 buffering 還是 caching。
  4. DMA 適合的 I/O 資料量。
  5. 現代作業系統是否掌握磁碟的實體幾何。

選項分析

(a) Filenames are usually stored in directory files.

正確。

目錄通常是特殊檔案,其內容包含目錄項目(directory entries)。每個目錄項目至少會記錄檔名,以及對應的 inode 或檔案控制區塊編號。因此,檔名通常儲存在目錄檔案中,而不是直接儲存在一般檔案的資料內容裡。


(b) Mounting points are usually regular files.

錯誤。

掛載點通常是目錄,而不是一般檔案。掛載操作會將某個檔案系統的根目錄接到既有目錄樹中的某個目錄,例如:

/mnt
/home
/media

掛載完成後,存取 /mnt 時,實際上會進入被掛載檔案系統的內容。

一般檔案(regular file)主要存放使用者資料;目錄則負責組織檔名與檔案的階層關係。因此「掛載點通常是一般檔案」不符合標準定義。


(c) The technique used to improve I/O efficiency by temporarily storing repeatedly-used data is called buffering.

錯誤。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 II. 2 題

Which of the following terms is a hardware-based synchronization tool?
(a) CAS instruction
(b) Peterson's Solution
(c) DMA
(d) Banker's algorithms
(e) MMU

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查「程序同步(process synchronization)」與「硬體式同步原語(hardware-based synchronization primitive)」的區別。

當多個執行緒同時存取共享資料時,若至少一個執行緒會修改資料,便可能發生競爭條件(race condition)。同步工具需能保護臨界區,使其滿足:

  • 互斥(mutual exclusion):同一時間最多一個執行緒進入臨界區。
  • 進度(progress):沒有執行緒在臨界區時,等待中的執行緒能繼續競爭。
  • 有限等待(bounded waiting):執行緒不會無限期等待。

硬體式同步通常利用處理器提供的「不可分割原子指令」,例如 Test-and-Set、Swap、Fetch-and-Add 與 Compare-and-Swap。

解題方法

判斷每個選項是否同時符合以下兩點:

  1. 用於處理多執行緒或多程序間的同步問題。
  2. 由硬體提供原子操作支援。

CAS 的語意為:

CAS⁡(x,expected,new)\operatorname{CAS}(x, expected, new)

處理器會以不可分割的方式完成:

  1. 讀取記憶體位置 xx 的原值。
  2. 比較原值是否等於 expectedexpected。
  3. 若相等,將 xx 更新為 newnew。
  4. 回傳更新前的原值。

概念上的表示如下,實際上整個比較與寫入動作由硬體以原子方式完成:

CAS(address, expected, new_value):
    old ← *address
    if old = expected:
        *address ← new_value
    return old

例如以 0 表示未上鎖、1 表示已上鎖:

while CAS(lock, 0, 1) ≠ 0:
    持續等待

執行臨界區

lock ← 0

只有成功將 lock 從 00 改成 11 的執行緒能進入臨界區,因此 CAS instruction 正是硬體式同步工具。

選項分析

(a) CAS instruction:正確

CAS 是處理器提供的原子硬體指令,能同時完成比較與更新,避免其他執行緒在兩個動作之間插入。它可用來實作:

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 II. 3 題

Which of the following situation must induce the context switch?
(a) When a process is complete.
(b) When an interrupt occurs.
(c) When the state of a process moves from waiting to running.
(d) When the state of a process moves from running to waiting.
(e) When a system call is being called.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

Context switch(內容切換)是指 CPU 從目前執行的程序切換至另一個可執行程序。作業系統必須先保存原程序的程式計數器、暫存器、堆疊指標等內容,再載入下一個程序的執行內容。

判斷重點是:目前執行中的程序是否仍能繼續使用 CPU。

  • running → waiting:目前程序被阻塞,不能繼續執行。
  • running → terminated:目前程序已結束,不能再執行。
  • waiting → ready:程序被喚醒,但不代表立即取得 CPU。
  • ready → running:排程器選定程序執行時,才會發生內容切換。

中斷或系統呼叫首先造成的是 user mode 與 kernel mode 之間的 mode switch,不必然造成不同程序之間的 context switch。

解題方法

逐一判斷事件發生後,原本正在執行的程序是否必須離開 CPU:

  1. 若原程序已無法繼續執行,必須切換至其他程序或 idle 程序。
  2. 若原程序仍可繼續執行,核心處理完事件後可返回原程序,不一定需要內容切換。

選項分析

(a) When a process is complete.——正確

程序完成後會進入 terminated 狀態,不能再回到 CPU 繼續執行。因此作業系統必須停止使用該程序的執行內容,改執行另一個可執行程序;若沒有其他程序,則切換至 idle 程序。

(b) When an interrupt occurs.——錯誤

中斷發生時,CPU 會進入核心的中斷處理常式,但處理完畢後可以繼續執行原本的程序。例如網路封包到達所產生的中斷,不必然需要更換目前的程序。

只有在中斷處理完後,排程器決定改執行另一個程序時,才會發生 context switch。因此中斷本身不一定造成內容切換。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 II. 4 題

A pipelining consists of five stages: IF (Instruction Fectching), ID (Instruction Decoding), Exe (Execution),
Mem (Memory), and WB (Write Back). For the following code shown in Figure 1, what types of
dependencies or hazards are there in this code?
(a) Structural hazard
(b) Data hazard
(c) Data dependency
(d) Output dependency
(e) Control hazard

lw $1, 10($0)
lw $2, 20($0)
add $3, $2, $4,
lw $1, 30($0)
lw $1, 40($0)

Figure 1

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題旨在測驗計算機組織中**管線化(Pipelining)**的兩大核心概念:**程式相依性(Dependencies)與管線冒險(Hazards)**的分類與判斷。

  1. 相依性(Dependencies,程式碼本身的資料流與名稱特性):

    • 真資料相依/資料相依(True Data Dependency / RAW - Read After Write):後續指令需要讀取前一指令所寫入的暫存器資料(IjI_j 讀取 IiI_i 寫入的暫存器,且 i<ji < j)。
    • 輸出相依(Output Dependency / WAW - Write After Write):兩道指令寫入同一個目標暫存器(IiI_i 與 IjI_j 寫入相同的暫存器,且 i<ji < j)。
    • 反相依(Anti-dependency / WAR - Write After Read):後續指令覆寫前一指令所需讀取的暫存器(IjI_j 寫入 IiI_i 讀取的暫存器,且 i<ji < j)。
  2. 管線冒險(Pipeline Hazards,管線執行時可能造成延遲或錯誤的硬體情況):

    • 結構冒險(Structural Hazard):硬體資源不足,導致多道指令在同一個週期爭奪同一硬體單元(例如指令記憶體與資料記憶體共用)。
    • 資料冒險(Data Hazard):指令在管線中重疊執行時,後續指令所需的資料尚未由先前指令產生並寫回(如 RAW 引起的資料衝突,最典型的例子為 Load-Use Hazard)。
    • 控制冒險(Control Hazard):由分支(Branch)或跳躍(Jump)指令決定下一道 PC 位址所引起的管線延遲。

解題方法

先分析給定程式碼各指令的「讀取集合(Read Set, RR)」與「寫入集合(Write Set, WW)」:

  • I1I_1: lw $1, 10($0)   ⟹  W(I1)={\implies W(I_1) = \{$1},R(I1)={1\}, R(I_1) = \{$0}0\}
  • I2I_2: lw $2, 20($0)   ⟹  W(I2)={\implies W(I_2) = \{$2},R(I2)={2\}, R(I_2) = \{$0}0\}
  • I3I_3: add $3, $2, $4   ⟹  W(I3)={\implies W(I_3) = \{$3},R(I3)={3\}, R(I_3) = \{$2, $4}4\}
  • I4I_4: lw $1, 30($0)   ⟹  W(I4)={\implies W(I_4) = \{$1},R(I4)={1\}, R(I_4) = \{$0}0\}
  • I5I_5: lw $1, 40($0)   ⟹  W(I5)={\implies W(I_5) = \{$1},R(I5)={1\}, R(I_5) = \{$0}0\}

逐步檢驗相依性與冒險狀況:

  1. 資料相依(Data Dependency / RAW):

    • I2I_2 寫入 $2(W(I2)={W(I_2) = \{$2}2\}),I3I_3 隨後讀取 $2(R(I3)={R(I_3) = \{$2, $4}4\}),滿足 W(I2)∩R(I3)≠∅W(I_2) \cap R(I_3) \neq \emptyset。
    • 存在 I2→I3I_2 \rightarrow I_3 的 Data Dependency。
  2. 資料冒險(Data Hazard):

    • $I_2
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 5 題

What techniques can be applied to solve the hazards in Figure 1?
(a) Forwarding
(b) Code interchanging
(c) Delayed branch
(d) Register renaming
(e) Loop unrolling

登入後即可作答並保存紀錄。

這一題的完整詳解

因本題未提供 Figure 1 之具體圖示與程式碼,假設 Figure 1 包含處理器管線中的資料冒險 (Data Hazard) 與控制冒險 (Control Hazard)。

各選項技術解決管道冒險 (Pipeline Hazards) 之原理如下:

  1. (a) Forwarding(前傳/旁路):硬體技術。將執行階段 (EX) 或記憶體階段 (MEM) 產生的結果直接傳遞給後續指令的 ALU 輸入端,用以解決 RAW(寫後讀)資料冒險。
  2. (b) Code interchanging(代碼交換/指令重排):編譯器優化技術。透過調整指令順序,將無相依關係的指令填入相依指令之間,藉此掩蓋資料冒險與控制冒險造成的停頓 (Stall)。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 III. 1 題

III. 填空題:不需要做答過程,每個答案務必標明題號和空格編號,每個空格5分。

  1. In the past, disks in IBM PC are addressed by 24-bit CHS address, where 10 bits for cylinders(C), 8 bits
    for disk heads(H), and 6 bits for sectors(S). Assuming the capacity of a sector is 512 bytes. The largest
    capacity of the disk is (a) ____ Byte. Consider the following disk I/O request sequence (assume the
    requests are represented by CHS address by hexadecimal, and the disk has the maximum capacity with
    the above addressing manner) 1AC320, A2F5BC, 7A182D, EF6714, FOD76, COF1D1, FF2236. The seek
    distance is (b) ____ (cylinder) when using the C-SCAN scheduling algorithm (please answer a decimal
    number).

登入後即可作答並保存紀錄。

這一題的完整詳解

(a) 磁碟最大容量計算

觀念與推導:
24-bit CHS 定址空間位元分配如下:

  • Cylinder (柱面):10 bits⇒210=102410\text{ bits} \Rightarrow 2^{10} = 1024 個柱面
  • Head (磁頭):8 bits⇒28=2568\text{ bits} \Rightarrow 2^8 = 256 個磁頭
  • Sector (磁區):6 bits⇒26=646\text{ bits} \Rightarrow 2^6 = 64 個磁區/軌

單一磁區容量為 512 Bytes512\text{ Bytes},磁碟最大尋址容量為:
Capacity=210×28×26×512 Bytes=233 Bytes=8,589,934,592 Bytes\text{Capacity} = 2^{10} \times 2^8 \times 2^6 \times 512\text{ Bytes} = 2^{33}\text{ Bytes} = 8,589,934,592\text{ Bytes}


(b) C-SCAN 磁頭移動距離計算

1. 解析 16 進位 CHS 位址之柱面編號 (Cylinder):
24-bit 位址的高 10 位元(bits 23~14)為柱面編號 CC,即 C=HexValue≫14C = \text{HexValue} \gg 14:

  • 1AC320 →1753888≫14=107\rightarrow 1753888 \gg 14 = 107(第一個請求,作為初始磁頭位置)
  • A2F5BC →10679740≫14=651\rightarrow 10679740 \gg 14 = 651
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 III. 2 題

  1. The following code section is retrieved from Linux kernel code (/mm/filemap.c), and it describes the
    rules of locking order. The main purpose of predefining the lock order is to break which deadlock
    condition for preventing deadlock? (c) ____

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查作業系統的死結(deadlock)必要條件,以及「鎖順序(lock ordering)」如何避免死結。

死結成立通常必須同時具備以下四項條件:

  1. 互斥(Mutual Exclusion):資源同一時間只能由一個執行緒持有。
  2. 持有並等待(Hold and Wait):執行緒持有部分資源,同時等待其他資源。
  3. 不可剝奪(No Preemption):資源不能被強制從持有者手中取走。
  4. 循環等待(Circular Wait):存在一個循環,使每個執行緒都等待下一個執行緒所持有的資源。

四項條件必須同時存在才會形成死結;只要破壞其中一項,即可避免死結。

解題方法

預先規定所有鎖的取得順序,例如:

L1≺L2≺L3L_1 \prec L_2 \prec L_3

所有執行緒都必須依照由小到大的順序取得鎖:

lock(L1)
lock(L2)

禁止另一個執行緒採取相反順序:

lock(L2)
lock(L1)

若不限制順序,可能發生:

  • 執行緒 T1T_1 持有 L1L_1,等待 L2L_2;
  • 執行緒 T2T_2 持有 L2L_2,等待 L1L_1。

其等待關係為:

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 3 題

  1. Consider the above snapshot of a system: Suppose there are 5 tasks (TO through T4) and 4 different
    resource types (A, B, C, D). Assume Resources (A, B, C, D) have (6, 7, 6, 10) instances, respectively. (i.e.,
    A has 6 instances, B has 7 instances, C has 6 instances, and D has 10 instances). What is the maximum
    number of Resources (A, B, C, D) that the OS can grant TO to request immediately? (d) ____

登入後即可作答並保存紀錄。

這一題的完整詳解

在銀行家演算法(Banker's Algorithm)中,作業系統(OS)能立即批准任務 T0T_0 的最大資源請求向量 Request0=(rA,rB,rC,rD)\text{Request}_0 = (r_A, r_B, r_C, r_D),必須同時滿足以下三項條件:

  1. 不可超過任務的剩餘需求:
    Request0≤Need0=Max0−Allocation0\text{Request}_0 \le \text{Need}_0 = \text{Max}_0 - \text{Allocation}_0
  2. 不可超過系統當前可用資源:
    Request0≤Available=Total−∑i=04Allocationi\text{Request}_0 \le \text{Available} = \text{Total} - \sum_{i=0}^{4} \text{Allocation}_i
  3. 分配後系統必須處於安全狀態(Safe State):
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 4 題

  1. (e) ____ is a technology used to address the performance and reliability issues of the storage system by
    using multiple disks.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查儲存系統中的 RAID 技術:

**RAID(Redundant Array of Independent Disks,獨立磁碟冗餘陣列)**是將多個實體磁碟組合成一個邏輯儲存單元,透過資料分割、複製或同位元檢查碼,同時改善:

  • 效能:利用資料分條(striping)將資料分散至多顆磁碟,增加平行讀寫能力。
  • 可靠性:利用鏡像(mirroring)或同位元檢查碼(parity),在磁碟故障時重建遺失資料。

常見 RAID 等級如下:

  • RAID 0:資料分條,效能佳,但沒有容錯能力。
  • RAID 1:資料鏡像,可靠性高,但可用容量約為原始容量的一半。
  • RAID 5:資料分條搭配分散式同位元檢查碼,可容許一顆磁碟故障。
  • RAID 6:使用雙重同位元檢查碼,可容許兩顆磁碟同時故障。

因此,題幹所描述的「使用多顆磁碟以改善儲存系統效能與可靠性」正是 RAID 的定義。

解題方法

依照題幹中的關鍵描述判斷:

  1. using multiple disks:表示將多顆磁碟整合使用。
  2. performance issues:對應資料分條與平行存取。
  3. reliability issues:對應鏡像或同位元檢查碼所提供的容錯能力。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 5 題

  1. The decimal value for the IEEE 754 single-precision representation of the number 1, 01111110,
    11000000000000000 is ____ (f).

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

IEEE 754 單精度浮點數由三部分組成:

  • 符號位元 SS:決定正負。
  • 指數欄位 EE:使用偏移值 127127。
  • fraction 欄位 FF:有效數字為隱含的 1.F1.F。

當指數欄位不是全 00、也不是全 11 時,使用正規化數公式:

x=(−1)S(1.F)2×2E−127x=(-1)^S(1.F)_2\times 2^{E-127}

題目列出的 fraction 為 1100000000000000011000000000000000,共有 1717 位;IEEE 754 單精度的 fraction 欄應有 2323 位,因此依通常題意將省略的尾端 66 位視為 00。

解題方法

題目各欄位為:

S=1,E=011111102,F=110000000000000000000002S=1,\qquad E=01111110_2,\qquad F=11000000000000000000000_2

首先,符號位元為 11,所以數值為負數:

(−1)S=(−1)1=−1(-1)^S=(-1)^1=-1

接著計算實際指數:

E=011111102=126E=01111110_2=126

因此:

e=E−127=126−127=−1e=E-127=126-127=-1

fraction 欄代表小數:

F=(0.11000000000000000000000)2F=(0.11000000000000000000000)_2

只有前兩個位元為 11,所以:

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 6 題

  1. Assume an instruction cache miss rate for a program is 3% and a data cache miss rate is 5%. Assume a
    processor has a CPI of 2 without any stalls, the miss penalty is 100 cycles for all misses, and the percent
    of accessing data cache is 35%. The sppedup is ____ (g) while a processor with a perfect cache that
    never missed run compared with the previous one.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

CPU 的實際執行效率受到記憶體停頓週期(Memory Stall Cycles)影響。實際 CPICPI 等於理想 CPICPI 加上每指令因指令快取(I-Cache)與資料快取(D-Cache)缺失所產生的停頓週期。


推導步驟

  1. 計算每指令之記憶體停頓週期(Memory Stall Cycles per Instruction):
    • 指令快取停頓週期:
      I-Cache Stall=3%×100=3 cycles\text{I-Cache Stall} = 3\% \times 100 = 3 \text{ cycles}
    • 資料快取停頓週期:
      D-Cache Stall=35%×5%×100=1.75 cycles\text{D-Cache Stall} = 35\% \times 5\% \times 100 = 1.75 \text{ cycles}
    • 總記憶體停頓週期:
      Total Stall Cycles=3+1.75=4.75 cycles\text{Total Stall Cycles} = 3 + 1.75 = 4.75 \text{ cycles}
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 7 題

  1. Given a 5GHz machine with a CPI of 1.0, we assume the miss rate of the cache is 2%, the access time of
    DRAM is 100ns. The average memory time is ____ (h). If we add a L2 cache with 5ns access time and
    decrease of overall main memory miss rate to 0.5%, the average memory time is ____ (i).

登入後即可作答並保存紀錄。

這一題的完整詳解

觀念與公式

  1. CPU 時脈週期 (TclkT_{clk}):
    Tclk=1Clock Rate=15 GHz=0.2 nsT_{clk} = \frac{1}{\text{Clock Rate}} = \frac{1}{5 \text{ GHz}} = 0.2 \text{ ns}
    在流水線架構下,L1L1 快取的命中時間 (Hit TimeL1\text{Hit Time}_{L1}) 預設為 1 cycle=0.2 ns1 \text{ cycle} = 0.2 \text{ ns}。

  2. 平均記憶體存取時間 (AMAT) 公式:

    • 單層 Cache:
      AMAT=Hit TimeL1+Miss RateL1×Miss PenaltyL1\text{AMAT} = \text{Hit Time}_{L1} + \text{Miss Rate}_{L1} \times \text{Miss Penalty}_{L1}
    • 兩層 Cache (L1 + L2):
      AMAT=Hit TimeL1+Miss RateL1×Hit TimeL2+Global Miss RateDRAM×Access TimeDRAM\text{AMAT} = \text{Hit Time}_{L1} + \text{Miss Rate}_{L1} \times \text{Hit Time}_{L2} + \text{Global Miss Rate}_{\text{DRAM}} \times \text{Access Time}_{\text{DRAM}}

計算步驟

1. 求解 (h):未加入 L2 Cache 前的 AMAT

  • Hit TimeL1=0.2 ns\text{Hit Time}_{L1} = 0.2 \text{ ns}
  • Miss RateL1=2%=0.02\text{Miss Rate}_{L1} = 2\% = 0.02
  • Miss PenaltyL1=Access TimeDRAM=100 ns\text{Miss Penalty}_{L1} = \text{Access Time}_{\text{DRAM}} = 100 \text{ ns}
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 8 題

  1. Suppose you want to perform two sums: one is a sum of two scalar variables and one is a matrix sum of
    a pair of two-dimensional arrays, size 1000 by 1000. The speedup is ____ (j) if you use 1000 processors
    to do them.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查平行計算的加速比(speedup)與 Amdahl 定律:

Sp=T1TpS_p=\frac{T_1}{T_p}

其中 T1T_1 是使用一個處理器的執行時間,TpT_p 是使用 pp 個處理器的執行時間。以下假設每次加法耗時相同,且忽略通訊、同步與分工成本。

解題方法

純量相加只需執行一次加法:

s=x+ys=x+y

因此工作量為 11。

矩陣相加的每個元素可獨立計算:

Cij=Aij+BijC_{ij}=A_{ij}+B_{ij}

矩陣大小為 1000×10001000\times1000,所以需要的加法次數為:

1000×1000=1,000,0001000\times1000=1,000,000

使用一個處理器時:

T1=1+1,000,000=1,000,001T_1=1+1,000,000=1,000,001

使用 10001000 個處理器時,矩陣加法可平均分配,每個處理器計算:

1,000,0001,000=1,000\frac{1,000,000}{1,000}=1,000

次加法;純量相加仍是無法分割的單一加法,因此:

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

其他考古題