114 年 國立中央大學企業管理學系碩士班戊組《計算機概論》

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

第 1 題

  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

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

這一題的完整詳解

核心觀念

Timestamp-based concurrency control(基於時間戳記的並行控制)是資料庫管理系統用來維持交易一致性與可串行化的重要方法。

每個交易在開始時會被配置一個唯一的時間戳記,例如:

TS(Ti)TS(T_i)

其中,TS(Ti)TS(T_i) 代表交易 TiT_i 的時間戳記。時間戳記較小者視為較早開始的交易,系統會依照時間戳記所代表的先後順序,檢查交易對資料的讀寫是否違反既定順序。

其主要目的,是確保交易執行結果等同於按照某個固定順序依次執行,也就是維持:

  • 交易的先後順序一致
  • 資料庫的一致性
  • 排程的可串行化(serializability)

解題方法

判斷題目詢問的是「timestamp-based concurrency control 的 purpose」,應先掌握其核心機制:

  1. 每個交易取得一個時間戳記。
  2. 系統依時間戳記判斷交易的邏輯先後順序。
  3. 若某項讀寫操作違反此順序,系統會拒絕該操作,甚至回復並重新執行交易。
  4. 因此,所有交易的執行結果會符合時間戳記所規定的順序。

例如,若:

TS(T1)<TS(T2)TS(T_1) < TS(T_2)

代表 T1T_1 必須在邏輯上先於 T2T_2。若 T2T_2 已經寫入資料,T1T_1 才嘗試進行會破壞順序的操作,系統便會阻止該操作,以維持正確的交易順序。

因此,本題正確切入點是「確保交易按照特定順序執行」,答案為選項 (A)。

選項分析

(A) To ensure transactions are executed in a specific order

正確。

🔒

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

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

免費註冊

第 2 題

  1. 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 Protocol, 2PC)的目的。2PC 是一種用於確保分散式交易(distributed transaction)的原子性(atomicity)的協議。

分散式交易是指一個交易涉及到多個節點(參與者),例如在分散式資料庫系統中,一個交易可能需要更新位於不同伺服器上的資料。為了保證這些交易的原子性,即「要麼全部成功,要麼全部失敗」,就需要一個協調機制。2PC 就是這樣一種協調機制。

2PC 協議包含兩個主要階段:

  1. 準備階段(Prepare Phase):協調者(Coordinator)向所有參與者(Participants)發送請求,詢問它們是否準備好提交(commit)該交易。參與者收到請求後,會執行交易的必要操作,並將結果寫入持久儲存(例如日誌),然後向協調者回覆「準備好」(prepared)或「中止」(abort)。
  2. 提交階段(Commit Phase):
🔒

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

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

免費註冊

第 3 題

  1. 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

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

這一題的完整詳解

核心觀念

本題考查關聯式資料庫正規化理論(Database Normalization)中的**遞移相依(Transitive Dependency)定義及其在第三正規化(3NF)**中的角色。

  1. 遞移相依(Transitive Dependency)之定義:
    在關聯綱要 RR 中,若存在三組屬性集合 XX、YY、ZZ,滿足:

    • X→YX \rightarrow Y(XX 決定 YY)
    • Y↛XY \not\rightarrow X(YY 不能反向決定 XX)
    • Y→ZY \rightarrow Z(YY 決定 ZZ)
    • 且 Z⊈YZ \not\subseteq Y、Z⊈XZ \not\subseteq X(非一般相依)

    則根據遞移律(Transitivity Rule),必然存在 X→ZX \rightarrow Z。此時稱屬性 ZZ 遞移相依於 XX(透過中間屬性 YY 產生傳遞)。

  2. 與正規化(Normalization)的關聯:

    • 第一正規化(1NF):確保所有屬性值皆為單一值(無重複群、原子性)。
    • 第二正規化(2NF):符合 1NF,且消除非鍵屬性對候選鍵的「部分相依(Partial Dependency)」。
    • 第三正規化(3NF):符合 2NF,且消除非鍵屬性對候選鍵的「遞移相依(Transitive Dependency)」。在一般實務與考題簡化描述中,這意味著「不允許非主鍵屬性決定另一個非主鍵屬性」(即不存在非鍵屬性之間的函數相依)。

解題方法

