111 年 國立中山大學資訊工程學系資訊安全碩士班《作業系統》

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

第 1-(1) 題20 分

Processes will never finish in a deadlock.
a. Please show and explain the four representative conditions that hold simultaneously in a system for a deadlock situation to occur.
b. Please explain what are the prevention, avoidance, detection, and recovery of deadlock?

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

這一題的完整詳解

一、核心觀念與解題方法

**死結(deadlock)**是指一組行程彼此等待對方所持有的資源,而這些資源必須由持有者繼續執行後才能釋放,導致整組行程都無法前進。若沒有外部介入解除死結,這些行程就無法完成。

本題分為兩部分:

  • 第 a 小題:說明死結發生時同時成立的四個必要條件,稱為 Coffman 條件。
  • 第 b 小題:依「事先破壞條件、核准前檢查、事後檢查、發生後解除」的順序,區分死結預防、避免、偵測與復原。

必須掌握:四個條件都是死結的必要條件,但系統允許這四種條件存在,不代表目前必然已經死結。

二、第 a 小題:死結的四個必要條件

1. 互斥(Mutual Exclusion)

至少有一種資源不能同時由多個行程使用;當某行程持有該資源時,其他行程必須等待。

例如,同一把互斥鎖在同一時間只能由一個行程持有。若所有資源都能無限制共享,就不會因爭用資源而形成死結。

2. 持有並等待(Hold and Wait)

行程已持有至少一項資源,同時等待取得其他行程持有的資源。

例如,P1P_1 已持有資源 R1R_1,卻仍等待 R2R_2。關鍵是:等待新資源時,沒有先釋放既有資源。

3. 不可搶占(No Preemption)

系統不能強制收回行程已取得的資源;資源只能由持有者在使用完畢後主動釋放。

例如,行程持有互斥鎖時,系統通常不能直接將鎖交給其他行程,否則會破壞臨界區資料的一致性。

4. 循環等待(Circular Wait)

存在一組行程 P0,P1,…,Pk−1P_0,P_1,\ldots,P_{k-1},其中每個行程都等待下一個行程所持有的資源,最後一個又等待第一個:

P0→P1→⋯→Pk−1→P0P_0 \rightarrow P_1 \rightarrow \cdots \rightarrow P_{k-1} \rightarrow P_0

此處箭頭表示「等待對方持有的資源」。

例如,P1P_1 持有 R1R_1、等待 R2R_2;P2P_2 持有 R2R_2、等待 R1R_1。兩者都無法取得下一項資源,也都無法繼續執行以釋放原有資源,因此形成死結。

三、第 b 小題:死結的四種處理方式

1. 死結預防(Prevention):破壞至少一個必要條件

預防是在資源使用規則上加以限制,使四個必要條件無法同時成立。

破壞的條件作法主要限制
互斥將適合共享的資源設計成可共享,例如唯讀資料互斥鎖等資源本質上需要獨占,無法全面採用
持有並等待要求行程一次取得所需資源;取得新資源前先釋放既有資源資源利用率降低,行程也容易長時間等待
不可搶占當行程無法取得新資源時,收回它已持有的資源,稍後再取得並重試只適合能安全保存、還原狀態的資源
循環等待為資源類型訂定全域順序,要求所有行程依相同順序取得資源程式必須遵守取得順序,資源使用彈性降低

其中,固定資源取得順序是常見作法。若行程只能依資源編號遞增取得資源,等待鏈的編號就不會繞回較小值,因此無法形成循環。

2. 死結避免(Avoidance):只核准會維持安全狀態的配置

避免不必直接禁止四個條件,而是在每次核准資源請求前,判斷配置後是否仍為安全狀態(safe state)。

若存在一個安全序列,使系統能依序滿足各行程的剩餘最大需求,讓它們完成並釋放資源,該狀態就是安全狀態。若核准請求後進入不安全狀態,就暫緩該請求。

多實例資源的代表方法為銀行家演算法(Banker’s Algorithm),需要事先知道各行程的最大需求:

Needi=Maxi−AllocationiNeed_i = Max_i - Allocation_i

其中:

  • MaxiMax_i:行程 PiP_i 宣告的最大資源需求。
  • AllocationiAllocation_i:目前已配置給 PiP_i 的資源。
  • NeediNeed_i:PiP_i 在最大需求範圍內,尚需取得的資源。

安全性檢查先令 Work=AvailableWork=Available,尋找滿足

Needi≤WorkNeed_i \leq Work
🔒

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

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

免費註冊

第 1-(2) 題15 分

Suppose we have the following set of processes all of which arrive the system at time 0, with the length of the CPU burst given in milliseconds.

ProcessBurst TimePriority
P1P_1102
P2P_213
P3P_344
P4P_425
P5P_561

