114 年 國立中央大學資訊管理學系碩士班乙組《計算機概論》

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

第 1 題

What is the purpose of a timestamp-based concurrency control method?
(A) To ensure transactions are executed in a specific order
(B) To reduce the number of locks required
(C) To improve query performance
(D) To manage disk space

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

這一題的完整詳解

此題考查資料庫管理中的並行控制(Concurrency Control)機制,特別是時間戳記(Timestamp-based)方法。

時間戳記並行控制方法的核心思想是為每個事務(Transaction)分配一個唯一的、單調遞增的時間戳記。當事務讀取或寫入數據時,會根據其時間戳記與數據項的時間戳記進行比較,以確保數據的一致性。如果發現違反了時間戳記的順序,則會中止事務並重新啟動。這種方法透過時間戳記來判定事務的執行順序,從而避免了衝突。

選項分析:
(A) To ensure transactions are executed in a specific order:這是時間戳記方法的核心目的,透過時間戳記來決定事務的先後順序,以維持資

🔒

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

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

免費註冊

第 2 題

What is the purpose of a two-phase commit protocol?
(A) To ensure all participants in a distributed transaction agree on the outcome
(B) To improve query performance
(C) To reduce storage costs
(D) To simplify database design

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

這一題的完整詳解

此題考查分散式系統中的二階段提交協議(Two-Phase Commit, 2PC)。

二階段提交協議是一種用於確保分散式事務(Distributed Transaction)原子性(Atomicity)的共識協議。分散式事務是指一個事務可能涉及多個節點(參與者)上的數據操作。2PC 旨在確保所有參與者對於事務的最終結果(提交或中止)達成一致。

它分為兩個階段:

  1. 準備階段(Prepare Phase):協調者(Coordinator)向所有參與者(Participants)發送準備請求。參與者在收到請求後,執行事務中屬於自己的部分,並將結果寫入暫存區(如日誌),然後向協調者回報「準備好提交」或「無法提交」。
  2. 提交階段(Commit Phase):
    • 如果協調者收到所有參與者的「準備好提交」回報,則向所有參與者發送「提交」指令。
🔒

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

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

免費註冊

第 3 題

What is a transitive dependency in the context of normalization?
(A) A dependency where one non-key attribute depends on another non-key attribute
(B) A dependency where a non-key attribute depends on the primary key
(C) A dependency where a key attribute depends on a non-key attribute
(D) A dependency where a table depends on another table

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

這一題的完整詳解

此題考查資料庫正規化(Normalization)中的傳遞依賴(Transitive Dependency)概念。

在資料庫正規化中,我們主要關注屬性之間的函數依賴(Functional Dependency, FD)。傳遞依賴是針對第三正規型(3NF)定義的一個重要概念。

一個關係模式 R 存在傳遞依賴,如果存在以下條件:

  1. 有三個屬性集 X, Y, Z。
  2. X → Y (X 決定 Y)
  3. Y → Z (Y 決定 Z)
  4. Y 不是 X 的候選鍵(Candidate Key)的一部分,且 Y 也不是一個超級鍵(Superkey)。
  5. Y → Z 成立。

簡單來說,如果一個非鍵屬性(Non-key attribute)Y 依賴於主鍵(Primary Key)X,而另一個非鍵屬性 Z 又依賴於非鍵屬性 Y,那麼 Z 就傳遞依賴於主鍵 X。這種依賴通過中間的非鍵屬性 Y 建立,而不是直接建立在主鍵上。

🔒

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

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

免費註冊

第 4 題

Which normal form eliminates transitive dependencies?
(A) First Normal Form (1NF)
(B) Second Normal Form (2NF)
(C) Third Normal Form (3NF)
(D) Boyce-Codd Normal Form (BCNF)

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

這一題的完整詳解

此題考查資料庫正規化(Normalization)的過程,特別是哪個正規型能夠消除傳遞依賴。

正規化的目標是減少數據冗餘,避免數據異常(如插入、刪除、更新異常)。不同的正規型有不同的約束條件。

  • 第一正規型 (1NF):確保每個屬性值都是原子性的,即不可再分。
  • 第二正規型 (2NF):要求關係模式必須是 1NF,並且所有非鍵屬性都完全函數依賴於主鍵。這消除了部分函數依賴(Partial Dependency),即非鍵屬性只依賴於主鍵的一部分(僅適用於複合主鍵)。
  • 第三正規型 (3NF):要求關係模式必須是 2NF,並且任何非鍵屬性都不傳遞依賴於主鍵。也就是說,如果 X → Y 成立,則 X 必須是超鍵,或者 Y 必須是主鍵的成員。
  • BCNF (Boyce-Codd Normal Form):是 3NF 的一個更嚴格版本。
🔒

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

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

免費註冊

第 5 題

Which of the following is NOT a type of database security threat?
(A) SQL Injection
(B) Denial of Service (DoS)
(C) Data Normalization
(D) Phishing

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

這一題的完整詳解

此題考查資料庫安全威脅的類型。我們需要識別出哪個選項不是安全威脅。

資料庫安全威脅是指可能損害資料庫系統的機密性(Confidentiality)、完整性(Integrity)或可用性(Availability)的事件或行為。

選項分析:
(A) SQL Injection:這是一種常見的網路安全攻擊,攻擊者透過在輸入欄位中插入惡意的 SQL 語句,來操縱資料庫,例如竊取數據、修改數據或刪除數據。這是一個嚴重的資料庫安全威脅。

🔒

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

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

免費註冊

第 6 題

Which of the following is a common technique to prevent SQL injection attacks?
(A) Using strong passwords
(B) Encrypting data
(C) Using parameterized queries
(D) Normalizing data

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

這一題的完整詳解

此題考查防止 SQL 注入(SQL Injection)攻擊的常見技術。

SQL 注入是一種利用應用程式對用戶輸入的驗證不足,將惡意的 SQL 語句注入到資料庫查詢中的攻擊。攻擊者可以藉此竊取、修改或刪除數據,甚至控制資料庫伺服器。

選項分析:
(A) Using strong passwords:強密碼是保護帳戶免遭未經授權訪問的良好實踐,對於防止帳戶被盜用進而進行 SQL 注入有一定幫助,但它本身並不是直接防止 SQL 注入代碼被執行的技術。
(B) Encrypting data:加密數據主要用於保護數據在傳輸或儲存時的機密性。

🔒

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

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

免費註冊

第 7 題

Which of the following best describes domain integrity?
(A) Ensuring that each row in a table is unique
(B) Ensuring that relationships between tables remain consistent
(C) Ensuring that data entries are valid and within a specific range
(D) Ensuring that data is backed up regularly

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

這一題的完整詳解

此題考查資料庫中的領域完整性(Domain Integrity)概念。

資料庫完整性是指確保資料庫中的數據準確、一致和有效的規則。領域完整性是其中一種,它關注於屬性(列)的數據類型和取值範圍。

選項分析:
(A) Ensuring that each row in a table is unique:這是實體完整性(Entity Integrity)的體現,通常透過主鍵來實現,確保每行記錄都有一個唯一的標識符。

🔒

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

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

免費註冊

第 8 題

What is a clustered index?
(A) An index that stores data in a random order
(B) An index that stores data in the same order as the table
(C) An index that stores data in a separate table
(D) An index that stores data in a compressed format

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

這一題的完整詳解