在關聯式資料庫中,假設主鍵為 PKPK(Primary Key),另有兩個非鍵屬性(Non-key attributes)記為 AA 與 BB:

  • 若資料表符合 2NF,則每個非鍵屬性都完全相依於主鍵,即 PK→APK \rightarrow A 且 PK→BPK \rightarrow B。
  • 若此時又存在 A→BA \rightarrow B(非鍵屬性決定非鍵屬性),則形成:
    PK→A且A→B  ⟹  PK→遞移BPK \rightarrow A \quad \text{且} \quad A \rightarrow B \implies PK \xrightarrow{\text{遞移}} B
    這導致 BB 透過 AA 遞移相依於主鍵 PKPK。
🔒

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

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

免費註冊

第 4 題

  1. 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)

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

這一題的完整詳解

此題詢問哪種正規型(normal form)能夠消除遞移依賴(transitive dependencies)。

我們需要回顧各種正規型的定義及其消除的異常:

  • 第一正規型 (1NF):要求關係模式中的每個屬性值都是原子值(不可再分割),並且沒有重複的記錄。它主要解決了屬性值不可分割的問題。
  • 第二正規型 (2NF):在 1NF 的基礎上,要求所有非主屬性(non-key attributes)都完全函數依賴於主鍵(primary key)。換句話說,它消除了非主屬性對主鍵的部分函數依賴(partial dependency)。這主要適用於複合主鍵(composite primary key)的情況。
🔒

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

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

免費註冊

第 5 題

  1. 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

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

這一題的完整詳解

此題在詢問下列哪一項「不是」資料庫安全威脅(database security threat)。

我們需要逐一分析每個選項:
(A) SQL Injection(SQL 注入):這是一種常見的網路安全攻擊,攻擊者利用網頁應用程式未經充分驗證的輸入,將惡意的 SQL 語句插入到應用程式的查詢中,從而繞過安全機制、存取或修改資料庫中的資料,甚至完全控制資料庫。這絕對是一個資料庫安全威脅。
(B) Denial of Service (DoS)(阻斷服務攻擊):DoS 攻擊試圖使網路服務或伺服器不可用,通常是通過向目標系統發送大量請求,耗盡其資源(如帶寬、CPU、記憶體),使其無法響應合法用戶的請求。對於資料庫伺服器而言,DoS 攻擊會使其無法提供服務,這也是一個嚴重的安全威脅。

🔒

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

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

免費註冊

第 6 題

  1. 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 Injection(SQL 注入)是指攻擊者將惡意 SQL 語法混入使用者輸入資料,使應用程式誤將輸入內容當成 SQL 指令執行。

例如,程式直接串接輸入值:

SELECT * FROM users
WHERE username = '使用者輸入'
AND password = '使用者輸入';

若攻擊者輸入特殊字串,可能改變原本 SQL 語句的結構,進而繞過登入驗證、讀取資料,甚至刪除資料庫內容。

**Parameterized Query(參數化查詢)**會將 SQL 指令與使用者輸入分開處理:

  1. 先固定 SQL 語句的結構。
  2. 再將使用者輸入以「參數值」傳入。
  3. 資料庫只把輸入內容視為資料,而不會將其中的 SQL 符號解讀為指令。

因此,參數化查詢是防止 SQL Injection 的常見且有效方法。

解題方法

判斷各選項是否能直接防止 SQL Injection,關鍵在於:

該方法是否能避免使用者輸入被當成 SQL 語法執行?

參數化查詢能將指令與資料分離,因此即使輸入內容包含單引號、註解符號或其他 SQL 語法,也只會被視為欄位值,不會改變原 SQL 的執行邏輯。

因此正確選項為 (C)。

選項分析

(A) Using strong passwords

使用強密碼可以降低帳號遭暴力破解、字典攻擊或密碼猜測成功的機率,屬於認證安全措施。

但 SQL Injection 攻擊的核心問題是應用程式如何處理輸入資料,與密碼本身是否複雜無直接關係。因此強密碼不能防止 SQL Injection。

錯誤。

(B) Encrypting data

🔒

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

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

免費註冊

第 7 題

  1. 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)的最佳描述。域完整性是資料庫完整性約束(integrity constraints)的一種。