a. What are the completion time and average waiting time of these processes by using the first-come, first-served scheduling algorithm?
b. What are the completion time and average waiting time of these processes by using the shortest-job-first scheduling algorithm?
c. Suppose a smaller priority number stands for a higher priority. What is the completion time of these processes by using a non-preemptive priority scheduling algorithm?

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

這一題的完整詳解

核心觀念

本題比較三種 CPU 排程演算法:

  • First-Come, First-Served(FCFS):依到達順序執行。本題所有行程同時於時間 00 到達,因此採題目表格順序 P1→P2→P3→P4→P5P_1 \to P_2 \to P_3 \to P_4 \to P_5。
  • Shortest-Job-First(SJF):優先執行 CPU burst 較短的行程。本題未指定可搶先,因此採非搶先式 SJF。
  • Non-preemptive Priority Scheduling:優先執行優先權較高的行程;題目指定數字越小,優先權越高。

相關公式如下:

Completion Time(CT)=該行程完成時刻\text{Completion Time(CT)}=\text{該行程完成時刻} Waiting Time(WT)=開始執行時刻−到達時刻\text{Waiting Time(WT)}=\text{開始執行時刻}-\text{到達時刻}

由於所有行程的到達時刻皆為 00,所以:

WT=開始執行時刻\text{WT}=\text{開始執行時刻}

平均等待時間為:

Average WT=∑WT行程數\text{Average WT} = \frac{\sum \text{WT}}{\text{行程數}}

解題方法

畫出各演算法的 Gantt chart,再由時間軸讀出每個行程的完成時間與等待時間。


(a)First-Come, First-Served(FCFS)

依表格順序執行:

P1→P2→P3→P4→P5P_1 \to P_2 \to P_3 \to P_4 \to P_5

Gantt chart:

0        10   11      15   17          23
|   P1   | P2 |  P3   | P4 |    P5     |

各行程資料如下:

Process開始時間Burst TimeCompletion TimeWaiting Time
P1P_1001010101000
P2P_210101111111010
P3P_311114415151111
P4P_415152217171515
P5P_517176623231717

平均等待時間:

Average WT=0+10+11+15+175=535=10.6 ms\text{Average WT} = \frac{0+10+11+15+17}{5} = \frac{53}{5} = 10.6\text{ ms}

(b)Shortest-Job-First(SJF)

按照 Burst Time 由小到大排序:

P2(1)→P4(2)→P3(4)→P5(6)→P1(10)P_2(1)\to P_4(2)\to P_3(4)\to P_5(6)\to P_1(10)

Gantt chart:

0   1     3        7             13              23
|P2 | P4  |   P3   |      P5     |       P1       |

各行程資料如下:

Process開始時間Burst TimeCompletion TimeWaiting Time
P2P_200111100
P4P_411223311
P3P_333447733
P5P_57766131377
P1P_11313101023231313

依原本的行程編號整理完成時間:

🔒

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

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

免費註冊

第 1-(3) 題15 分

Please show and explain the system models of nonvirtual machine and virtual machine, and then explain type 1 hypervisor and type 2 hypervisor.

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

這一題的完整詳解

核心觀念

本題考查作業系統虛擬化的基本系統模型,以及虛擬機監控器(Virtual Machine Monitor, VMM;亦稱 Hypervisor)的兩種部署型態:

  1. 非虛擬機系統中,應用程式透過作業系統使用硬體。
  2. 虛擬機系統中,Guest OS 不直接管理真實硬體,而是透過 Hypervisor 使用虛擬硬體。
  3. Type 1 Hypervisor 直接執行於硬體之上。
  4. Type 2 Hypervisor 執行於既有的 Host OS 之上。

虛擬化的核心,是讓一台實體電腦模擬出多台彼此隔離的虛擬電腦,使每個 Guest OS 都以為自己擁有獨立的處理器、記憶體、磁碟與網路裝置。


一、非虛擬機系統模型

在傳統的非虛擬機系統中,硬體上只執行一個主要作業系統。應用程式透過系統呼叫請求作業系統服務,作業系統則直接控制硬體資源。

系統架構

+----------------------------------+
|        Application Programs     |
|       應用程式、使用者程式        |
+----------------------------------+
|        Operating System         |
| 行程管理、記憶體管理、檔案系統、I/O |
+----------------------------------+
|          Physical Hardware      |
| CPU、記憶體、磁碟、網路卡、裝置     |
+----------------------------------+

運作方式

應用程式不能直接執行特權操作,例如:

  • 修改頁表
  • 設定中斷控制器
  • 直接控制磁碟控制器
  • 修改 CPU 控制暫存器
  • 關閉或設定硬體中斷

應用程式必須透過系統呼叫進入核心模式,由作業系統代表它執行這些操作。

典型流程如下:

應用程式
   │
   │ system call
   ▼
作業系統核心
   │
   │ 執行特權指令
   ▼
實體硬體