此題考查資料庫索引(Index)的類型,特別是叢集索引(Clustered Index)。

索引的目的是加速數據檢索。資料庫系統中有不同類型的索引,其中叢集索引和非叢集索引是兩種主要類型。

  • 叢集索引 (Clustered Index):

    • 它定義了表中數據行的物理存儲順序。
    • 數據行本身按照叢集索引鍵的順序物理存儲在磁碟上。
    • 一個表最多只能有一個叢集索引,因為數據行只能按一種物理順序排序。
    • 當使用叢集索引進行查詢時,資料庫可以非常快速地定位到數據行,因為索引結構直接指向數據。
  • 非叢集索引 (Non-clustered Index):

    • 它與數據行的物理存儲順序無關。
    • 非叢集索引包含索引鍵值和指向數據行實際位置的指標(通常是行 ID 或叢集索引鍵)。
🔒

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

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

免費註冊

第 9 題

Which of the following statements is true about indexing?
(A) Indexes always improve query performance
(B) Indexes can slow down data modification operations
(C) Indexes reduce the need for normalization
(D) Indexes are only used in relational databases

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

這一題的完整詳解

此題考查資料庫索引(Index)的特性。

索引是一種數據結構,用於提高數據庫表中數據的檢索速度。然而,索引並非沒有代價。

選項分析:
(A) Indexes always improve query performance:這是錯誤的。雖然索引的主要目的是加速查詢,但在某些情況下,索引可能無法提高查詢性能,例如:
* 查詢的數據量佔表中數據量的比例非常大時,全表掃描可能比使用索引更快。
* 索引鍵的選擇性(Selectivity)不高(即許多行具有相同的索引鍵值)。
* 索引結構本身的大小可能導致 I/O 成本增加。
* 對於某些複雜的查詢,優化器可能選擇不使用索引。

🔒

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

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

免費註冊

第 10 題

Which of the following best describes a star schema?
(A) A schema with a central fact table connected to multiple dimension tables
(B) A schema with multiple fact tables connected to a single dimension table
(C) A schema with no relationships between tables
(D) A schema with only one table

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

這一題的完整詳解

此題考查資料倉儲(Data Warehouse)中的星型結構(Star Schema)概念。

星型結構是資料倉儲中最常見的數據模型之一,用於組織數據以支持分析和報表。它的特點是:

  • 一個中心的事實表(Fact Table):包含業務測量的數值數據(如銷售額、數量)以及指向維度表的外鍵。
  • 多個維度表(Dimension Tables):每個維度表描述一個分析維度(如時間、產品、客戶、地點),包含該維度的描述性屬性。
  • 結構類似於星星,事實表位於中心,維度表圍繞著事實表,通過外鍵與事實表連接。
🔒

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

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

免費註冊

第 11 題

Given an OS with a byte-oriented page memory system, consider a 16-bits logical address space
mapped onto a physical memory of 512 frames. Suppose the page size is 1024 bytes. Hence, there are
a pages in the logical space and ẞbits are required (i.e., minimum) to present the physical address.
What is the pair (α, β)?
(A) (64, 20)
(B) (32, 19)
(C) (128, 20)
(D) (128, 19)
(E) (64, 19)

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

這一題的完整詳解

此題考查作業系統中的虛擬記憶體分頁(Paging)機制,需要計算邏輯地址空間中的頁數以及表示物理地址所需的位元數。

已知條件:

  1. 邏輯地址空間大小:16 位元。
  2. 物理記憶體大小:512 個框架(Frames)。
  3. 頁大小(Page Size):1024 位元組(Bytes)。

計算 α:邏輯地址空間中的頁數

  • 邏輯地址空間大小 = 2162^{16} 位元組。
  • 頁大小 = 1024 位元組 = 2102^{10} 位元組。

一個邏輯地址由兩部分組成:頁號(Page Number)和頁內偏移(Page Offset)。
頁內偏移的位元數由頁大小決定。
頁內偏移位元數 = log⁡2(Page Size)=log⁡2(1024)=log⁡2(210)=10\log_2(\text{Page Size}) = \log_2(1024) = \log_2(2^{10}) = 10 位元。

邏輯地址空間的總位元數是 16 位元。
邏輯地址 = 頁號位元數 + 頁內偏移位元數
16 = 頁號位元數 + 10
所以,頁號位元數 = 16 - 10 = 6 位元。

邏輯地址空間中的總頁數 (α) 等於 2 的頁號位元數次方。
α = 2頁號位元數=26=642^{\text{頁號位元數}} = 2^6 = 64 頁。

🔒

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

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

免費註冊

第 12 題

What is the main difference between the “Multilevel Queue" and "Multilevel Feedback Queue"
scheduling algorithms?
(A) process migration among queues
(B) number of queues
(C) time quantum
(D) level definition
(E) size of queue

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

這一題的完整詳解

此題考查作業系統中的多層佇列(Multilevel Queue, MLQ)和多層反饋佇列(Multilevel Feedback Queue, MLFQ)兩種 CPU 排程演算法的主要區別。

這兩種演算法都將就緒佇列(Ready Queue)劃分為多個獨立的佇列,每個佇列代表一個不同的優先級別。通常,高優先級佇列的任務會優先於低優先級佇列的任務。

  • 多層佇列 (MLQ):

    • 每個進程被分配到一個佇列,通常基於其特性(如交互式進程在高優先級,批處理進程在低優先級)。
    • 進程一旦進入一個佇列,就不能再移動到其他佇列。
    • 排程策略通常是:高優先級佇列的任務優先執行,直到完成或阻塞。低優先級佇列的任務只有在高優先級佇列全部空閒時才能獲得 CPU。
    • 每個佇列可以有自己的排程演算法(例如,高優先級用 Round Robin,低優先級用 FCFS)。
  • 多層反饋佇列 (MLFQ):

    • 與 MLQ 類似,有多個優先級佇列。
    • 關鍵區別:進程可以根據其行為(如 CPU 使用情況)在佇列之間移動(進程遷移,Process Migration)。
🔒

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

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

免費註冊

第 13 題

Suppose that a disk drive has 5000 cylinders, numbered 0 to 4999. The drive is currently serving a
request at cylinder 143, and the previous request was at cylinder 125. The queue of pending requests,
in FIFO order, is 86, 1470, 913, 1774, 948, 1509, 1022, 1750, 130 Starting from the current head
position, what is the total distance (in cylinders) that the disk arm moves to satisfy all the pending
requests, for C-SCAN and C-LOOK disk-scheduling algorithms, respectively?
(A) 7081, 1745
(B) 9813, 3363
(C) 9769, 3319
(D) 9769, 1745
(E) 7081, 3319

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

這一題的完整詳解

核心觀念

本題考查磁碟排程中的 C-SCAN(Circular SCAN) 與 C-LOOK(Circular LOOK)。

目前磁頭位於第 143143 柱面,前一次請求位於第 125125 柱面,因此磁頭目前的移動方向為:

125→143125 \rightarrow 143

也就是向柱面編號增加的方向移動。

  • C-SCAN:沿目前方向服務請求,一直移動到磁碟最末端,再回到另一端繼續服務。
  • C-LOOK:沿目前方向服務到該方向上最後一個請求,隨即跳到另一側最接近的請求,不必移動到磁碟實體端點。

請求佇列為:

