110 民航特考三等 航空通信 計算機概論 考古題詳解

110 年・民航特考・三等・航空通信
試題代碼 計算機概論

第 一 題25 分

行程(Process)是電腦作業系統中重要的元素,請回答下列有關作業系統行程之問題:

(一)在作業系統中,行程以行程控制區塊(Process Control Block, PCB)表示,PCB 中除了 CPU 排程資訊和記憶體管理資訊外,還有哪三個元素?一個行程在電腦中執行時會有 New、Running、Waiting、Ready、Terminated 等狀態,請完成下列程序狀態圖(Process State Diagram)中(I)~(VI)的狀態和轉換。(15 分)

🖼️【此處有附圖,請對照原卷】

圖中包含下列狀態與轉換:

  • New
  • (IV)
  • (V)
  • (VI)
  • Terminate
  • (I)~(VI)之狀態或轉換
  • I/O 或 event
  • I/O 或 event wait
  • exit

(二)請說明兩種程序間溝通(Interprocess Communication, IPC)機制的基礎模型:分享記憶體(Shared Memory)與訊息傳遞(Message Passing),在不同狀況下的優缺點。(10 分)

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

本題考查兩個作業系統觀念:行程控制區塊(PCB)保存的行程資訊,以及行程在 New、Ready、Running、Waiting、Terminated 之間的狀態轉換;另外也比較共享記憶體與訊息傳遞兩種行程間溝通(IPC)模型。

PCB 用來保存行程執行與管理所需的資訊。常見欄位包括行程狀態、行程識別資訊、程式計數器、CPU 暫存器、CPU 排程資訊、記憶體管理資訊、會計資訊及 I/O 狀態資訊。題目指定列出三項時,可答:行程狀態、會計資訊、I/O 狀態資訊;完整 PCB 欄位也包含行程識別資訊、程式計數器及 CPU 暫存器。

解題方法

依狀態圖中各箭頭的方向判斷轉換:新行程先進入就緒佇列;排程器選中就緒行程後,行程開始執行;執行中的行程遭到搶先時回到就緒狀態;等待 I/O 或事件時進入等待狀態,事件完成後再回到就緒狀態;執行完成則結束。

(一)PCB 欄位與狀態圖

PCB 中除了題目提到的 CPU 排程資訊和記憶體管理資訊外,三項可答:

  1. 行程狀態:記錄行程目前是 New、Ready、Running、Waiting 或 Terminated。
  2. 會計資訊:記錄 CPU 使用時間、執行時間、帳號或資源使用量等資訊。
  3. I/O 狀態資訊:記錄已配置的 I/O 裝置、開啟的檔案及相關 I/O 資源。

完整 PCB 也常包含行程識別資訊、程式計數器及 CPU 暫存器等欄位。

狀態圖各空格如下:

  • (I):Admitted(接納),New → Ready
  • (II):Interrupt/Preemption(中斷或被搶先),Running → Ready
  • (III):Scheduler dispatch(排程器派遣),Ready → Running
  • (IV):Ready(就緒)
  • (V):Running(執行)
  • (VI):Waiting(等待)

其餘轉換為:

🔒

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

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

免費註冊

第 二 題25 分

佇列(Queue)是重要的資料結構,可使用陣列(Array)或鏈結串列(Link List)實作。

(一)請填寫下表,從空間使用、增刪速度上說明,以陣列(Array)或鏈結串列(Link List)實作佇列的優缺點。(6 分)

比較項目以陣列實作鏈結串列實作
使用空間數量已知
使用空間數量未知
增加刪除元素

(二)佇列一般從後端(back)加入(enqueue)一個新元素,從前端(front)刪除(dequeue)一個元素。請完成下面使用陣列實作環狀佇列(Circular Queue)程式碼(I~V)空格,使輸出為:(15 分)

enqueue data=0, enqueue data=1, Queue Full, Queue Full, Queue Full,
dequeue data=0, dequeue data=1, Queue Empty, Queue Empty, Queue Empty,

程式碼如下:

#include <stdio.h>
#define SIZE 3
typedef enum { FALSE, TRUE } bool;

bool isEmpty(int front, int back) {
  return (front == ____); // (I)
}