在此模型中,作業系統同時扮演兩個角色:

  • 提供應用程式使用的抽象介面,例如檔案、行程與虛擬記憶體。
  • 直接管理及分配實體硬體資源。

二、虛擬機系統模型

虛擬機系統在硬體與 Guest OS 之間加入 Hypervisor。Hypervisor 將一台實體電腦分割成多個彼此隔離的虛擬機。

系統架構

+------------------+  +------------------+
|  Application      |  |  Application      |
+------------------+  +------------------+
|  Guest OS 1       |  |  Guest OS 2       |
+------------------+  +------------------+
|       Virtual Hardware              |
+-------------------------------------+
|       Hypervisor / VMM              |
+-------------------------------------+
|       Physical Hardware             |
+-------------------------------------+

每一個虛擬機通常包含:

  • 一個 Guest OS
  • 一組虛擬 CPU
  • 一段虛擬記憶體
  • 虛擬磁碟
  • 虛擬網路卡
  • 其他虛擬裝置

Hypervisor 的主要工作

1. CPU 虛擬化

Hypervisor 將實體 CPU 的時間分配給多個虛擬 CPU。例如:

實體 CPU
   ├── 虛擬 CPU 1:Guest OS 1
   ├── 虛擬 CPU 2:Guest OS 2
   └── 虛擬 CPU 3:Guest OS 3

當某個 Guest OS 執行時,Hypervisor 讓它使用實體 CPU;切換到其他 Guest OS 時,則保存並恢復各虛擬機的執行狀態。

2. 記憶體虛擬化

Guest OS 看到的是 Guest Physical Address,實體機器實際使用的是 Machine Address,中間需要由 Hypervisor 進行轉換:

Guest Virtual Address→Guest Physical Address→Machine Address\text{Guest Virtual Address} \rightarrow \text{Guest Physical Address} \rightarrow \text{Machine Address}

在硬體支援下,這項工作通常透過 Nested Page Tables(NPT)或 Extended Page Tables(EPT)完成。

3. I/O 虛擬化

Guest OS 對虛擬磁碟或虛擬網路卡進行操作時,Hypervisor 會將操作轉換成對實體裝置的操作。例如:

Guest OS 寫入虛擬磁碟
        │
        ▼
Hypervisor 轉換請求
        │
        ▼
實體磁碟寫入

4. 隔離與保護

Hypervisor 必須確保:

  • Guest OS 不能讀取其他 Guest OS 的記憶體。
  • 一個虛擬機不能任意控制其他虛擬機的虛擬裝置。
  • Guest OS 不能直接修改 Hypervisor。
  • 任一 Guest OS 發生錯誤時,不會直接破壞其他虛擬機。

三、虛擬機中的權限與陷阱處理

Guest OS 需要執行許多特權操作,但它不能真的直接控制實體硬體。因此,Hypervisor 必須攔截這些操作。

一般流程

Guest OS 執行特權操作
          │
          ▼
     Trap / VM Exit
          │
          ▼
Hypervisor 檢查並模擬操作
          │
          ▼
返回 Guest OS 繼續執行

例如 Guest OS 想要修改頁表時:

  1. Guest OS 發出特權操作。
  2. CPU 或虛擬化硬體將控制權交給 Hypervisor。
  3. Hypervisor 驗證該操作是否合法。
  4. Hypervisor 更新對應的虛擬化結構。
  5. 回到 Guest OS 繼續執行。

部分虛擬化系統也會使用 Hypercall。Hypercall 的概念類似系統呼叫,但呼叫者是 Guest OS,服務提供者是 Hypervisor:

Guest OS
   │ hypercall
   ▼
Hypervisor

四、Type 1 Hypervisor

Type 1 Hypervisor 又稱:

  • Bare-metal Hypervisor
  • Native Hypervisor

它直接執行在實體硬體上,不依賴一般用途的 Host OS。

系統模型

🔒

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

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

免費註冊

第 1-(4) 題10 分

What are the segmentation and paging of memory management.

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

這一題的完整詳解

核心觀念

本題旨在考驗作業系統(Operating System)中記憶體管理(Memory Management)的兩大非連續記憶體分配(Non-contiguous Memory Allocation)機制:分頁機制(Paging) 與 分段機制(Segmentation)。