86, 1470, 913, 1774, 948, 1509, 1022, 1750, 13086,\ 1470,\ 913,\ 1774,\ 948,\ 1509,\ 1022,\ 1750,\ 130

依目前向右移動的方向排序:

86, 130, 913, 948, 1022, 1470, 1509, 1750, 177486,\ 130,\ 913,\ 948,\ 1022,\ 1470,\ 1509,\ 1750,\ 1774


解題方法:C-SCAN

磁頭先服務目前位置右側的所有請求:

913, 948, 1022, 1470, 1509, 1750, 1774913,\ 948,\ 1022,\ 1470,\ 1509,\ 1750,\ 1774

之後繼續向右移動至最後一個柱面 49994999,再循環回到第 00 柱面,最後服務:

86, 13086,\ 130

完整移動路徑可表示為:

143→4999→0→130143 \rightarrow 4999 \rightarrow 0 \rightarrow 130

其中由第 00 柱面移動至第 130130 柱面時,會順便經過第 8686 柱面。

因此總移動距離為:

(4999−143)+(4999−0)+(130−0)(4999-143)+(4999-0)+(130-0) =4856+4999+130=4856+4999+130 =9985=9985

解題方法:C-LOOK

C-LOOK 不必移動到第 49994999 柱面,而是在服務完目前方向上最大的請求 17741774 後,直接跳到另一側最小的請求 8686。

移動路徑為:

🔒

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

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

免費註冊

第 14 題

How many times does the following program print hello?
#include <stdio.h>
#include <unistd.h>
main () {
if (fork () == 0)
printf ("hello\n");
else if (fork () == 0)
printf ("hello\n");
printf ("hello\n");
}

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

這一題的完整詳解

核心觀念

本題評量作業系統(Operating System)中**行程建立(Process Creation)**與 **fork() 系統呼叫(System Call)**的執行行為,以及 C 語言中條件判斷式(if-else)的控制流程。

  1. fork() 的回傳值特性:
    • 呼叫 fork() 後,作業系統會複製出一個子行程(Child Process)。
    • 對**父行程(Parent Process)**而言,fork() 回傳新建立的子行程之 PID(非零的正整數,即條件式中的「真值」)。
    • 對**子行程(Child Process)**而言,fork() 回傳 00(即條件式中的「假值」)。
    • 兩者會各自從 fork() 呼叫點的下一條指令繼續向下執行。
  2. if-else 的互斥分支:
    • 若外層 if 條件成立,則不會進入對應的 else 或 else if 分支。
    • 離開 if-else 結構後的指令,所有存活且未終止的行程皆會循序執行。

解題方法

採用**行程樹(Process Tree)**追蹤法,逐行分析各行程的衍生關係與輸出內容。

假設程式由初始行程(記為 P0P_0)開始執行:

步驟 1:執行外層 if (fork () == 0)

  • P0P_0 呼叫第一個 fork(),衍生出子行程 P1P_1。
  • 對子行程 P1P_1:
    • fork() 回傳值為 00。
    • 條件式 0 == 0 成立(True)。
    • 執行區塊內的指令:印出第 1 次 hello。
    • 因為 if 條件已滿足,跳過後續的 else if 分支,直接跳至結構外。
  • 對父行程 P0P_0:
    • fork() 回傳值為 P1P_1 的 PID(>0> 0)。
    • 條件式為 False,進入 else if 分支。

步驟 2:執行 else if (fork () == 0)

  • 此分支僅有 P0P_0 會進入。
  • P0P_0 呼叫第二個 fork(),衍生出子行程 P2P_2。
  • 對子行程 P2P_2:
    • fork() 回傳值為 00。
    • 條件式 0 == 0 成立(True)。
    • 執行區塊內的指令:印出第 2 次 hello。
    • 接著離開 if-else 結構。
  • 對父行程 P0P_0:
🔒

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

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

免費註冊

第 15 題

6顆一模一樣的硬碟構成RAID(redundant array of inexpensive disks)磁碟陣列,下列那一種磁碟
陣列組態可儲存的有效資料量最小?
(A) RAID 0
(B) RAID 1
(C) RAID 01
(D) RAID 5
(E) RAID 6

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

這一題的完整詳解

核心觀念

本題考查各種 RAID 組態的「有效資料容量」。設每顆硬碟容量為 DD,共有 66 顆硬碟,則各組態可儲存的有效資料量如下:

  • RAID 0:無備援,容量為 nDnD
  • RAID 1:鏡像備援,容量約為 nD2\frac{nD}{2}
  • RAID 01:先做 RAID 0,再做鏡像,容量約為 nD2\frac{nD}{2}
  • RAID 5:其中一顆硬碟容量用於分散式同位元檢查,容量為 (n−1)D(n-1)D
  • RAID 6:其中兩顆硬碟容量用於同位元檢查,容量為 (n−2)D(n-2)D

其中 n=6n=6。

解題方法

逐一套用容量公式:

RAID 0=6DRAID 1=6D2=3DRAID 01=6D2=3DRAID 5=(6−1)D=5DRAID 6=(6−2)D=4D\begin{aligned} \text{RAID 0} &= 6D\\ \text{RAID 1} &= \frac{6D}{2}=3D\\ \text{RAID 01} &= \frac{6D}{2}=3D\\ \text{RAID 5} &= (6-1)D=5D\\ \text{RAID 6} &= (6-2)D=4D \end{aligned}

因此,最小有效資料量為 3D3D,由 RAID 1 與 RAID 01 同時取得。

選項分析

(A) RAID 0

RAID 0 將資料分散寫入所有硬碟,不提供鏡像或同位元備援,因此六顆硬碟容量全部可用:

6D6D

有效容量最大,不是答案。

(B) RAID 1

🔒

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

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

免費註冊

第 16 題

所謂殭屍網路(BotNet)攻擊,是指下列何種對電腦的入侵?
(A)程式中加上特殊的設定,使程式在特定的時間與條件下自動執行而引發破壞性的動作
(B)建立與合法網站極為類似的網頁,誘騙使用者在網站中輸入自己的帳號密碼
(C) 利用軟體本身在安全漏洞修復前進行攻擊
(D)散佈具有遠端遙控功能的惡意軟體,並且集結大量受到感染的電腦進行攻擊
(E) 修改系統設定檔,以破壞檔案並且鎖住相關權限

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

這一題的完整詳解

此題考查「殭屍網路(BotNet)」攻擊的定義。

殭屍網路(BotNet)是一種由大量被感染的計算機(稱為「殭屍」或「Bot」)組成的網絡,這些計算機受到攻擊者(稱為「Botmaster」)的遠端控制,並被用來執行各種惡意活動。

選項分析:
(A) 程式中加上特殊的設定,使程式在特定的時間與條件下自動執行而引發破壞性的動作:這描述的是「邏輯炸彈」(Logic Bomb),是一種惡意程式,但不是 BotNet 的定義。
(B) 建立與合法網站極為類似的網頁,誘騙使用者在網站中輸入自己的帳號密碼:這描述的是「網路釣魚」(Phishing)攻擊。

🔒

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

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

免費註冊

第 17 題

