111 國安局特考三等 資訊組(選試英文) 計算機概論 考古題詳解

111 年・國安局特考・三等・資訊組(選試英文)
試題代碼 計算機概論

第 一 題25 分

計算機由記憶體、中央處理單元、輸出入子系統等組成,請回答下列問題: (一) 說明暫存器(Register)、程式計數器(Program Counter)之功用以及使用快取記憶體(Cache Memory)之目的。(15 分) (二) 說明工作排程器(Job Scheduler)與行程排程器(Process Scheduler)有何差異?(10 分)

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

這一題的完整詳解

核心觀念

本題考查作業系統與計算機組織的基本架構,重點包括:

  1. 暫存器與程式計數器在中央處理單元中的功能。
  2. 快取記憶體如何利用區域性原理改善記憶體存取效能。
  3. 工作排程器與行程排程器在排程時機、排程對象及執行頻率上的差異。

(一)暫存器、程式計數器與快取記憶體

1. 暫存器(Register)

暫存器是位於 CPU 內部、供處理器直接存取的高速儲存單元。其容量通常很小,但速度遠高於主記憶體,主要用來暫存指令、資料、位址及運算結果。

常見暫存器包括:

  • 一般用途暫存器:暫存運算過程中的資料或中間結果。
  • 累加器(Accumulator):協助保存算術與邏輯運算結果。
  • 指令暫存器(Instruction Register, IR):保存目前正在解碼或執行的指令。
  • 記憶體位址暫存器(Memory Address Register, MAR):保存欲存取的記憶體位址。
  • 記憶體資料暫存器(Memory Data Register, MDR):保存與記憶體交換中的資料或指令。
  • 狀態暫存器(Status Register):保存零值、進位、負值、溢位等條件旗標。

在指令執行過程中,CPU 會將必要的資料與指令載入暫存器,透過暫存器完成解碼、運算及資料交換,因此暫存器是 CPU 執行指令時最直接、最快速的儲存空間。

2. 程式計數器(Program Counter, PC)

程式計數器用來保存「下一個要被取出的指令」在記憶體中的位址。

典型的指令週期如下:

  1. CPU 依照 PC 的內容,到記憶體中取出下一個指令。
  2. 將該指令載入指令暫存器。
  3. PC 通常更新為下一個循序指令的位址。
  4. CPU 解碼並執行指令。

若每條指令長度固定為 LL 位元組,則循序執行時可表示為:

PCnext=PCcurrent+LPC_{\text{next}}=PC_{\text{current}}+L

若遇到跳躍、分支、函式呼叫、中斷或例外處理,PC 則會被改寫成新的目標位址:

PCnext=Branch Target AddressPC_{\text{next}}=\text{Branch Target Address}

因此,PC 並不是保存目前正在運算的資料,而是控制程式執行流程的重要暫存器。若 PC 發生錯誤,CPU 便可能從錯誤的記憶體位址取出指令,導致程式流程異常。

3. 快取記憶體(Cache Memory)的目的

快取記憶體是位於 CPU 與主記憶體之間的高速記憶體,用來暫存近期或經常使用的指令與資料,以降低 CPU 存取主記憶體的平均時間。

其設計依據是程式執行具有區域性原理(Locality of Reference):

  • 時間區域性(Temporal Locality):最近使用過的資料或指令,很可能在短時間內再次使用。
  • 空間區域性(Spatial Locality):某個記憶體位址被存取後,鄰近位址的資料也很可能很快被使用。

當 CPU 要求資料時:

  • 若資料已在 Cache 中,稱為 Cache Hit,CPU 可快速取得資料。
  • 若資料不在 Cache 中,稱為 Cache Miss,必須至主記憶體取得資料,並將資料載入 Cache。

平均記憶體存取時間可概念性表示為:

AMAT=Tcache+MR×PmissAMAT=T_{\text{cache}}+MR \times P_{\text{miss}}

其中:

  • TcacheT_{\text{cache}}:查詢 Cache 所需時間。
  • MRMR:未命中率(Miss Rate)。
  • PmissP_{\text{miss}}:發生 Cache Miss 時所需的額外處理時間。

使用 Cache 的主要目的不是增加永久儲存容量,而是縮小 CPU 與主記憶體之間的速度差距,提高 CPU 使用效率及整體系統效能。


(二)工作排程器與行程排程器的差異

1. 工作排程器(Job Scheduler)

工作排程器又稱長期排程器(Long-Term Scheduler),主要負責從後備儲存裝置或工作池中,選擇部分工作載入主記憶體,建立成為可執行的行程。

其主要功能包括:

🔒

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

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

免費註冊

第 二 題25 分

有關無線網路與網路協定,請回答下列問題: (一) 依其定義、標準、傳輸距離,說明 WLAN(Wireless Local Area Network)與 WPAN(Wireless Personal Area Network)之差異?(15 分) (二) 假設一個系統使用五層協定,如果應用程式創建一個 100 bytes100\text{ bytes} 的訊息,每層(包括第五層和第一層)添加一個 10 bytes10\text{ bytes} 的 header 到資料單元,則該系統的傳輸效率(Transmission Efficiency)是多少?(10 分)

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