在實體記憶體管理中,為了避免連續分配(Contiguous Allocation)所導致的外部碎片(External Fragmentation)問題,作業系統發展出這兩種主要的虛擬記憶體定址與分配技術:

  1. 分段機制(Segmentation):

    • 程式設計者觀點(Logical User View):將邏輯位址空間分割為數個大小不一、具有邏輯意義的區塊(稱為 Segment,例如:Code/Text Segment、Data Segment、Stack Segment、Heap Segment)。
    • 位址結構:邏輯位址由二元組構成:Logical Address=(Segment Number s,Offset d)\text{Logical Address} = (\text{Segment Number } s, \text{Offset } d)。
    • 硬體支援:透過段表(Segment Table) 記錄每個 Segment 的基底位址(Base Address)與界限長度(Limit/Length)。
    • 優缺點:符合模組化與保護/共享機制,但因為段大小不一,容易產生外部碎片(External Fragmentation)。
  2. 分頁機制(Paging):

    • 實體硬體觀點(Physical Hardware View):將虛擬邏輯位址空間切分成固定大小的區塊,稱為頁面(Pages);將實體記憶體空間切分成相同大小的區塊,稱為頁框(Frames)。
    • 位址結構:邏輯位址分割為兩部分:Logical Address=(Page Number p,Page Offset d)\text{Logical Address} = (\text{Page Number } p, \text{Page Offset } d)。
    • 硬體支援:透過頁表(Page Table) 記錄 Page 對應到實體 Frame 的映射關係。
    • 優缺點:徹底解決外部碎片問題,但由於頁面大小固定,程式最後一個 Page 通常無法填滿,會產生內部碎片(Internal Fragmentation)。

解題方法

回答本題時,切入點應分為三大部分:

  1. 分別精確定義 Segmentation 與 Paging 的運作原理、邏輯位址轉譯機制與硬體架構。
  2. 透過關鍵指標(單位大小、觀點、碎片類型、位址映射方式、保護與共享能力)進行對比分析。
  3. 簡述結合兩者優點的分段分頁機制(Paged Segmentation),呈現完整的記憶體管理全貌。

詳細觀念與比較分析

一、 分段機制(Segmentation)

  • 定義:一種支援使用者邏輯觀點的記憶體管理方案。一個程式是由一組 Segment 組成,每個 Segment 為一個邏輯單位(如主程式、函數、物件、全域變數、堆疊等)。
  • 位址轉換(Address Translation):
    CPU 產生邏輯位址 (s,d)(s, d),作業系統經由 Segment Table 進行轉換:
    1. 檢查 Offset dd 是否超出 limit(若 d≥Limitd \ge \text{Limit},觸發 Trap/Segment Fault)。
    2. 若位址合法,實體位址(Physical Address)計算為:Physical Address=Base+d\text{Physical Address} = \text{Base} + d。

二、 分頁機制(Paging)

  • 定義:一種將虛擬位址空間與實體位址空間解耦的記憶體管理方案。將實體記憶體分割成固定大小的 Frame,邏輯記憶體分割成大小相同的 Page(通常為 4 KB4\text{ KB})。
  • 位址轉換(Address Translation):
🔒

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

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

免費註冊

第 1-(5) 題10 分

What is the redundant array of independent disks (RAID)? Please explain the following levels of RAID: RAID 0 to RAID 6.

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

這一題的完整詳解

核心觀念

本題考查作業系統中 Secondary Storage Structure 之 RAID(Redundant Array of Independent Disks,獨立磁碟冗餘陣列) 架構。

RAID 是一種將多個實體磁碟組合為單一邏輯磁碟(Logical Disk)的儲存技術,旨在提升效能(Performance)、**可靠性(Reliability / Fault Tolerance)**或兩者兼具。

1. RAID 的核心機制

  • Striping(條帶化/平行切割):將資料切分成固定大小的塊(Block/Strip),分散寫入不同磁碟,藉由多磁碟併行讀寫(Parallelism)來大幅提升 I/O 效能。
  • Mirroring(鏡像/複製):將相同資料完整複製一份存在另一顆磁碟,提供最高的資料冗餘性與可靠度。
  • Parity(奇偶校驗):利用 XOR(異或)邏輯運算計算奇偶校驗碼。當其中一顆磁碟損壞時,可利用其餘磁碟資料與 Parity 進行 XOR 運算還原遺失資料,比 Mirroring 更節省容量成本。

解題方法:RAID 0 至 RAID 6 詳盡解析

針對題目要求,需先定義 RAID,再依序針對 RAID 0 至 RAID 6 的技術架構、資料組織方式、容錯能力、磁碟利用率及優缺點進行完整說明。

假設磁碟總數為 NN(N≥1N \ge 1 且滿足各 level 最少磁碟數需求)。

RAID 0:Striping(無冗餘條帶化)

  • 架構與原理:僅採用 Striping 技術。資料被分割後輪流寫入各顆磁碟,不包含任何 Mirroring 或 Parity 機制。
  • 最少磁碟數:N≥1N \ge 1(通常使用 N≥2N \ge 2)。
  • 儲存容量 / 利用率:NN,利用率為 100%100\%。
  • 容錯能力:零容錯。任何一顆磁碟損壞,整體資料即宣告遺失(資料遺失機率隨磁碟數增加而上升)。
  • 效能:讀寫效能最佳(約為單碟的 NN 倍增益)。