作業系統如何維護許多行程同時開啟相同的檔案?
(A)只使用一個內部表格(internal table)來追蹤開啟的檔案
(B) 使用兩個內部表格(internal tables)稱為 system-wide table 與 per-disk table,來追蹤開啟的檔
案
(C) 使用兩個內部表格(internal tables)稱為system-wide table 與 per-process table,來追蹤開啟
的檔案。
(D)使用三個內部表格(internal tables),稱為system-wide table、per-disk table 與 per-partition
table,來追蹤開啟的檔案
(E) 使用四個內部表格(internal tables),稱為system-wide table、per-disk table、per-process
table,與 per-partition table,來追蹤開啟的檔案

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

這一題的完整詳解

此題考查作業系統如何管理多個行程(Process)同時存取(開啟)同一個檔案。這涉及到檔案系統的內部結構和行程與檔案的關聯性。

作業系統需要記錄哪些檔案被哪些行程打開,以及這些檔案的狀態和權限。為了有效管理,通常會使用多個內部數據結構。

  • 檔案描述符表 (File Descriptor Table):每個行程都有一個或多個檔案描述符表。當一個行程打開一個檔案時,作業系統會在該行程的檔案描述符表中創建一個條目,這個條目指向一個更全局的檔案控制塊。
  • 檔案控制塊 (File Control Block, FCB) 或 索引節點 (Inode):這是檔案系統中代表一個檔案的結構,包含了檔案的元數據(如大小、權限、創建時間、數據塊位置等)。
  • 開啟檔案表 (Open File Table):為了管理多個行程對同一個檔案的共享存取,作業系統通常維護一個系統級的「開啟檔案表」。這個表記錄了系統中所有被打開的檔案的資訊,包括:
    • 指向 FCB 或 Inode 的指標。
    • 檔案的當前讀寫位置(Offset)。
    • 檔案的存取模式(讀、寫、讀寫)。
    • 引用計數(Reference Count),表示有多少個行程或檔案描述符指向這個開啟的檔案。

選項分析:

(A) 只使用一個內部表格來追蹤開啟的檔案:這是不夠的。單一表格難以同時兼顧系統級的檔案資訊和行程級的檔案存取狀態(如讀寫位置)。

🔒

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

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

免費註冊

第 18 題

若某檔案(檔名file123)包含以下數行內容:
ncuim department
NCUIM lab
ncuimschool
REGIONNCUIM
university ncuim
NCUIM CENTER
請問使用哪個 grep 指令可以搜尋檔案中以"ncuim"結尾,且顯示符合行的行號?
(A) grep -n '^ncuim' file123
(B) grep 'ncuim′−ifile123(C)grep−i′ncuim' -i file123 (C) grep -i 'ncuim' -1 file123
(D) grep -n 'ncuim′file123(E)grep−i−n′ncuim' file123 (E) grep -i -n 'ncuim' file123

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

這一題的完整詳解

此題考查 Linux/Unix 的 grep 指令,用於在檔案中搜尋符合特定模式的字串,並要求顯示行號。

grep 指令的基本格式為 grep [options] pattern file。

我們需要搜尋:

  1. 以 "ncuim" 結尾的行:這需要使用正則表達式中的「結尾」錨點 $ 。
  2. 忽略大小寫:題目中出現 "ncuim" 和 "NCUIM",表示搜尋時應忽略大小寫,這需要使用 -i 選項。
  3. 顯示行號:要求顯示符合行的行號,這需要使用 -n 選項。

分析各選項:

  • 模式:

    • ^ncuim:表示以 "ncuim" 開頭。
    • ncuim$:表示以 "ncuim" 結尾。
    • ncuim:表示包含 "ncuim" 的任何位置。
  • 選項分析:

    • (A) grep -n '^ncuim' file123:
      • -n:顯示行號(正確)。
      • '^ncuim':搜尋以 "ncuim" 開頭的行(錯誤,題目要求結尾)。
    • (B) grep 'ncuim$' -i file123:
      • -i:忽略大小寫(正確)。
      • 'ncuim$':搜尋以 "ncuim" 結尾的行(正確)。
      • 缺失 -n 選項,不會顯示行號。
    • (C) grep -i 'ncuim$' -1 file123:
      • -i:忽略大小寫(正確)。
      • 'ncuim$':搜尋以 "ncuim" 結尾的行(正確)。
      • -1:這個選項在 grep 中通常不存在,可能是筆誤。
🔒

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

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

免費註冊

第 19 題

Which of the following keywords are used for exception handling in Java?
(A) try
(B) catch
(C) finally
(D) throw

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

這一題的完整詳解

核心觀念

Java 的例外處理機制用來處理程式執行期間發生的異常狀況。常見關鍵字包括 try、catch、finally、throw 與 throws,各有不同用途:

  • try:包住可能發生例外的程式碼。
  • catch:接住並處理例外。
  • finally:放置通常無論是否發生例外都要執行的程式碼。
  • throw:主動丟出一個例外物件。
  • throws:在方法宣告中標示該方法可能丟出的例外。

解題方法

逐一辨認選項是否為 Java 例外處理機制使用的關鍵字。題目採複選形式,凡符合上述用途的關鍵字都應選取。try、catch、finally、throw 均屬 Java 關鍵字,也都用於例外處理。

選項分析

🔒

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

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

免費註冊

第 20 題

Which of the following statements about the finally block are true?
(A) It is always executed after the try block, regardless of whether an exception is thrown.
(B) It is executed only if an exception is thrown.
(C) It is executed only if no exception is thrown.
(D) It is used to execute important code such as closing resources.

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

這一題的完整詳解

核心觀念

finally 是例外處理結構中的清理區塊,通常與 try 及 catch 搭配使用。無論 try 區塊正常結束,或發生例外並由 catch 處理,程式離開這組結構前都會執行 finally。常見用途包括關閉檔案、釋放資源及執行必要的清理工作。

解題方法

判斷各選項時,抓住兩個重點:

  1. finally 不以「是否發生例外」作為執行條件;一般控制流程下,例外有無都會執行。
  2. finally 適合放置離開 try 區塊前必須完成的清理程式碼。

選項分析

🔒

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

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

免費註冊

第 21 題

Which of the following can be used to create a custom exception in Java?
(A) Extending the Exception class
(B) Extending the RuntimeException class
(C) Implementing the Throwable interface
(D) Extending the Error class

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

這一題的完整詳解

核心觀念

Java 的例外型別必須是 Throwable 類別的子類別。Throwable 下有兩個主要分支:

  • Exception:一般例外,可再分為受檢例外與非受檢例外。
  • Error:表示嚴重的系統層級錯誤,通常不作為一般應用程式自訂例外的基底類別。

自訂例外常見的做法,是繼承 Exception 或 RuntimeException:

  • 繼承 Exception:建立受檢例外,呼叫端必須捕捉,或在方法宣告中使用 throws。
  • 繼承 RuntimeException:建立非受檢例外,呼叫端不必強制捕捉或宣告。

解題方法

判斷各選項是否能建立自訂例外,先確認它是否能作為類別的父類別,再看它在 Java 例外階層中的位置。

Exception 與 RuntimeException 都是類別,且都屬於 Throwable 的子類別,因此可用來定義自訂例外。Throwable 本身是類別而非介面,不能以「實作介面」的方式使用;Error 則屬於錯誤分支,不是一般自訂例外的選項。

例如,下列兩種宣告都能建立自訂例外:

🔒

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

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

免費註冊

第 22 題

Which of the following are true about method overloading in Java?
(A) It allows multiple methods with the same name but different parameters.
(B) It is a form of polymorphism.
(C) It allows methods to have the same name and same parameters.
(D) It is resolved at compile time.

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