bool isFull(int front, int back) {
  return ((____) == front); // (II)
}

bool enqueue(int data[], int index[], int key) {
  // front = index[0];
  // back = index[1];
  if (isFull(index[0], index[1]))
    return FALSE;
  index[1] = ____; // (III)
  data[index[1]] = key;
  return ____; // (IV)
}

int dequeue(int data[], int index[]) {
  // front = index[0];
  // back = index[1];
  // dequeue data = index[2]
  if (isEmpty(index[0], index[1]))
    return FALSE;
  index[0] = ____; // (V)
  index[2] = data[index[0]];
  return TRUE;
}

int main() {
  int k = 0;
  // front = index[0]; back = index[1];
  // dequeue data = index[2]
  int index[3] = { 0, 0, 0 };
  int data[SIZE];
  bool result;

  for (int i = 0; i < 5; i++) {
    result = enqueue(data, index, k++);
    if (!result)
      printf("Queue Full, ");
    else
      printf("enqueue data=%d, ", k - 1);
  }

  printf("\n");

  for (int i = 0; i < 5; i++) {
    result = dequeue(data, index);
    if (!result)
      printf("Queue Empty, ");
    else
      printf("dequeue data=%d, ", index[2]);
  }

  return 0;
}

(三)請說明最大優先權佇列(Max-Priority Queue)有哪些基本操作,以及如何應用於作業系統排程。(4 分)

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

本題考查佇列的先進先出(FIFO)特性、陣列與鏈結串列的實作差異、環狀佇列的空/滿判斷,以及最大優先權佇列在作業系統排程中的應用。

(一)陣列與鏈結串列實作佇列

比較項目以陣列實作鏈結串列實作
使用空間數量已知可一次配置固定大小的連續空間,沒有節點指標額外開銷,適合容量已知的情況。仍須逐節點配置空間,且每個節點要額外儲存指標,空間使用較不精簡。
使用空間數量未知容量固定時可能不足;若要擴充,通常需重新配置較大的陣列並搬移資料。可依元素數量逐步配置與釋放節點,較能配合數量變動。
增加刪除元素一般線性陣列若需維持元素連續,插入或刪除可能要搬移元素,時間為 O(n)O(n)。若已持有前端與後端指標,在佇列兩端調整連結即可,增加與刪除時間為 O(1)O(1)。

**解題方法:**先比較容量管理方式,再比較操作時是否需要搬移資料。須注意,若陣列採用環狀佇列,入隊與出隊可用前後端索引循環移動,兩者皆可達 O(1)O(1),不必搬移其餘元素。

(二)環狀佇列程式碼

空格填答

  • (I) back
  • (II) (back + 1) % SIZE
  • (III) (index[1] + 1) % SIZE
  • (IV) TRUE
  • (V) (index[0] + 1) % SIZE

其中,(II)的完整判斷式為:

return (((back + 1) % SIZE) == front);

推導與執行過程

程式以 index[0] 儲存 front、index[1] 儲存 back,並以 front == back 表示佇列為空。為了區分空佇列與滿佇列,陣列會保留一格不用,因此滿佇列條件是:

(back+1) mod SIZE=front(back+1)\bmod SIZE=front

enqueue 先檢查是否已滿;未滿時將 back 前進一格,再把新資料放入該位置。dequeue 先檢查是否為空;未空時將 front 前進一格,再讀取該位置的資料。

初始時 front=back=0,而 SIZE=3:

🔒

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

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

免費註冊

第 三 題25 分

第五代行動通訊標準(5G)是第 4 代行動通訊標準(4G)後技術的進化。

(一)請說明國際電信聯盟(ITU)制定 5G 三大目標/特性:

  1. eMBB(高頻寬、高速)。
  2. uRLLC(高可靠度、低延遲)。
  3. mMTC(多連結)。

(15 分)

(二)請說明無人機與虛擬實境(Virtual Reality, VR)如何應用這些特性。(10 分)

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

這一題的完整詳解

核心觀念