這一題的完整詳解

核心觀念

本題考查兩項網路基本觀念:

  1. 依網路涵蓋範圍、IEEE 標準與傳輸距離,區分 WLAN 與 WPAN。
  2. 依分層協定的「封裝(encapsulation)」計算傳輸效率。

(一)WLAN 與 WPAN 的差異

1. WLAN:Wireless Local Area Network

WLAN 是「無線區域網路」,利用無線電波在有限區域內連接多部電腦、手機、伺服器及網路設備,使其具備區域網路的通訊功能。

  • 定義:以無線方式建立區域網路,取代或延伸傳統 Ethernet。
  • 主要標準:IEEE 802.11 系列,例如 Wi-Fi。
  • 常見架構:透過無線基地台(Access Point, AP)連接用戶端;也可採用設備對設備的 Ad Hoc 模式。
  • 傳輸距離:通常約為數十公尺,室內常見約 30∼5030\sim50 公尺,開放環境可達約 100100 公尺,實際距離受牆壁、頻段、天線及干擾影響。
  • 主要特色:傳輸速率較高,適合家庭、辦公室、校園及公共場所的網路存取。

2. WPAN:Wireless Personal Area Network

WPAN 是「無線個人區域網路」,以個人或單一使用者周圍的小範圍為通訊核心,連接手機、耳機、鍵盤、滑鼠、穿戴式裝置及感測器等設備。

  • 定義:在個人周邊建立的小型無線網路。
  • 主要標準:IEEE 802.15 系列。
  • 常見技術:
  • Bluetooth:IEEE 802.15.1 相關技術
  • Zigbee:IEEE 802.15.4 相關技術
  • UWB:IEEE 802.15.4 相關技術
  • 傳輸距離:通常約數公尺至 1010 公尺左右,依功率、設備等級及技術而定。
  • 主要特色:低功率、低成本、設備數量較少,適合個人周邊設備互聯。

3. 差異比較

比較項目WLANWPAN
中文名稱無線區域網路無線個人區域網路
涵蓋範圍房間、住家、辦公室、校園等區域個人身體或周邊小範圍
主要標準IEEE 802.11IEEE 802.15
常見技術Wi-FiBluetooth、Zigbee、UWB
傳輸距離通常數十公尺,最遠約可達 100100 公尺通常數公尺至約 1010 公尺
典型用途上網、檔案傳輸、區域網路存取耳機、鍵盤、滑鼠、穿戴式裝置
設計重點較高傳輸速率與區域覆蓋低功率與個人設備互聯

解題技巧

判斷兩者時,可掌握以下關鍵:

  • 看「區域網路」:以 IEEE 802.11、Wi-Fi 為主,即為 WLAN。
  • 看「個人周邊」:以 IEEE 802.15、Bluetooth、Zigbee 為主,即為 WPAN。
🔒

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

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

免費註冊

第 三 題25 分

有關多程式(Multi-Programming)記憶體管理,請回答下列問題: (一) 說明何謂 Swapping 以及 Non-Swapping 記憶體管理方法?分頁(Paging)是屬於那種管理方式?(15 分) (二) 假設某作業系統採用分頁記憶體管理,可用記憶體 100 MB100\text{ MB},分割成 2525 個頁框(Frame)。今有 33 個程式請求執行:程式 A 需要 21 MB21\text{ MB}、程式 B 需要 27 MB27\text{ MB}、程式 C 需要 38 MB38\text{ MB}。則三個程式總共使用了幾個頁框?未被使用頁框的比率是多少?(10 分)

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

這一題的完整詳解

核心觀念

本題考查多程式環境中的兩種記憶體管理方式:

  1. Swapping:以整個程式為單位,在主記憶體與外部儲存空間間搬移。
  2. Non-Swapping:程式載入主記憶體後,執行期間不將整個程式移出主記憶體。
  3. Paging:將程式切割成固定大小的頁面(Page),主記憶體切割成相同大小的頁框(Frame),以頁面為單位配置記憶體。

(一)Swapping、Non-Swapping 與 Paging

1. Swapping 記憶體管理

Swapping 是指作業系統在主記憶體不足時,將某一個完整程式暫時移出主記憶體,存放至磁碟上的交換區(Swap Space);待需要執行該程式時,再將其完整載回主記憶體。

其主要特徵如下:

  • 以「整個程式」作為搬移單位。
  • 可暫時釋放主記憶體空間,讓其他程式進入執行。
  • 程式移出與移入的資料量較大,磁碟輸入/輸出成本高。
  • 若頻繁進行 Swapping,會造成系統效能降低。

例如,主記憶體中同時有程式 A、B、C,當程式 D 需要執行而空間不足時,作業系統可將程式 B 整個移至交換區,騰出空間給程式 D。