這一題的完整詳解

核心觀念

Java 的方法多載(method overloading)是指在同一個類別中,定義多個方法名稱相同、參數列不同的方法。參數列是否不同,依參數的數量、型別或排列順序判斷;只改變回傳型別,不能構成方法多載。

方法多載屬於編譯時期多型:編譯器依呼叫時提供的引數及其型別,選擇要使用的方法。這與方法覆寫(method overriding)不同;方法覆寫通常在執行時期依實際物件型別決定呼叫的方法。

解題方法

逐項比對題目的敘述與方法多載的定義:

  1. 檢查是否允許方法名稱相同、參數不同。
  2. 判斷這是否屬於多型,以及多載方法在哪個階段完成選擇。
  3. 檢查參數完全相同的方法能否在同一類別中重複定義。

選項分析

🔒

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

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

免費註冊

第 23 題

Which of the following are true about method overriding in Java?
(A) It allows a subclass to provide a specific implementation of a method already defined in its
superclass.
(B) It is a form of polymorphism.
(C) It is resolved at runtime.
(D) It allows methods to have the same name but different parameters.

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

這一題的完整詳解

核心觀念

方法覆寫(method overriding)是指子類別重新提供父類別中既有方法的實作。通常須符合方法名稱與參數列相同,且回傳型別相容;呼叫時會依實際物件的類別選擇執行哪個實作,這是執行期繫結(dynamic binding),也是多型(polymorphism)的表現。

方法多載(method overloading)則是同一類別或繼承關係中,方法名稱相同、參數列不同。多載與覆寫是不同概念。

解題方法

逐一比對選項中的描述:

  1. 是否說明子類別改寫父類別既有方法的實作?
  2. 是否屬於多型,並在執行期依物件型別決定呼叫的方法?
  3. 是否把「相同名稱、不同參數」誤認為覆寫?這個定義其實是多載。
🔒

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

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

免費註冊

第 24 題

Which of the following are true about the synchronized keyword in Java?
(A) It can be used to synchronize methods.
(B) It can be used to synchronize blocks of code.
(C) It ensures that only one thread can access the synchronized code at a time.
(D) It can be used to synchronize constructors.

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

這一題的完整詳解

核心觀念

Java 的 synchronized 用來取得物件監視器鎖(monitor lock),讓同一把鎖所保護的程式碼區段具備互斥性。

  • 同步方法:在方法宣告加上 synchronized。執行個體方法會鎖定目前物件;靜態方法會鎖定該類別對應的 Class 物件。
  • 同步區塊:以 synchronized (鎖定物件) 包住要保護的程式碼。
  • 互斥範圍:同一時間只能有一個執行緒持有同一把鎖。因此,同一把鎖所保護的程式碼不會被多個執行緒同時執行;使用不同鎖的程式碼仍可能並行。

解題方法

逐項判斷 synchronized 可套用的語法位置,以及它提供的同步效果。方法與程式碼區塊都能使用此關鍵字;建構子則不能宣告為 synchronized。互斥效果須以「同一把鎖」為前提理解。

選項分析

(A) 正確。 synchronized 可用於方法宣告,例如:

🔒

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

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

免費註冊

第 25 題

Consider the following Java program:
public class Animal {
private String name;
private int age;
private String type;
// Constructor 1
public Animal(String name) {
this.name = name;
}
// Constructor 2
public Animal(String name, int age) {
this(name); // Calling Constructor 1
this.age = age;
}
// Constructor 3
public Animal(String name, int age, String type) {
this(name, age); // Calling Constructor 2
this.type = type;
}
// Constructor 4
public Animal(int age, String type) {
this.age = age;
this.type = type;
}
public void display() {
System.out.println("Name: " + name + ", Age: " + age + ", Type: " + type);
}
public static void main(String[] args) {
Animal al = new Animal("Lion");
Animal a2 = new Animal("Tiger", 5);
Animal a3 = new Animal("Elephant", 10, "Mammal");
Animal a4 = new Animal(3, "Reptile");
al.display();
a2.display();
a3.display();
a4.display();
}
}
Which of the following statements are true about the above program? (Select all that apply)
(A) The program will compile and run without errors.
(B) The constructor Animal(String name, int age) correctly calls another constructor using
this(name).
(C) The constructor Animal(String name, int age, String type) correctly calls another constructor
using this(name, age).
(D) The constructor Animal(int age, String type) will cause a compilation error because it does not
call another constructor.
(E) The display method will print null for the name field of the Animal object created with
Animal(int age, String type).

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

這一題的完整詳解

此題考查 Java 中的構造函數(Constructor)的調用、繼承以及對象創建。

我們需要逐一分析程式碼中的構造函數、display 方法和 main 方法,並評估各個選項的正確性。

構造函數分析:

  • Animal(String name) (Constructor 1): 接收一個 name,並賦值給 this.name。
  • Animal(String name, int age) (Constructor 2): 接收 name 和 age。
    • this(name);:調用同一個類的另一個構造函數,該函數接收一個 String 參數。這裡調用的是 Constructor 1。
    • this.age = age;:為 age 賦值。
    • 此構造函數調用另一個構造函數是正確的。
  • Animal(String name, int age, String type) (Constructor 3): 接收 name, age, type。
    • this(name, age);:調用同一個類的另一個構造函數,該函數接收 String 和 int 參數。這裡調用的是 Constructor 2。
    • this.type = type;:為 type 賦值。
    • 此構造函數調用另一個構造函數是正確的。
  • Animal(int age, String type) (Constructor 4): 接收 age 和 type。
    • this.age = age;:為 age 賦值。
    • this.type = type;:為 type 賦值。
    • 注意:這個構造函數沒有調用其他構造函數,也沒有隱式調用父類構造函數(如果 Animal 有父類的話,但這裡 Animal 是頂層類,所以沒有父類構造函數需要調用)。Java 規定,如果構造函數沒有顯式調用 this() 或 super(),則會隱式調用 super()(代表 Object 類的無參構造函數)。但是,如果構造函數中已經有其他 this() 調用,則不能再有 super() 調用。在這個構造函數中,沒有 this() 調用,也沒有 super() 調用。因此,它會隱式調用 Object 的無參構造函數。
    • 重要概念:在 Java 中,構造函數的第一條語句必須是 this(...) 或 super(...)(如果沒有,則隱式調用 super())。Constructor 4 沒有 this() 或 super(),它會隱式調用 super()。這本身沒有問題,它會初始化 age 和 type。
    • 然而,有一個常見的誤解是,如果一個構造函數沒有調用 this(),它就一定會出錯。 在這個例子中,Constructor 4 只初始化了 age 和 type。name 字段將保持為 null(因為它是 String 類型,預設值是 null)。

display() 方法分析:

  • System.out.println("Name: " + name + ", Age: " + age + ", Type: " + type);
    • 這個方法會打印 name, age, type 的值。

main() 方法分析:

  • Animal al = new Animal("Lion");:調用 Constructor 1。name="Lion", age=0 (int 預設值), type=null (String 預設值)。
  • Animal a2 = new Animal("Tiger", 5);:調用 Constructor 2。this("Tiger") 調用 Constructor 1,所以 name="Tiger"。然後 this.age = 5;。所以 name="Tiger", age=5, type=null。
🔒

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

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