資料庫完整性約束用於確保資料庫中的資料是準確、有效和一致的。常見的完整性約束包括:

  • 實體完整性(Entity Integrity):確保每個表都有主鍵,且主鍵的值不能為 NULL。這保證了表中每一行的唯一性。
  • 參照完整性(Referential Integrity):確保外鍵(foreign key)的值必須是參照表中主鍵的有效值,或者為 NULL。這保證了表之間的關係是一致的。
  • 域完整性(Domain Integrity):確保表中某一列(屬性)中的所有資料值都屬於預定義的域(domain)。域定義了該屬性可以接受的值的類型、格式、範圍或約束。
  • 使用者定義完整性(User-defined Integrity):由用戶定義的更複雜的規則,可能涉及多個屬性或表。
🔒

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

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

免費註冊

第 8 題

  1. 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

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

這一題的完整詳解

核心觀念

本題測驗關聯式資料庫(Relational Database)中的**索引結構(Indexing)觀念,特別是聚集索引(Clustered Index,又稱叢集索引)與非聚集索引(Non-clustered Index / Secondary Index)**的核心差異。

  1. 聚集索引(Clustered Index)的定義:

    • 決定資料表中資料列在磁碟上的實體儲存順序(Physical Storage Order)。
    • 聚集索引的索引鍵順序(Logical Order)與表格中實際資料的物理排序(Physical Order)完全一致。
    • 因為實體儲存順序只有一種,所以一個資料表只能擁有一個聚集索引。在關聯式資料庫中(例如 MySQL InnoDB 或 SQL Server),通常預設以主鍵(Primary Key)建立聚集索引。
  2. 非聚集索引(Non-clustered Index)的定義:

    • 索引本身是一顆獨立的 B+ Tree,索引節點中包含索引鍵值與指向實際資料列的指標(如 Row ID 或聚集索引鍵值)。
    • 資料列的實體儲存順序與索引鍵順序無關,兩者互相獨立,因此一個資料表可以建立多個非聚集索引。

解題方法

判定索引類型的關鍵切入點在於:「索引鍵的邏輯順序是否決定了實體資料的存放順序」。

  • 聚集索引直接將實際資料存放於索引的葉節點(Leaf Nodes)中,因此索引的排序順序就是表格資料本身的物理順序(The data is stored in the same order as the index/table)。
🔒

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

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

免費註冊

第 9 題

  1. 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

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

這一題的完整詳解

此題詢問關於索引(indexing)的敘述,哪一項是正確的。索引是一種資料結構,用於加速資料庫的查詢操作。

我們來分析每個選項:
(A) Indexes always improve query performance:這是不正確的。雖然索引的主要目的是提高查詢效能,但對於某些查詢(例如,掃描整個表或只查詢表中佔比很小的記錄),索引可能不會帶來顯著的效能提升,甚至可能因為額外的開銷而稍微降低效能。特別是對於非常小的表,建立索引的開銷可能大於查詢時的收益。
(B) Indexes can slow down data modification operations:這是正確的。當資料表中的資料被修改(插入、更新、刪除)時,資料表中對應的索引也需要被更新,以保持與資料的一致性。這個索引更新的過程會增加資料修改操作的開銷。如果一個表有很多索引,那麼資料修改操作的速度會明顯變慢。

🔒

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

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

免費註冊

第 10 題

  1. 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

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

這一題的完整詳解

核心觀念

星狀綱要(star schema)是資料倉儲常用的資料庫設計方式,結構包含:

  • 中央事實表(fact table):儲存可量化、可分析的業務資料,例如銷售金額、銷售數量、利潤。
  • 多個維度表(dimension tables):描述事實資料的分析角度,例如時間、產品、地區、客戶。

事實表位於中心,透過外鍵分別連接多個維度表,整體結構如同星星,因此稱為「星狀綱要」。

解題方法

判斷星狀綱要的關鍵,在於確認其核心結構:

一個中央事實表+多個維度表\text{一個中央事實表}+\text{多個維度表}

題目選項中,只有選項(A)描述「中央事實表連接多個維度表」,完全符合星狀綱要的定義。

選項分析

  • (A)正確:星狀綱要以一個中央事實表為核心,向外連接多個維度表,例如事實表連接時間維度、產品維度與地區維度。
🔒

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

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

免費註冊

第 11 題

  1. 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 α pages in the logical space and β bits are required (i.e., minimum) to present the physical address. What is the pair (α\alpha, β\beta)?
    (A) (64, 20)
    (B) (32, 19)
    (C) (128, 20)
    (D) (128, 19)
    (E) (64, 19)

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

這一題的完整詳解

此題考察作業系統的虛擬記憶體管理,特別是分頁系統(paging system)中,邏輯位址空間、物理記憶體、頁面大小與位址轉換的關係。