RAID 1:Mirroring(鏡像)

  • 架構與原理:僅採用 Mirroring 技術。每一份資料寫入主磁碟的同時,也會完整寫入鏡像磁碟。
  • 最少磁碟數:N≥2N \ge 2(通常為偶數顆)。
  • 儲存容量 / 利用率:N2\frac{N}{2}(以雙碟為例),利用率為 50%50\%(或 1M\frac{1}{M},MM 為複本數)。
  • 容錯能力:高容錯。可容許一對鏡像組中的一顆磁碟損壞(最佳狀況下最多可壞 N/2N/2 顆非互為鏡像的磁碟)。
  • 效能:寫入時需 simultaneous write 兩份,寫入效能與單碟相當;讀取時可並行從兩碟讀取,讀效能提升。

RAID 2:Bit-Level Striping with Hamming Code Parity(位元級條帶化與漢明碼校驗)

  • 架構與原理:資料以 Bit(位元) 為單位分割儲存於各資料碟,並採用 Hamming Code(漢明碼) 計算 ECC 冗餘資訊儲存於專用的校驗碟中。需嚴格同步所有磁碟馬達旋轉(Spindle Synchronization)。
  • 最少磁碟數:N≥3N \ge 3(實際常為 33 顆資料碟 + 44 顆校驗碟,共 77 顆)。
  • 儲存容量 / 利用率:N−PN - P(其中 PP 為 Hamming Code 所需的校驗碟數量),利用率低於 RAID 3/4/5。
  • 容錯能力:可修正單位元錯誤(Single-bit Error Correction)並偵測雙位元錯誤。
  • 現狀與評價:結構複雜、硬體成本過高且現代硬碟本身已內建 ECC 偵錯,實際產品中已被淘汰。

RAID 3:Byte-Level Striping with Dedicated Parity(位元組級條帶化與專用校驗碟)

  • 架構與原理:資料以 Byte(位元組) 為單位分割寫入資料碟,並將所有資料碟的 XOR Parity 統一儲存於 單一專用的 Parity 磁碟。同樣需要磁碟同步旋轉。
  • 最少磁碟數:N≥3N \ge 3。
  • 儲存容量 / 利用率:N−1N - 1,利用率為 N−1N\frac{N-1}{N}。
  • 容錯能力:容許任意 11 顆磁碟損壞。若資料碟壞掉,利用其餘資料碟與 Parity 碟作 XOR 即可復原:
    Di=D1⊕D2⊕⋯⊕Di−1⊕Di+1⊕⋯⊕DN−1⊕PD_i = D_1 \oplus D_2 \oplus \dots \oplus D_{i-1} \oplus D_{i+1} \oplus \dots \oplus D_{N-1} \oplus P
  • 瓶頸:每次寫入資料都必須更新 Parity,導致 專用 Parity 碟成為寫入效能瓶頸(Parity Bottleneck)。

RAID 4:Block-Level Striping with Dedicated Parity(區塊級條帶化與專用校驗碟)

  • 架構與原理:與 RAID 3 類似,但改以 Block(區塊) 為單位進行 Striping。寫入獨立區塊時不需要所有磁碟同步旋轉,適合大容量或獨立區塊寫入。Parity 依然集中儲存於 單一專用 Parity 碟。
  • 最少磁碟數:N≥3N \ge 3。
  • 儲存容量 / 利用率:N−1N - 1,利用率為 N−1N\frac{N-1}{N}。
  • 容錯能力:容許任意 11 顆磁碟損壞。
  • 瓶頸:雖然支援獨立區塊讀取,但每次寫入仍必須競爭寫入同一顆 Parity 磁碟,Parity Bottleneck 問題依然嚴重。

RAID 5:Block-Level Striping with Distributed Parity(區塊級條帶化與分散式校驗)

  • 架構與原理:改進 RAID 4。資料以 Block 為單位分割,並將 Parity 區塊輪流分散儲存於所有磁碟中(Distributed Parity),不再使用專用 Parity 碟。
  • 最少磁碟數:N≥3N \ge 3。
  • 儲存容量 / 利用率:N−1N - 1,利用率為 N−1N\frac{N-1}{N}。
  • 容錯能力:容許任意 11 顆磁碟損壞。
🔒

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

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

免費註冊

第 1-(6) 題10 分

Module-management system, module loader and unloader, driver-registration system, and conflict-resolution mechanism are four components of Linux, please explain what they do in such system. And, please explain the basic idea of completely fair scheduler (CFS).

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

這一題的完整詳解

核心觀念

本題出自 Linux 作業系統的核心架構與行程排程機制,主要考察兩大重點:

  1. Linux 可載入核心模組(Loadable Kernel Modules, LKM)架構:包含模組管理系統(Module-management system)、模組載入與卸載器(Module loader and unloader)、驅動程式註冊系統(Driver-registration system)以及衝突解決機制(Conflict-resolution mechanism)四大元件的功能與角色。
  2. 完全公平排程器(Completely Fair Scheduler, CFS):Linux 2.6.23 起引進的預設預時型(preemptive)行程排程器,其核心思想與設計目標。