免費註冊

第 26 題

Consider the following Java program:
class Animal {
public void makeSound() {
System.out.println("Some generic animal sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Bark");
}
public void fetch() {
System.out.println("Fetching...");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow");
}
public void scratch() {
System.out.println("Scratching...");
}
}
public class Main {
public static void main(String[] args) {
Animal al = new Dog();
Animal a2 = new Cat();
al.makeSound();
a2.makeSound();
al.fetch();
a2.scratch();
}
}
Which of the following statements are true about the above program? (Select all that apply)
(A) The program will compile and run without errors.
(B) The makeSound method in the Dog class overrides the makeSound method in the Animal class.

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

這一題的完整詳解

此題考查 Java 的繼承、多型、方法重寫(Override)和方法調用。

我們需要分析提供的 Java 程式碼,並評估選項的正確性。

程式碼結構分析:

  • Animal 類:有一個 makeSound() 方法,輸出「Some generic animal sound」。
  • Dog 類:繼承自 Animal。
    • @Override 標註的 makeSound() 方法,輸出「Bark」。這是一個合法的重寫。
    • 有一個獨有的 fetch() 方法,輸出「Fetching...」。
  • Cat 類:繼承自 Animal。
    • @Override 標註的 makeSound() 方法,輸出「Meow」。這是一個合法的重寫。
    • 有一個獨有的 scratch() 方法,輸出「Scratching...」。
  • Main 類:
    • main 方法:
      1. Animal al = new Dog();:創建一個 Dog 對象,但用 Animal 類型的引用 al 指向它。這體現了多型。
      2. Animal a2 = new Cat();:創建一個 Cat 對象,但用 Animal 類型的引用 a2 指向它。這也體現了多型。
      3. al.makeSound();:調用 al 指向對象的 makeSound() 方法。由於 al 指向的是一個 Dog 對象,並且 Dog 重寫了 makeSound(),所以會調用 Dog 類的 makeSound()。預期輸出:「Bark」。
      4. a2.makeSound();:調用 a2 指向對象的 makeSound() 方法。由於 a2 指向的是一個 Cat 對象,並且 Cat 重寫了 makeSound(),所以會調用 Cat 類的 makeSound()。預期輸出:「Meow」。
      5. al.fetch();:嘗試調用 fetch() 方法。
🔒

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

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

免費註冊

第 27 題

Which of the following statements about the Java Collections Framework are true? (Select all that
apply)
(A) The List interface allows duplicate elements.
(B) The Set interface allows duplicate elements.
(C) The Map interface allows duplicate keys.
(D) The Queue interface follows the First-In-First-Out (FIFO) principle.

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

這一題的完整詳解

核心觀念

本題考 Java Collections Framework 中 List、Set、Map、Queue 的基本規範,重點是元素能否重複,以及資料的取出順序。

  • List 是有順序的集合,通常允許重複元素。
  • Set 不允許重複元素。
  • Map 的每個鍵最多對應一個值,因此不允許重複鍵。
  • Queue 通常採先進先出(FIFO),但 Java 的 Queue 介面不保證所有實作都採 FIFO。Oracle 文件明確指出,佇列通常、但不一定依 FIFO 排序。Java Collections Framework 概述、Queue 介面文件

解題方法

逐一檢查各介面的契約,而不是只依一般資料結構的慣例判斷。尤其要留意 Queue 的敘述是否把「通常如此」說成「必然如此」:若實作可以採用其他排序方式,便不能說介面一律遵循 FIFO。

🔒

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

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

免費註冊

第 28 題

Which of the following statements about the Java Virtual Machine (JVM) are true? (Select all that
apply)
(A) The JVM is responsible for converting Java bytecode into machine code.
(B) The JVM provides platform independence for Java programs.
(C) The JVM performs garbage collection to manage memory.
(D) The JVM is part of the Java Development Kit (JDK).

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

這一題的完整詳解

核心觀念

本題考查 Java 程式從編譯到執行的流程,以及 JVM(Java Virtual Machine,Java 虛擬機器)的功能與所屬關係。

Java 原始碼會先編譯成平台中立的位元組碼,再由不同平台上的 JVM 執行。JVM 的執行引擎可解譯位元組碼,也可透過即時編譯(JIT)將部分位元組碼編譯為該平台的機器碼。JVM 也負責執行期記憶體管理,包含垃圾回收。

解題方法

逐項比對 JVM 的主要職責:

  1. 是否負責執行位元組碼,並將其轉成機器碼?
  2. 是否讓同一份 Java 位元組碼能在不同平台上執行?
  3. 是否負責垃圾回收?
  4. JVM 是否包含在 JDK 的工具與執行環境中?

選項分析

(A) 正確。 JVM 的執行引擎負責執行 Java 位元組碼。它可以解譯位元組碼,也可利用 JIT 編譯器將位元組碼轉為目前平台的機器碼,提升執行效率。

🔒

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

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

免費註冊

第 29 題

Which following information is stored in process control block (PCB) of a process?
(A) scheduling information
(B) accounting information
(C) inter communication information
(D) I/O status information
(E) process state information

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

這一題的完整詳解

此題考查作業系統中進程控制塊(Process Control Block, PCB)儲存的資訊。

PCB 是作業系統用於管理進程的數據結構,它包含了進程執行所需的所有重要資訊。當作業系統在不同進程之間切換 CPU 時,會保存當前進程的 PCB 資訊,並載入下一個要執行的進程的 PCB 資訊。

PCB 通常包含以下類型的資訊:

  1. 進程狀態 (Process State):例如,新建(New)、就緒(Ready)、運行(Running)、等待(Waiting/Blocked)、終止(Terminated)。
  2. 進程標識符 (Process ID, PID):唯一標識進程的號碼。
  3. 程式計數器 (Program Counter, PC):指示下一條要執行的指令地址。
  4. CPU 暫存器 (CPU Registers):包括通用暫存器、堆疊指標、基底指標等,在進程切換時保存和恢復。
  5. CPU 調度資訊 (CPU Scheduling Information):
    • 進程優先級(Priority)。
    • 指向就緒佇列的指標。
    • 調度相關參數(如時間量子)。
  6. 記憶體管理資訊 (Memory Management Information):
    • 指向頁表(Page Table)或段表(Segment Table)的指標。
🔒

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

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

免費註冊

第 30 題

What are advantages for an OS system adopting virtual memory strategy?
(A) more efficient for thread creation
(B) logical address space can be larger than physical address space
(C) less I/O needed to load or swap processes
(D) more effective for selecting process on CPU scheduling
(E) only part of the program needs to be in memory for execution

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

這一題的完整詳解

核心觀念

本題考查作業系統的虛擬記憶體。虛擬記憶體將程式使用的邏輯位址映射到實體記憶體,並可配合需求分頁,讓程式不必一次全部載入主記憶體。

虛擬記憶體的典型優點包括:程式的邏輯位址空間可大於實體記憶體、只需載入目前執行所需的部分程式,以及減少載入整個程式所需的輸入/輸出。

解題方法

逐項判斷選項是否直接來自虛擬記憶體的功能。虛擬記憶體主要處理記憶體位址映射與程式載入;執行緒建立和 CPU 排程則屬於不同的作業系統議題。