本題考查 5G(ITU 所稱 IMT-2020)的三類主要使用情境,以及如何把不同的通訊需求對應到無人機與虛擬實境(VR)應用。三項特性各自優先處理的問題不同:

  • eMBB(enhanced Mobile Broadband,增強型行動寬頻):重視高資料傳輸速率與大頻寬,適合傳送高畫質、大容量資料。
  • uRLLC(ultra-Reliable and Low-Latency Communications,超高可靠度與低延遲通訊):重視通訊可靠性與短反應時間,適合即時控制、遠端操作等任務。
  • mMTC(massive Machine-Type Communications,大規模機器型通訊):重視大量裝置同時連網,適合感測器、物聯網設備與大量終端回報資料。

這三者是不同的服務需求方向,不代表所有 5G 應用都必須同時達到三者的最高能力。

解題方法

先把每項特性簡化成一個問題,再對照應用需求:

5G 特性核心問題應用需求
eMBB資料量大、傳輸速率高高畫質影像、沉浸式 VR 畫面
uRLLC反應時間短、連線可靠無人機即時操控、VR 畫面與動作同步
mMTC大量裝置同時連網無人機群、感測器或多個穿戴裝置連線

作答時,先說明特性,再各自舉出無人機與 VR 如何受益,並交代應用背後的原因。

(一)5G 三大目標/特性

1. eMBB:增強型行動寬頻

eMBB 著重提升行動網路的資料傳輸速率與可用頻寬,使網路能承載大量資料。常見需求包括高畫質影音串流、大型檔案傳輸及高解析度影像回傳。

重點是「傳得多、傳得快」,而非以裝置數量或即時控制為主。

2. uRLLC:超高可靠度與低延遲通訊

uRLLC 著重降低資料從發送端到接收端所需的時間,並提升通訊成功率與穩定性。對遠端控制或安全相關任務而言,延遲過長或連線中斷都可能影響操作結果。

重點是「反應快、連線可靠」。即使資料量不大,仍可能非常需要 uRLLC。

3. mMTC:大規模機器型通訊

🔒

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

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

免費註冊

第 四 題25 分

請回答下列作業系統記憶體管理相關問題:

(一)設定記憶體管理中,目前的記憶體配置狀態如下圖,A~E 區域為尚未使用的部分,其餘為已配置行程(process)區域。若有新行程需要 290K 記憶體,請分別使用最先合適法(first fit)、最佳合適法(best fit)與最差合適法(worst fit)時,新行程會被分配的區域,並計算新產生的碎片大小。(18 分)

🖼️【此處有附圖,請對照原卷】

記憶體區域由上而下如下:

  • Process 1
  • A(490K)
  • Process 2
  • B(210K)
  • Process 3
  • C(400K)
  • Process 4
  • D(690K)
  • Process 5
  • E(320K)
  • Process 6

(二)記憶體碎裂可分為外部碎裂(external fragmentation)與內部碎裂(internal fragmentation)。請說明分頁(paging)與分段(segmentation)記憶體管理法會產生碎裂的種類與原因。(7 分)

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

本題考查連續記憶體配置的三種搜尋策略,以及分頁、分段造成的碎裂類型。

  • 最先合適法(first fit):由記憶體起始位置依序搜尋,選擇第一個足以容納行程的空閒區。
  • 最佳合適法(best fit):在足以容納行程的空閒區中,選擇容量最小者。
  • 最差合適法(worst fit):在足以容納行程的空閒區中,選擇容量最大者。
  • 配置後該空閒區的剩餘容量為:
剩餘空閒容量=原空閒區容量−行程需求容量\text{剩餘空閒容量}=\text{原空閒區容量}-\text{行程需求容量}

解題方法

新行程需要 290K290K。由圖可知,空閒區依序為 A=490KA=490K、B=210KB=210K、C=400KC=400K、D=690KD=690K、E=320KE=320K。只有 AA、CC、DD、EE 足以容納新行程;B=210KB=210K 不足。

配置策略選取區域配置後剩餘容量
最先合適法A=490KA=490K490−290=200K490-290=200K
最佳合適法E=320KE=320K320−290=30K320-290=30K
最差合適法D=690KD=690K690−290=400K690-290=400K

因此,新行程分別配置於 A、E、D 區,並各留下 200K200K、30K30K、400K400K 的空閒區。

分頁與分段的碎裂

🔒

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

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

免費註冊

其他考古題