2. Non-Swapping 記憶體管理

Non-Swapping 是指程式載入主記憶體後,在其執行期間不將整個程式移出主記憶體。多個程式可同時常駐於主記憶體中,由作業系統分配各自的記憶體區域。

其主要特徵如下:

  • 程式通常會一直留在主記憶體中。
  • 不需頻繁搬移整個程式,磁碟存取負擔較低。
  • 多程式能否同時執行,取決於主記憶體容量及配置方式。
  • 若採用分頁,可只配置程式實際需要的頁框數量。

3. Paging 屬於哪一種管理方式?

就本題所採用的分類而言,Paging 屬於 Non-Swapping 記憶體管理方式。

理由是分頁將程式切割成許多固定大小的頁面,再將各頁配置至主記憶體中的頁框,不必將整個程式完整移出主記憶體。即使需求分頁(Demand Paging)會將個別頁面載入或移出,搬移單位仍是「頁面」,而不是完整程式,因此不屬於傳統意義的整體程式 Swapping。


(二)頁框數量與未使用頁框比率

解題方法

先求出每個頁框的大小,再將各程式所需記憶體除以頁框大小。由於一個程式只要有部分內容需要使用下一個頁面,就必須配置完整頁框,因此頁框數量必須採用無條件進位。

1. 求每個頁框大小

可用記憶體為 100 MB100\text{ MB},共有 2525 個頁框:

每個頁框大小=100 MB25=4 MB\text{每個頁框大小} = \frac{100\text{ MB}}{25} = 4\text{ MB}

2. 計算程式 A 所需頁框數

程式 A 需要 21 MB21\text{ MB}:

🔒

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

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

免費註冊

第 四 題25 分

請回答以下 Python 程式設計問題: (一) 說明下列程式一的功用為何?(7 分) (二) 執行程式一,且輸入整數 88,則輸出的結果為何?(6 分) (三) 執行程式二,則輸出的結果為何?(6 分) (四) 執行程式三,則輸出的結果為何?(6 分)

【程式一】

01 
02 def theNum(n):
03     if n == 1:
04         result = 1
05     else:
06         result = theNum(n - 1) + n
07     return result
08 
09 a=int(input())
10 print(theNum(a))
11 
12 

【程式二】

01 def main():
02     x=3
03     print(x)
04     f()
05     print(x)
06 
07 def f():
08     x=8
09     print(x)
10 
11 main()
12 

【程式三】

01 
02 def f(num):
03     num = num + 5
04     return num
05 
06 num = 2
07 print(f(num))
08 print(num)
09 
10 
11 
12 

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

這一題的完整詳解

核心觀念

本題考查 Python 的:

  • 遞迴函式(recursion)
  • 函式呼叫與回傳值
  • 區域變數作用範圍(local scope)
  • 函式參數傳遞
  • 整數的不可變性(immutable)

(一)程式一的功用

def theNum(n):
 if n == 1:
 result = 1
 else:
 result = theNum(n - 1) + n
 return result

此函式採用遞迴方式計算:

1+2+3+⋯+n1+2+3+\cdots+n

當 n=1n=1 時:

result = 1

這是遞迴的終止條件,也稱為基本情況(base case)。

當 n>1n>1 時:

result = theNum(n - 1) + n

表示先計算:

1+2+⋯+(n−1)1+2+\cdots+(n-1)

再加上 nn。因此其遞迴關係為:

T(n)=T(n−1)+nT(n)=T(n-1)+n

且:

T(1)=1T(1)=1

所以程式一的功用是:輸入正整數 nn 後,利用遞迴計算 11 到 nn 的整數總和,最後輸出結果。

此總和亦可用公式表示為:

n(n+1)2\frac{n(n+1)}{2}

(二)輸入整數 8 的輸出結果

程式執行:

a = int(input)
print(theNum(a))

輸入 88 後,函式展開如下:

theNum(8)=theNum(7)+8=theNum(6)+7+8=theNum(5)+6+7+8=⋯=theNum(1)+2+3+4+5+6+7+8=1+2+3+4+5+6+7+8=36\begin{aligned} \text{theNum}(8) &=\text{theNum}(7)+8\\ &=\text{theNum}(6)+7+8\\ &=\text{theNum}(5)+6+7+8\\ &=\cdots\\ &=\text{theNum}(1)+2+3+4+5+6+7+8\\ &=1+2+3+4+5+6+7+8\\ &=36 \end{aligned}

因此輸出為:

36

也可直接使用公式驗算:

8(8+1)2=8×92=36\frac{8(8+1)}{2} = \frac{8\times9}{2} = 36

(三)程式二的輸出結果

def main:
 x = 3
 print(x)
 f
 print(x)

def f:
 x = 8
 print(x)

main
🔒

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

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

免費註冊

其他考古題

111 年國安局特考三等・其他類科的《計算機概論》