題目給定資訊:

  • 邏輯位址空間大小(logical address space size):16 bits。
  • 物理記憶體大小(physical memory size):512 frames。
  • 頁面大小(page size):1024 bytes。

我們需要計算:

  • α\alpha:邏輯空間中的頁數(number of pages in the logical space)。
  • β\beta:表示物理位址所需的最小位元數(minimum bits required to present the physical address)。

計算 α\alpha(邏輯空間中的頁數):

邏輯位址空間總共有 2162^{16} 個位元組。
頁面大小是 1024 bytes,即 2102^{10} bytes。
邏輯空間中的頁數 α\alpha 等於邏輯位址空間的大小除以頁面大小:
α=Logical Address Space SizePage Size=216 bytes210 bytes=216−10=26=64\alpha = \frac{\text{Logical Address Space Size}}{\text{Page Size}} = \frac{2^{16} \text{ bytes}}{2^{10} \text{ bytes}} = 2^{16-10} = 2^6 = 64 頁。

計算 β\beta(表示物理位址所需的最小位元數):

首先,我們要知道物理位址由兩部分組成:頁框號(frame number)和頁內偏移量(offset within the page)。
物理位址的總位元數決定了系統能夠訪問的最大物理記憶體。

  1. 計算頁內偏移量所需的位元數:
    頁面大小是 1024 bytes (2102^{10} bytes)。要表示 1024 個不同的位移,我們需要 log⁡2(1024)=10\log_2(1024) = 10 bits。所以,頁內偏移量需要 10 bits。

  2. 計算頁框號所需的位元數:
    物理記憶體有 512 個頁框(frames)。要唯一標識 512 個頁框,我們需要 log⁡2(512)\log_2(512) bits。
    512=29512 = 2^9,所以頁框號需要 9 bits。

🔒

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

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

免費註冊

第 12 題

  1. 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 Scheduling)和「多層反饋佇列排程」(Multilevel Feedback Queue Scheduling)這兩種 CPU 排程演算法的主要差異。

這兩種演算法都將行程(process)分組到不同的佇列中,每個佇列代表不同的優先級別。通常,高優先級佇列的行程優先於低優先級佇列的行程執行。

多層佇列排程 (Multilevel Queue Scheduling):

  • 行程一旦進入一個佇列,通常就一直待在該佇列中。
  • 每個佇列可以使用不同的排程演算法(例如,高優先級佇列使用輪轉法 Round Robin,低優先級佇列使用先到先服務 FCFS)。
  • 高優先級佇列的行程會完全執行完畢,或者直到其時間片用完,才會輪到低優先級佇列的行程執行。
  • 行程在不同佇列之間通常不能移動。

多層反饋佇列排程 (Multilevel Feedback Queue Scheduling):

  • 這是多層佇列排程的更通用形式。
  • 行程可以在不同的佇列之間移動。
  • 行程可以根據其行為(如 CPU 使用時間、I/O 操作)在佇列之間「反饋」(feedback)升級或降級。
🔒

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

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

免費註冊

第 13 題

  1. 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

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

這一題的完整詳解

核心觀念

本題考查磁碟排程中的 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

服務順序為:

143→913→948→1022→1470→1509→1750→1774143 \rightarrow 913 \rightarrow 948 \rightarrow 1022 \rightarrow 1470 \rightarrow 1509 \rightarrow 1750 \rightarrow 1774

服務完第 17741774 柱面後,C-SCAN 必須繼續移動至磁碟末端第 49994999 柱面,再回到第 00 柱面,最後服務第 8686、130130 柱面:

143→⋯→1774→4999→0→86→130143 \rightarrow \cdots \rightarrow 1774 \rightarrow 4999 \rightarrow 0 \rightarrow 86 \rightarrow 130

總移動距離為:

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

因此:

C-SCAN=9985 cylinders\boxed{\text{C-SCAN}=9985\text{ cylinders}}

二、C-LOOK

🔒

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

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

免費註冊

第 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");
}

(A) 2
(B) 3
(C) 4
(D) 5
(E) 6

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

這一題的完整詳解

核心觀念

fork() 會複製目前的行程,並讓父行程與子行程從 fork() 返回後各自繼續執行:

  • 在子行程中,fork() 的返回值為 0。
  • 在父行程中,fork() 的返回值為正整數,代表子行程的行程識別碼。