選項分析

  • (A) more efficient for thread creation:錯誤。
    虛擬記憶體的核心效益不是提高執行緒建立效率。執行緒通常共享同一個行程的位址空間,建立成本較低是執行緒模型的特性,不能直接視為採用虛擬記憶體的優點。

  • (B) logical address space can be larger than physical address space:正確。
    邏輯位址空間可藉由位址轉換與輔助儲存裝置,延伸至大於實體記憶體的範圍。因此程式可使用超過目前可用實體記憶體容量的位址空間。

🔒

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

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

免費註冊

第 31 題

A solution to the critical-section problem must satisfy which requirements?
(A) mutual exclusion
(B) circular wait
(C) progress
(D) no preemption
(E) bounded waiting

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

這一題的完整詳解

核心觀念

本題考查作業系統中「臨界區問題」的三項必要要求。臨界區是程式中會存取共用資料或共用資源的區段;多個行程或執行緒同時執行時,必須以適當的同步機制避免競爭狀況。

臨界區問題的解法須滿足:

  1. 互斥(mutual exclusion):同一時間最多只能有一個行程在臨界區內。
  2. 進步(progress):若臨界區目前無人使用,且有行程想進入,決定由誰進入的過程不能無限拖延;此決定也不能被與臨界區無關、且不打算進入的行程阻擋。
  3. 有限等待(bounded waiting):行程提出進入臨界區的請求後,其他行程能先進入的次數必須有上限,避免該行程一直被延後。

解題方法

辨認題目問的是「臨界區問題的解法必須滿足哪些要求」,直接對照上述三項定義即可。循環等待(circular wait)與不可搶先(no preemption)則是死結相關的概念,並非臨界區問題的必要要求。

選項分析

🔒

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

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

免費註冊

第 32 題

What transparencies are important and critical for design a distributed file system?
(A) penalty transparency
(B) access transparency
(C) scaling transparency
(D) mobility transparency
(E) communication transparency

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

這一題的完整詳解

此題考查分散式檔案系統(Distributed File System, DFS)設計中重要的「透明性」(Transparency)概念。

透明性是指使用者或應用程式在存取分散式系統資源時,感覺不到系統底層的分散式架構,如同存取本地資源一樣。這使得分散式系統的使用和管理更加簡便。

重要的透明性包括:

  1. 存取透明性 (Access Transparency):使用者無需知道資源的物理位置或存取方式。例如,使用者存取一個檔案,不需要知道它儲存在哪個伺服器上,或者它是如何被複製和管理的。
  2. 位置透明性 (Location Transparency):使用者無需知道資源的物理位置。這與存取透明性緊密相關,是存取透明性的體現。
  3. 併發透明性 (Concurrency Transparency):使用者無需關心多個使用者或進程如何同時存取共享資源,系統會自動處理併發控制。
  4. 複製透明性 (Replication Transparency):使用者無需知道資源被複製了多少份,以及這些複製的副本是如何維護一致性的。
  5. 故障透明性 (Failure Transparency):系統能夠在發生故障時(如伺服器宕機),透過備援機制繼續提供服務,使用者感覺不到故障的發生。
  6. 遷移透明性 (Migration Transparency):資源(如檔案)可以在不影響使用者存取的情況下被移動到不同的位置。
🔒

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

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

免費註冊

第 33 題

What are the correct descriptions of deadlock and livelock?
(A) Processes in deadlock can not proceed until the other processes releases the resource
(B) A livelock exists if the processes are changing their state infrequently and proceeding
ineffectively.
(C) Processes in livelock constantly change their state in response to each other, but none of them
can make any progress
(D) One way to prevent a deadlock is to use a resource ordering protocol for assigning a unique
priority to each resource
(E) One way to detect a livelock is to monitor and reorder the states of the processes over time

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

這一題的完整詳解

此題考查死鎖(Deadlock)和活鎖(Livelock)的概念及其特性。

死鎖 (Deadlock):
發生死鎖的條件(Coffman conditions)是:

  1. 互斥 (Mutual Exclusion):資源一次只能被一個進程使用。
  2. 佔有並等待 (Hold and Wait):進程佔有至少一個資源,並等待獲取其他進程佔有的資源。
  3. 非搶占 (No Preemption):資源不能被強制剝奪,只能由佔有它的進程自願釋放。
  4. 循環等待 (Circular Wait):存在一個進程集合 P={p0,p1,...,pn}P = \{p_0, p_1, ..., p_n\},其中 p0p_0 在等待 p1p_1 佔有的資源,p1p_1 在等待 p2p_2 佔有的資源,...,pnp_n 在等待 p0p_0 佔有的資源。
    當所有四個條件同時滿足時,就會發生死鎖。處於死鎖狀態的進程將永遠無法繼續執行,因為它們都在等待對方釋放資源。

活鎖 (Livelock):
活鎖是指進程或系統的狀態不斷改變,但卻無法取得任何進展。進程會對彼此的行為做出響應,但這種響應會導致它們不斷地改變狀態,卻無法完成預期的任務。與死鎖不同,活鎖中的進程並非處於阻塞狀態(它們可能仍在運行),只是它們的行為導致系統無法向前推進。

選項分析:
(A) Processes in deadlock can not proceed until the other processes releases the resource.
* 這是死鎖的典型描述。處於死鎖狀態的進程因相互等待對方釋放資源而無法繼續執行。
* 正確。

(B) A livelock exists if the processes are changing their state infrequently and proceeding ineffectively.

🔒

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

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

免費註冊

第 34 題

以下那些指令,會使檔案(檔名file123)的檔案所屬群組無法寫入該檔案?
(A) chmod w-g file123
(B) chmod 740 file123
(C) chmod 450 file123
(D) chmod 460 file123
(E) chmod 770 file123

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

這一題的完整詳解

此題考查 Linux/Unix 的 chmod 指令,用於修改檔案的權限。

chmod 指令可以使用符號模式或數字模式來修改權限。權限分為三種類型:

  • 使用者 (u):檔案的擁有者。
  • 群組 (g):檔案所屬的群組。
  • 其他人 (o):除了擁有者和群組成員之外的所有用戶。

每種權限又分為三種操作:

  • 讀取 (r):允許查看檔案內容。
  • 寫入 (w):允許修改檔案內容。
  • 執行 (x):允許執行檔案(如果是腳本或程式)。

符號模式 (Symbolic Mode):

  • u, g, o, a (all):指定對象。
  • +, -, =:分別表示添加、移除、設定權限。
  • r, w, x:表示權限類型。

數字模式 (Octal Mode):

  • 讀取 (r) = 4
  • 寫入 (w) = 2
  • 執行 (x) = 1
    將這三個數字相加,得到該類用戶的權限碼。例如:
  • rwx = 4 + 2 + 1 = 7
  • rw- = 4 + 2 = 6
  • r-x = 4 + 1 = 5
  • r-- = 4
  • --- = 0

數字模式的格式為 [使用者權限][群組權限][其他人權限]。

題目要求:使檔案所屬群組 無法寫入 (w) 該檔案。

分析各選項:

🔒

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

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

免費註冊

第 35 題

下列敘述何者正確?
(A)反斜線(1)可以取消後面字元的特殊意義,因此輸入
echo * star *
會在螢幕上看到 * star *
(B)雙引號("")會取消引號內所有字元的特殊意義。
(C) 執行 echo Today is = date
會先執行 date 取得目前日期,再將結果插入到 echo 中一同輸出。
(D) 執行 echo 'Today is = da 會顯示 Today is = [當前日期],因為單引號內的反向單引號仍能被執行。 (E) 執行 echo "Today is = date`"
會顯示 Today is = [當前日期],因為雙引號內的反向單引號仍能被執行。

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