解題方法與內容詳解

第一部分:Linux 四大模組與驅動元件運作機制說明

  1. Module-management System(模組管理系統)

    • 作用與功能:管理核心模組之間的依賴關係(Dependencies)與符號表(Symbol Table)。當一個模組需要呼叫另一個模組定義的函式或變數時,模組管理系統會維護並提供 EXPORT_SYMBOL() 所匯出的符號,同時記錄每個模組的引用計數(Reference Count),防止正在被使用中的模組被意外卸載。
  2. Module Loader and Unloader(模組載入與卸載器)

    • 作用與功能:
      • Module Loader:負責將已編譯好的模組檔(.ko 檔案)動態載入至核心記憶體空間。它會配置核心記憶體、進行符號重定位(Symbol Relocation),並執行模組的初始化函式(如 module_init() 或 init_module())。在使用者空間對應的工具為 insmod 或 modprobe。
      • Module Unloader:負責在模組不再被需要時從核心記憶體中安全移除。它會先檢查模組的引用計數是否為 zero,確認無人使用後執行清理函式(如 module_exit() 或 cleanup_module()),並釋放其佔用的記憶體空間。在使用者空間對應的工具為 rmmod。
  3. Driver-registration System(驅動程式註冊系統)

    • 作用與功能:允許驅動程式在載入時向 Linux 核心註冊其支援的裝置類別與存取介面(如字元裝置 register_chrdev、區塊裝置 register_blkdev 或網路介面)。該系統會將驅動程式與具體的硬體裝置(Major/Minor number 或 Device Tree/ACPI 節點)進行綁定,並將驅動程式的檔案操作結構體(file_operations,包含 open、read、write 等 function pointers)掛載至核心,使系統呼叫能正確發送至對應的驅動程式。
  4. Conflict-resolution Mechanism(衝突解決機制)

    • 作用與功能:防止多個硬體驅動程式競爭相同的系統資源。它負責管理與仲裁硬體資源的配置,主要包括:中斷請求線(IRQ lines)、直接記憶體存取通道(DMA channels)以及 I/O 埠/記憶體映射空間(I/O ports / MMIO regions)。當驅動程式欲使用特定資源時,必須先向此機制申請(如 request_irq()、request_mem_region());若資源已被其他驅動程式占用,該機制會退回申請並回報錯誤,避免系統硬體衝突導致崩潰。

第二部分:Completely Fair Scheduler (CFS) 的基本思想

🔒

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

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

免費註冊

第 2-(1) 題5 分

Explain what is Cyber Kill Chain?

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

這一題的完整詳解

核心觀念

Cyber Kill Chain(網路殺傷鏈)是由洛克希德·馬丁(Lockheed Martin)於 2011 年提出的資安防護架構模型,源自於軍事的「殺傷鏈(Kill Chain)」概念。

此模型的的核心觀念在於:攻擊者的入侵過程不是瞬間完成的,而是由一連串具先後順序的階段(Phases)所組成。 在這一鏈條中,只要防禦者能在任何一個階段成功偵測並中斷(Break)攻擊者的行動,就能阻斷整起資安事件,保護系統與資料安全。

Cyber Kill Chain 標準包含以下 7 個階段:

  1. Reconnaissance(偵察):蒐集目標資訊(如 IP 位址、員工 Email、系統版本)。
  2. Weaponization(武器化):將漏洞利用程式(Exploit)與惡意載荷(Payload)結合(如製作含巨集的 Word 檔)。
  3. Delivery(傳送):將武器化檔案傳送到目標(如寄送釣魚郵件、透過隨身碟)。
  4. Exploitation(利用):觸發漏洞利用程式,執行惡意程式碼(如使用者開啟檔案觸發漏洞)。
  5. Installation(安裝):在目標系統安裝後門(Backdoor)或木馬,建立持久化(Persistence)存取權限。
  6. Command and Control, C2(命令與控制):惡意程式向外連線至攻擊者的 C2 伺服器,建立雙向控制通道。
  7. Actions on Objectives(目標行動):執行最終攻擊目標(如竊取敏感資料、勒索加密、破壞系統)。

解題方法

本題為觀念說明題,切入點應為:

  1. 定義與起源:明確指出 Cyber Kill Chain 的定義、提案者(Lockheed Martin)與核心思想(分階段防守、中斷鏈條)。
  2. 7 大階段詳解:依序說明攻擊者的每個步驟,並對應防禦觀念。
🔒

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

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

免費註冊

第 2-(2) 題4 分

Explain what is a Fileless Malware attack?

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

這一題的完整詳解