因此,分析程式時要逐次追蹤每個行程的條件判斷與後續執行路徑。else if 只有在前面的 if 條件為假時才會執行。

解題方法

先追蹤第一次 fork()。它將原始行程分成父行程與子行程:

行程第一次 fork() 的結果執行路徑印出次數
第一次 fork() 的子行程0執行 if 內的 printf,接著執行最後一行 printf2
原始父行程正整數if 條件為假,繼續判斷 else if—

原始父行程接著執行第二次 fork(),產生另一個子行程:

行程第二次 fork() 的結果執行路徑印出次數
第二次 fork() 的子行程0執行 else if 內的 printf,接著執行最後一行 printf2
🔒

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

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

免費註冊

第 15 題

6 類一模一樣的硬碟構成 RAID(redundant array of inexpensive disks)磁碟陣列,下列哪一種磁碟陣列組態可儲存的有效資料量最小?

(A) RAID 0
(B) RAID 1
(C) RAID 01
(D) RAID 5
(E) RAID 6

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

這一題的完整詳解

核心觀念

RAID 的有效資料量取決於磁碟如何分配資料與備援資訊。設每顆硬碟容量為 CC,總共有 66 顆硬碟,常見組態的有效容量為:

  • RAID 0:不做備援,使用全部磁碟容量。
  • RAID 1:鏡像,資料完整複製到多顆硬碟;若六顆硬碟組成同一鏡像群組,有效容量等於一顆硬碟。
  • RAID 01:先做 RAID 0,再將資料鏡像;通常約有一半容量用於鏡像。
  • RAID 5:以分散式同位元檢查提供備援,需一顆硬碟容量。
  • RAID 6:以雙重分散式同位元檢查提供備援,需兩顆硬碟容量。

解題方法

將每種組態換算成可儲存的有效資料量,再比較大小。依常見定義,六顆同容量硬碟組成一個 RAID 1 鏡像群組時,六顆硬碟都儲存相同資料,因此有效容量為一顆硬碟:

RAID 1=C\text{RAID 1}=C

其他組態如下:

🔒

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

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

免費註冊

第 16 題

所謂殭屍網路(BotNet)攻擊,是指下列何種對電腦的入侵?

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

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

這一題的完整詳解

核心觀念

殭屍網路(BotNet)是由大量遭惡意軟體感染的電腦所組成的網路。受感染的電腦稱為「殭屍電腦」,攻擊者可透過遠端指令控制這些電腦,集中它們的運算或連線能力,發動分散式阻斷服務(DDoS)攻擊、散布垃圾訊息等行為。

解題方法

先抓住「殭屍網路」的兩個關鍵特徵:

  1. 惡意軟體具有遠端遙控功能。
  2. 攻擊者集結大量受感染的電腦,讓它們共同執行攻擊。

逐一比對選項,符合這兩項特徵的敘述就是殭屍網路攻擊。

選項分析

  • (A) 錯誤。 在程式中預先設定特定時間或條件,待條件成立後觸發破壞行為,屬於「邏輯炸彈」的概念;重點是觸發條件,不是控制大量受感染電腦。
  • **(B) 錯誤。
🔒

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

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

免費註冊

第 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,來追蹤開啟的檔案

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

這一題的完整詳解

核心觀念

本題考作業系統如何管理「多個行程開啟檔案」的資訊。典型作法是維護兩層內部表格:

  • 每個行程各自的開啟檔案表(per-process table):記錄該行程使用的檔案描述符,以及對應到哪一筆系統層級的開啟檔案紀錄。
  • 系統層級的開啟檔案表(system-wide table):記錄檔案的共用狀態,例如檔案位置、存取模式與開啟計數等。

因此,作業系統能分別管理每個行程的檔案描述符,也能追蹤系統中正在開啟的檔案。

解題方法

依原卷第 17 題讀取,題目詢問作業系統如何追蹤多個行程同時開啟的檔案;選項列出使用一至四個內部表格的不同組合。判斷重點是辨認標準的兩層架構:system-wide table 與 per-process table。

選項分析

🔒

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

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

免費註冊

第 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' -l file123
(D) grep -n 'ncuim′file123(E)grep−i−n′ncuim' file123 (E) grep -i -n 'ncuim' file123

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

這一題的完整詳解

核心觀念