這一題的完整詳解

此題考查 Linux/Unix Shell 的特殊字元處理,特別是引號 (', ") 和命令替換(Command Substitution, `...` 或 $(...))。

分析各選項:

(A) 反斜線 (\) 可以取消後面字元的特殊意義。
* 輸入 echo \* star \*。
* \* 會被解析為字面上的 *。
* 所以,echo 命令會接收到 * star * 作為參數。
* echo 命令會將其參數原樣輸出。
* 結果為 * star *。
* 此選項正確。

(B) 雙引號 (") 會取消引號內所有字元的特殊意義。
* 這是錯誤的。雙引號 (") 會取消大部分特殊字元的特殊意義(如 *, ?, [] 等,進行文件名擴展),但它不會取消以下特殊字元的意義:
* 變數替換(如 $VAR)。
* 命令替換(如 command 或 $(command))。
* 反斜線 (\) 的轉義作用(但它會取消 " 本身的特殊意義)。
* 例如,echo "Hello $USER" 會輸出用戶名,而不是字面上的 `

🔒

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

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

免費註冊

第 36 題

為了滿足IoT(Internet of Things)龐大的IP 位址需求,IPv6的使用將會日益普及,請列出並詳
細說明三項 IPv4和IPv6的不同之處。(15%)

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

這一題的完整詳解

此題要求列出並詳細說明 IPv4 和 IPv6 的三項主要不同之處,以滿足 IoT 對 IP 位址的需求。

IPv4 (Internet Protocol version 4) 是目前廣泛使用的 IP 版本,但其位址空間有限,已面臨枯竭。IPv6 (Internet Protocol version 6) 是下一代 IP 版本,旨在解決 IPv4 的不足,並為未來的網路應用(如 IoT)提供更廣泛的支援。

以下是 IPv4 和 IPv6 的三項主要不同之處:

  1. 位址空間大小 (Address Space Size)

    • IPv4:使用 32 位元(bits)的位址。總共有 2322^{32} 個位址,約為 43 億個。隨著網際網路的快速發展和設備數量的爆炸性增長(特別是 IoT 設備),IPv4 位址空間已嚴重不足,需要透過 NAT (Network Address Translation) 等技術來緩解。
    • IPv6:使用 128 位元(bits)的位址。總共有 21282^{128} 個位址,這是一個極其龐大的數字(約為 3.4×10383.4 \times 10^{38})。這個巨大的位址空間能夠滿足未來數十年甚至更長時間的設備連接需求,尤其對於需要大量 IP 位址的物聯網(IoT)設備至關重要。
  2. 位址表示法 (Address Representation)

    • IPv4:位址通常以十進位形式表示,並用點分隔的四個數字組成,每個數字範圍是 0 到 255。例如:192.168.1.1。
    • IPv6:位址使用 128 位元,通常以十六進位(Hexadecimal)形式表示,並用冒號分隔成八組,每組四個十六進位數字。例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6 位址還可以進行簡化表示,例如:
      • 省略前導零:2001:db8:85a3::8a2e:370:7334。
      • 連續的零段可以用雙冒號 :: 表示一次。
  3. 標頭格式 (Header Format)

    • IPv4:標頭包含可變長度的選項欄位,這使得路由器在處理 IPv4 封包時需要更多的計算資源,也增加了封包處理的複雜性。IPv4 標頭長度為 20 位元組(不含選項)。
    • IPv6:標頭格式被簡化和固定化。
🔒

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

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

免費註冊

第 37 題

在使用防火牆的企業網路架構中,常配置一個被稱為DMZ (Demilitarized Zone)的網段,請
說明該網段的功用為何?另外WAF (Web Application Firewall)和封包過濾式防火牆(Packet
filtered Firewall)有何不同?請詳細說明。(15%)

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

這一題的完整詳解

此題考查網路安全中的 DMZ 區域、Web 應用防火牆 (WAF) 和封包過濾式防火牆 (Packet Filtered Firewall) 的概念和區別。

一、 DMZ (Demilitarized Zone) 網段的功用

DMZ(Demilitarized Zone,非軍事區)是位於內部網路(信任區域)和外部網路(如網際網路,不信任區域)之間的一個隔離網段。它的主要功用是:

  1. 隔離外部服務與內部網路:DMZ 區域用於放置需要被外部網路(網際網路)直接存取的伺服器,例如 Web 伺服器、郵件伺服器、DNS 伺服器、FTP 伺服器等。
  2. 提供額外的安全層:透過在內部網路和外部網路之間設置 DMZ,可以為內部網路增加一道安全屏障。即使 DMZ 區域的伺服器受到攻擊,攻擊者也無法直接存取內部網路的敏感數據和系統。
  3. 控制存取流量:防火牆(通常是兩道防火牆,一道對應外部網路,一道對應內部網路)被配置來嚴格控制進出 DMZ 區域的流量。只有經過授權的特定端口和協議才能在 DMZ 和內部網路之間通信。
  4. 安全加固:DMZ 區域的伺服器通常會進行額外的安全加固,例如安裝入侵偵測系統(IDS)、入侵防護系統(IPS)等,以提高其安全性。

總結功用:DMZ 的核心作用是充當一個緩衝區,允許組織提供對外服務,同時最大限度地降低對內部網路的風險。它將面向公眾的服務與敏感的內部資源分開,並通過嚴格的防火牆策略來管理流量。

二、 WAF (Web Application Firewall) 與封包過濾式防火牆 (Packet Filtered Firewall) 的區別

這兩者都是防火牆的一種,但它們工作在不同的網路層次,並關注不同的安全威脅。

1. 封包過濾式防火牆 (Packet Filtered Firewall)
* 工作層次:主要工作在網路層(Layer 3)和傳輸層(Layer 4)。
* 過濾依據:基於封包的標頭資訊進行決策,例如:
* 來源 IP 位址 (Source IP Address)
* 目的 IP 位址 (Destination IP Address)
* 來源埠號 (Source Port)
* 目的埠號 (Destination Port)
* 協議類型 (如 TCP, UDP, ICMP)
* 安全性:主要用於阻止未授權的網路訪問,例如阻止來自特定 IP 或特定埠號的連接。它不檢查封包的內容。
* 局限性:無法檢查應用層的數據內容,因此無法防禦針對應用程式的攻擊,如 SQL 注入、跨站腳本攻擊(XSS)等。

2. Web 應用防火牆 (WAF - Web Application Firewall)
* 工作層次:主要工作在應用層(Layer 7),專門針對 Web 應用程式的流量進行檢查和過濾。
* 過濾依據:深入檢查 HTTP/HTTPS 請求和響應的內容,包括:
* URL 中的參數
* 請求體 (Request Body)
* 標頭 (Headers)
* Cookies
* 請求方法 (GET, POST 等)
* 利用預定義的安全規則庫,識別並阻止常見的 Web 攻擊,例如:
* SQL 注入 (SQL Injection)
* 跨站腳本攻擊 (Cross-Site Scripting, XSS)
* 跨站請求偽造 (Cross-Site Request Forgery, CSRF)

🔒

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

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

免費註冊

其他考古題