核心觀念

本題考查作業系統安全(System Security)領域中**無檔案惡意軟體攻擊(Fileless Malware Attack)**的定義、運作機制與防禦挑戰。

傳統惡意軟體(File-based Malware)依賴在目標主機的硬碟(HDD/SSD)寫入可執行檔(如 .exe、.dll),並透過硬碟檔案引發感染。而無檔案惡意軟體攻擊是一種高度隱蔽的攻擊手法,其核心特徵為:

  1. 記憶體內執行(Memory-only Execution):惡意程式碼直接載入並執行於系統隨機存取記憶體(RAM)中,不在傳統檔案系統中建立或寫入可疑的可執行檔。
  2. 寄生於系統合法工具(Living off the Land, LotL):攻擊者善用作業系統內建且受信任的管理工具與腳本環境(如 Windows PowerShell、Command Prompt cmd.exe、WMI、Windows Resource Admin Tools 等),將惡意指令注入並執行,藉此規避傳統基於特徵碼(Signature-based)的防毒軟體偵測。

解題方法

回答本題時,建議從定義、常見攻擊鏈/運作流程、關鍵技術與為何難以偵測四個切入點進行結構化說明:

  1. 定義與特徵:明確說明 Fileless Malware 不依靠硬碟檔案,而是活在記憶體與合法工具中。
  2. 典型攻擊流程(Attack Lifecycle):
    • 入侵階段(Infiltration):透過網路釣魚郵件中的惡意巨集(Macro)、受污染的網頁腳本或系統漏洞,觸發原生工具(如 PowerShell.exe)。
    • 載入與執行(Execution):使用 PowerShell 執行經過無效化/混淆處理的指令,自遠端伺服器(C2 Server)下載惡意 Payload,並透過無檔案注入技術(如 Process Injection、Reflective DLL Injection)直接載入記憶體。
    • 潛伏與持久化(Persistence):雖然無檔案惡意軟體在重開機後 RAM 資料會消失,但攻擊者可利用 Windows 機碼(Registry Key)、排程任務(Scheduled Tasks)或 WMI 事件訂閱(WMI Event Subscriptions)儲存腳本指令,達成重開機後重新觸發與潛伏。
🔒

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

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

免費註冊

第 2-(3) 題5 分

How to achieve confidentiality, integrity, and non-repudiation by the technique of Digital Envelop based on Public Key Infrastructure?

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

這一題的完整詳解

核心觀念

本題考查資訊安全(Information Security)與密碼學(Cryptography)中,如何結合**對稱式加密(Symmetric Encryption)與非對稱式加密/公開金鑰基礎設施(Asymmetric Encryption / Public Key Infrastructure, PKI)**來實現三大安全目標:

  1. 機密性(Confidentiality):防止未授權者讀取訊息。
  2. 完整性(Integrity):確保訊息在傳輸過程中未被篡改。
  3. 不可否認性(Non-repudiation):確保傳送方無法否認其曾傳送該訊息。

數位信封(Digital Envelope) 的核心概念在於:使用對稱式金鑰(Session Key / Secret Key)加密大容量的明文訊息(因對稱加密速度快),再用接收方的公開金鑰(Public Key)加密該對稱式金鑰(解決金鑰分配問題)。而在本題中,要同時滿足「機密性、完整性、不可否認性」,必須將**數位簽章(Digital Signature)**機制無縫整合至數位信封流程中。


解題方法

假設傳送方為 Alice(發送者 AA),接收方為 Bob(接收者 BB):

  • AA 的私鑰為 PRAPR_A,公鑰為 PUAPU_A
  • BB 的私鑰為 PRBPR_B,公鑰為 PUBPU_B
  • 明文訊息為 MM
  • 雜湊函數為 H(⋅)H(\cdot)
  • 隨機生成的會話金鑰(對稱金鑰)為 KsK_s
  • 對稱加密/解密演算法為 EK(⋅)E_{K}(\cdot) / DK(⋅)D_{K}(\cdot)
  • 非對稱加密/解密演算法為 EPU(⋅)E_{PU}(\cdot) / DPR(⋅)D_{PR}(\cdot)

1. 發送端(Alice)處理與打包流程:

  1. 產生數位簽章(保障完整性與不可否認性):
    • 計算明文訊息的雜湊值:h=H(M)h = H(M)。
    • 使用 Alice 的私鑰 PRAPR_A 對雜湊值加密生成數位簽章:Sig=EPRA(h)Sig = E_{PR_A}(h)。
  2. 對稱加密訊息(保障機密性):
    • 生成一次性隨機對稱金鑰 KsK_s。
    • 使用 KsK_s 加密「明文 MM 與簽章 SigSig」的組合:CM=EKs(M ∣∣ Sig)C_M = E_{K_s}(M \,||\, Sig)。
  3. 對稱金鑰加密(形成數位信封):
    • 使用 Bob 的公鑰 PUBPU_B 加密對稱金鑰 KsK_s:CK=EPUB(Ks)C_K = E_{PU_B}(K_s)。
  4. 發送數據封包:
    • 傳送組合封包 (CK ∣∣ CM)(C_K \,||\, C_M) 給 Bob。