grep 可依正規表示式搜尋檔案內容。這題要同時滿足兩個條件:

  1. 搜尋「以 ncuim 結尾」的行:在正規表示式中,$ 表示行尾,因此 ncuim$ 代表行尾前緊接著 ncuim。
  2. 顯示符合行的行號:使用 -n 選項。

題目中的字母大小寫不同,若要讓 ncuim 和 NCUIM 都符合,還要使用 -i 忽略大小寫。

解題方法

先判斷搜尋條件:結尾錨點 $ 必須放在 ncuim 之後,形成 ncuim$。接著確認指令包含 -n,以顯示符合行的行號;再確認是否需要 -i,以涵蓋大寫的 NCUIM。

依此判斷,符合條件的指令為:

`grep -i -n 'ncuim

🔒

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

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

免費註冊

第 19 題2 分

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 題2 分

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 題2 分

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 題2 分

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 題2 分

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 題2 分

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 題2 分

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 a1 = new Animal("Lion");
    Animal a2 = new Animal("Tiger", 5);
    Animal a3 = new Animal("Elephant", 10, "Mammal");
    Animal a4 = new Animal(3, "Reptile");
    a1.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).

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

這一題的完整詳解

解題方法

原卷第 5、6 頁顯示,Animal 有四個建構子:前三個分別透過 this(name)、this(name, age) 串接呼叫,第四個直接設定 age 與 type;程式建立四個物件並呼叫 display()。圖中文字與題目所列程式及選項一致。

逐一檢查建構子呼叫是否符合 Java 規則,再確認未被指定的欄位會保留什麼值。Java 允許建構子呼叫其他建構子,但若使用 this(...),該呼叫必須是建構子的第一個敘述;建構子也不必一定呼叫同類別的其他建構子。

核心觀念

物件欄位在未被明確指定時會取得預設值:參考型別欄位為 null,整數型別欄位為 0。因此,Animal(int age, String type) 沒有設定 name 時,該物件的 name 仍為 null。

選項分析

  • (A) 正確。 四個物件所呼叫的建構子都存在,this(...) 呼叫也都放在建構子的第一個敘述。第四個建構子未呼叫其他建構子不構成編譯錯誤,因此程式可編譯並執行。
  • **(B) 正確。
🔒

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

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

免費註冊

第 26 題2 分

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 a1 = new Dog();
Animal a2 = new Cat();
a1.makeSound();
a2.makeSound();

    a1.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.
(C) The makeSound method in the Cat class overrides the makeSound method in the Animal class.
(D) The fetch method in the Dog class can be called using the a1 reference.
(E) The scratch method in the Cat class can be called using the a2 reference.

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

這一題的完整詳解

核心觀念

本題考查 Java 的方法覆寫,以及參考變數的宣告型別如何影響方法呼叫。

子類別可以覆寫父類別中可繼承的方法;呼叫被覆寫的方法時,執行哪個版本由物件的實際型別決定。但編譯器會先依參考變數的宣告型別檢查該方法是否可呼叫。父類別參考變數即使指向子類別物件,也不能直接呼叫只宣告在子類別中的方法。

解題方法

圖中程式將 a1 宣告為 Animal 型別、指向 Dog 物件;將 a2 宣告為 Animal 型別、指向 Cat 物件。Dog 與 Cat 都覆寫了 Animal 的 makeSound(),但 fetch() 只宣告在 Dog,scratch() 只宣告在 Cat。

因此分兩步判斷:先確認各方法是否能透過參考變數的宣告型別通過編譯,再判斷覆寫的方法實際執行哪個版本。

Animal a1 = new Dog();
Animal a2 = new Cat();

a1.makeSound(); // 可呼叫:Animal 有 makeSound()
a2.makeSound(); // 可呼叫:Animal 有 makeSound()

a1.fetch();     // 編譯錯誤:Animal 沒有 fetch()
a2.scratch();   // 編譯錯誤:Animal 沒有 scratch()
🔒

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

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

免費註冊

第 27 題2 分

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 題2 分

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 題2 分

Which of the following information is stored in the 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 中保存執行、排程與資源管理所需的資訊;行程切換時,也會利用 PCB 保存及恢復行程的執行狀態。

PCB 常見欄位包括行程狀態、處理器暫存器與程式計數器、CPU 排程資訊、記帳資訊,以及 I/O 狀態資訊。

解題方法

逐項比對選項與 PCB 的典型欄位。只要該資訊是作業系統管理行程、安排執行或追蹤資源使用所需,就屬於 PCB 常見內容;行程間通訊資訊則不是標準 PCB 欄位清單中的典型項目。

選項分析

  • (A) scheduling information:正確。 PCB 會記錄 CPU 排程所需資訊,例如行程優先權、排程佇列指標,以及其他排程參數。
  • **(B) accounting information:正確。
🔒

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

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

免費註冊

第 30 題2 分

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 題2 分

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 題2 分

What transparencies are important and critical for design of a distributed file system?

(A) penalty transparency
(B) access transparency
(C) scaling transparency
(D) mobility transparency
(E) communication transparency

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

這一題的完整詳解

核心觀念

本題考查分散式檔案系統的「透明性」:系統透過介面與命名設計,隱藏檔案分散存放、移動或擴充所帶來的細節,讓使用者與應用程式能以一致方式使用檔案。

分散式檔案系統常見的透明性包括存取透明性、位置透明性、移動透明性、效能透明性與擴充透明性。存取透明性讓本地與遠端檔案使用相同操作;移動透明性讓檔案搬移後,客戶端程式與管理設定不必跟著修改;擴充透明性則讓服務能逐步增加資源,以因應更大的負載與網路規模。《Distributed Systems: Concepts and Design》分散式檔案系統章節

解題方法

逐一比對選項與分散式檔案系統常見的透明性名稱與定義。題目中的「scaling transparency」對應擴充透明性;「mobility transparency」與「access transparency」則是直接列出的透明性類型。其餘兩項不是此處採用的標準透明性名稱。

選項分析

🔒

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

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

免費註冊

第 33 題2 分

What are the correct descriptions of deadlock and livelock?

(A) Processes in deadlock cannot proceed until the other processes release 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)。

  • 死結:一組行程各自等待只能由同組其他行程釋放的資源或事件,因此所有行程都停滯,無法繼續。
  • 活結:行程仍持續改變狀態、彼此回應,但這些活動沒有帶來有效進展。
  • 資源排序協定:為資源建立一致的全序,並要求行程依序申請資源,可避免形成循環等待,進而預防死結。

解題方法

逐項比對選項中的描述是否符合死結或活結的定義。判斷活結時,關鍵在於「行程是否仍在活動」以及「活動有沒有讓工作向前推進」;判斷死結預防方法時,則確認是否能破壞死結形成的必要條件之一。

選項分析

(A) 正確。
死結中的行程正在等待其他行程釋放所需資源。在等待條件未解除前,這些行程無法繼續執行。

🔒

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

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

免費註冊

第 34 題2 分

以下哪些指令,會使檔案(檔名 file123)的檔案所屬群組無法寫入該檔案?

(A) chmod w-g file123
(B) chmod 740 file123
(C) chmod 450 file123
(D) chmod 460 file123
(E) chmod 770 file123

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

這一題的完整詳解

核心觀念

Linux 檔案權限分成三組:檔案擁有者、所屬群組、其他使用者。符號表示法常寫成 rwxrwxrwx,三組依序對應擁有者、群組、其他使用者。

八進位表示法中,r=4、w=2、x=1,每一位數分別代表擁有者、群組、其他使用者的權限。因此,判斷「所屬群組無法寫入」,只要看權限字串中間那一組是否包含 w,或看八進位數字的中間位是否包含數值 2。

解題方法

逐一檢查每個指令設定的群組權限:

  • 八進位權限:取三位數的中間一位,換算其讀、寫、執行權限。
  • 符號權限:確認指令的格式是否合法,再判斷它是否會移除群組的寫入權限。

選項分析

(A) chmod w-g file123:不選。
這不是合法的符號權限格式。chmod 的符號格式為「對象、運算符、權限」,例如 g-w 表示移除群組的寫入權限。w-g 把權限與對象的順序顛倒,執行時會報錯,不能視為有效設定群組權限的指令。

(B) chmod 740 file123:選。
三位數依序代表擁有者、群組、其他使用者:

🔒

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

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

免費註冊

第 35 題2 分

下列敘述何者正確?

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

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

這一題的完整詳解

核心觀念

本題考查 Unix shell 的引號與特殊字元處理:

  • 反斜線 \:在未加引號的情況下,會取消下一個字元的特殊意義。shell 移除反斜線後,將下一個字元視為一般字元。
  • 單引號 '...':引號內的字元都按字面處理,命令替換不會執行。
  • 雙引號 "...":可以保留多數字元的字面意義,但變數展開與反向單引號命令替換仍會執行。
  • 反向單引號 `命令`:執行其中的命令,並以命令輸出取代原本的文字。

解題方法

逐一判斷 shell 在執行 echo 前,會如何處理每個選項中的特殊字元:

  1. 檢查 * 是否會展開成檔名。
  2. 檢查反向單引號中的命令是否會執行。
  3. 區分單引號與雙引號對命令替換的影響。

選項分析

  • (A) 正確。 未加引號的 * 原本會展開成目前目錄中符合條件的檔名;前面的反斜線使 * 失去特殊意義。因此 echo \* star \* 輸出:

    * star *
    
🔒

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

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

免費註冊

第 36 題15 分

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

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

這一題的完整詳解

核心觀念

本題考查 IPv4 與 IPv6 的主要差異。作答時應選擇三個彼此不同的比較面向,並說明差異如何影響位址容量、資料表示或封包處理。

解題方法

可從「位址長度與數量」、「位址表示法」、「封包標頭與處理方式」三個面向比較。每一點先指出兩種協定的規格,再說明其實際影響,便能完整回答題意。

差異說明

一、位址長度與位址數量

IPv4 位址長度為 32 位元,理論上共有:

232=4,294,967,2962^{32}=4,294,967,296

個位址。IPv6 位址長度為 128 位元,理論上共有:

2128≈3.4×10382^{128}\approx 3.4\times 10^{38}

個位址。IPv6 的位址空間遠大於 IPv4,能因應大量 IoT 裝置及其他網路設備的連網需求。實際可配置的位址數量仍會受到保留位址及配置規則影響。

二、位址表示法

IPv4 通常以四組十進位數字表示,每組範圍為 0 至 255,組與組之間以句點分隔,例如 192.168.1.10。

IPv6 則以八組十六進位數字表示,各組之間以冒號分隔,例如 2001:0db8:0000:0000:0000:0000:0000:0001。

🔒

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

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

免費註冊

第 37 題15 分

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

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

這一題的完整詳解

核心觀念

本題考查企業網路的區域隔離與存取控制,以及兩種防火牆在檢查網路流量時的層級與判斷依據。

DMZ 是設於外部網路與企業內部網路之間的隔離網段,常放置需要讓外部使用者連線的伺服器,例如網站、郵件或 DNS 伺服器。封包過濾式防火牆依封包欄位及規則控制流量;WAF 則專門檢查網頁應用程式的 HTTP/HTTPS 流量與請求內容。

解題方法

回答時先說明 DMZ 在網路架構中的位置與用途,再比較 WAF 和封包過濾式防火牆的檢查層級、分析內容及防護對象。關鍵在於區分「哪些網路連線可以通過」與「通過的網頁請求是否含有應用程式攻擊」。

DMZ 的功用

DMZ(非軍事區)是位於企業內部網路和外部網路之間的受控隔離區,用來放置必須對外提供服務、但不應直接暴露企業內部網路的主機,例如網站伺服器、郵件伺服器及 DNS 伺服器。

常見架構可表示為:

外部網路 ⇄ 外部防火牆 ⇄ DMZ ⇄ 內部防火牆 ⇄ 企業內部網路

DMZ 的主要功用如下:

  1. 隔離對外服務與內部網路:外部使用者可依規則連線至 DMZ 中的服務,不必直接進入內部網路。
  2. 限制流量與權限:防火牆可分別設定外部網路至 DMZ、DMZ 至內部網路,以及內部網路至 DMZ 的允許規則。例如,允許外部使用者連線至網站伺服器的 HTTPS 服務,但只允許該伺服器連到內部指定的資料庫服務。
  3. 降低入侵擴散風險:若 DMZ 中的主機遭入侵,分區與存取規則可限制攻擊者進一步存取企業內部主機及資料。
  4. 集中管理對外服務:企業可在 DMZ 中部署公開服務,並在防火牆上統一管理其對外連線政策。

DMZ 不代表其中主機絕對安全,也不代表 DMZ 與內部網路之間完全無法通訊;實際安全性仍取決於防火牆規則、主機設定與維護。

WAF 與封包過濾式防火牆的差異

比較項目WAF封包過濾式防火牆
主要檢查層級應用層,主要針對 HTTP/HTTPS網路層與傳輸層,主要依封包標頭判斷
🔒

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

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

免費註冊

其他考古題