2. 接收端(Bob)拆封與驗證流程:

  1. 解密對稱金鑰:
    • Bob 用自己的私鑰 PRBPR_B 解密 CKC_K,取得對稱金鑰:Ks=DPRB(CK)K_s = D_{PR_B}(C_K)。
  2. 解密內文與簽章:
🔒

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

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

免費註冊

第 2-(4) 題3 分

What is a Honeypot system in cybersecurity?

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

這一題的完整詳解

核心觀念

本題考查資訊安全(Cybersecurity)與作業系統安全防護機制中的蜜罐系統(Honeypot System)。

  • 定義:蜜罐(Honeypot)是一種專門被設計用來作為誘餌的資訊系統安全資源。它的主要價值在於「被探測、攻擊或入侵」。蜜罐系統本身不包含任何真實的商業價值或生產資料,因此任何指向或來自蜜罐的連線與活動,幾乎都可以直接判定為潛在的掃描、探測或惡意攻擊 behavior。
  • 核心功能與目的:
    1. 吸引並牽制攻擊者:將攻擊者的注意力與資源從真實的生產系統(Production Systems)轉移開來。
    2. 收集情報(Threat Intelligence):記錄攻擊者的攻擊手法(TTPs: Tactics, Techniques, and Procedures)、採用的零日漏洞(Zero-day vulnerabilities)、惡意程式碼(Malware)樣本及來源 IP。
    3. 早期預警與檢測(Early Warning & Detection):由於正常使用者不會存取蜜罐,蜜罐觸發警報的誤報率(False Positive Rate)極低。
  • 常見分類:
    • 依部署目的:
      • 研究型蜜罐(Research Honeypot):用於收集資安情報、分析黑客手法與新威脅。
      • 實務/生產型蜜罐(Production Honeypot):部署於企業網路內,用於輔助 IDS/IPS 進行即時防禦與入侵偵測。
    • 依互動程度(Interaction Level):
      • 低互動蜜罐(Low-interaction Honeypot):僅模擬特定的網路服務或通訊協定(例如:模擬 SSH 登入介面)。資源消耗低、風險極低,但收集到的情報有限。
      • 高互動蜜罐(High-interaction Honeypot):提供真實的作業系統與服務環境(例如:完整的 Linux/Windows 虛擬機)。
🔒

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

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

免費註冊

第 2-(5) 題3 分

What is the concept of Defense-in-Depth in cybersecurity?

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

這一題的完整詳解

核心觀念

本題考查資訊安全(Cybersecurity)與作業系統安全防護架構中的核心概念——縱深防禦(Defense-in-Depth)。

縱深防禦是一種多層次的安全防禦策略(Layered Defense Architecture)。其核心思想為:沒有任何單一的安全機制能夠抵禦所有攻擊。因此,系統必須在不同的防禦層級(如實體層、網路層、主機層、應用程式層、資料層)設置多重防護機制。當其中一層防線遭駭客突破或發生故障時,後續的防禦機制仍能及時阻擋攻擊、減緩損害擴大,確保整體系統的機密性(Confidentiality)、完整性(Integrity)與可用性(Availability)。


解題方法

回答本題時,切入點應涵蓋以下三個層次:

  1. 定義與核心哲學:闡述「多重防線」與「避免單點故障(Single Point of Failure, SPOF)」的概念。
  2. 多層次防禦架構(Defense Layers):由外而內說明典型系統如何落實縱深防禦。
  3. 作業系統層級實例:結合作業系統(OS)與資安技術,舉出具體的防禦機制。

關鍵結構與推導說明

  • 核心原則:NN 層防禦機制的整體防護能力高於單一機制。若單一層防線被突破的機率為 Pfail<1P_{\text{fail}} < 1,則所有 NN 層防線同時失效的機率可降低至 ∏i=1NPfail,i\prod_{i=1}^{N} P_{\text{fail}, i}。
  • 主要防線層次(五大常見分層):
    1. 週邊與網路安全(Network / Perimeter Security):防火牆(Firewall)、入侵檢測/防禦系統(IDS/IPS)、VPN、網路隔離(VLAN)。
    2. 主機與作業系統安全(Host / OS Security):作業系統更新修補(Patching)、最小權限原則(Least Privilege)、存取控制(RBAC/MAC)、作業系統強化(OS Hardening)。
    3. 應用程式安全(Application Security):輸入驗證(Input Validation)、Web 應用程式防火牆(WAF)、安全程式碼審查。
🔒

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

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

免費註冊

其他考古題