111 國安局特考三等 資訊組(選試英文) 計算機概論 考古題詳解
第 一 題25 分
計算機由記憶體、中央處理單元、輸出入子系統等組成,請回答下列問題: (一) 說明暫存器(Register)、程式計數器(Program Counter)之功用以及使用快取記憶體(Cache Memory)之目的。(15 分) (二) 說明工作排程器(Job Scheduler)與行程排程器(Process Scheduler)有何差異?(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統與計算機組織的基本架構,重點包括:
- 暫存器與程式計數器在中央處理單元中的功能。
- 快取記憶體如何利用區域性原理改善記憶體存取效能。
- 工作排程器與行程排程器在排程時機、排程對象及執行頻率上的差異。
(一)暫存器、程式計數器與快取記憶體
1. 暫存器(Register)
暫存器是位於 CPU 內部、供處理器直接存取的高速儲存單元。其容量通常很小,但速度遠高於主記憶體,主要用來暫存指令、資料、位址及運算結果。
常見暫存器包括:
- 一般用途暫存器:暫存運算過程中的資料或中間結果。
- 累加器(Accumulator):協助保存算術與邏輯運算結果。
- 指令暫存器(Instruction Register, IR):保存目前正在解碼或執行的指令。
- 記憶體位址暫存器(Memory Address Register, MAR):保存欲存取的記憶體位址。
- 記憶體資料暫存器(Memory Data Register, MDR):保存與記憶體交換中的資料或指令。
- 狀態暫存器(Status Register):保存零值、進位、負值、溢位等條件旗標。
在指令執行過程中,CPU 會將必要的資料與指令載入暫存器,透過暫存器完成解碼、運算及資料交換,因此暫存器是 CPU 執行指令時最直接、最快速的儲存空間。
2. 程式計數器(Program Counter, PC)
程式計數器用來保存「下一個要被取出的指令」在記憶體中的位址。
典型的指令週期如下:
- CPU 依照 PC 的內容,到記憶體中取出下一個指令。
- 將該指令載入指令暫存器。
- PC 通常更新為下一個循序指令的位址。
- CPU 解碼並執行指令。
若每條指令長度固定為 位元組,則循序執行時可表示為:
若遇到跳躍、分支、函式呼叫、中斷或例外處理,PC 則會被改寫成新的目標位址:
因此,PC 並不是保存目前正在運算的資料,而是控制程式執行流程的重要暫存器。若 PC 發生錯誤,CPU 便可能從錯誤的記憶體位址取出指令,導致程式流程異常。
3. 快取記憶體(Cache Memory)的目的
快取記憶體是位於 CPU 與主記憶體之間的高速記憶體,用來暫存近期或經常使用的指令與資料,以降低 CPU 存取主記憶體的平均時間。
其設計依據是程式執行具有區域性原理(Locality of Reference):
- 時間區域性(Temporal Locality):最近使用過的資料或指令,很可能在短時間內再次使用。
- 空間區域性(Spatial Locality):某個記憶體位址被存取後,鄰近位址的資料也很可能很快被使用。
當 CPU 要求資料時:
- 若資料已在 Cache 中,稱為 Cache Hit,CPU 可快速取得資料。
- 若資料不在 Cache 中,稱為 Cache Miss,必須至主記憶體取得資料,並將資料載入 Cache。
平均記憶體存取時間可概念性表示為:
其中:
- :查詢 Cache 所需時間。
- :未命中率(Miss Rate)。
- :發生 Cache Miss 時所需的額外處理時間。
使用 Cache 的主要目的不是增加永久儲存容量,而是縮小 CPU 與主記憶體之間的速度差距,提高 CPU 使用效率及整體系統效能。
(二)工作排程器與行程排程器的差異
1. 工作排程器(Job Scheduler)
工作排程器又稱長期排程器(Long-Term Scheduler),主要負責從後備儲存裝置或工作池中,選擇部分工作載入主記憶體,建立成為可執行的行程。
其主要功能包括:
第 二 題25 分
有關無線網路與網路協定,請回答下列問題: (一) 依其定義、標準、傳輸距離,說明 WLAN(Wireless Local Area Network)與 WPAN(Wireless Personal Area Network)之差異?(15 分) (二) 假設一個系統使用五層協定,如果應用程式創建一個 的訊息,每層(包括第五層和第一層)添加一個 的 header 到資料單元,則該系統的傳輸效率(Transmission Efficiency)是多少?(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查兩項網路基本觀念:
- 依網路涵蓋範圍、IEEE 標準與傳輸距離,區分 WLAN 與 WPAN。
- 依分層協定的「封裝(encapsulation)」計算傳輸效率。
(一)WLAN 與 WPAN 的差異
1. WLAN:Wireless Local Area Network
WLAN 是「無線區域網路」,利用無線電波在有限區域內連接多部電腦、手機、伺服器及網路設備,使其具備區域網路的通訊功能。
- 定義:以無線方式建立區域網路,取代或延伸傳統 Ethernet。
- 主要標準:IEEE 802.11 系列,例如 Wi-Fi。
- 常見架構:透過無線基地台(Access Point, AP)連接用戶端;也可採用設備對設備的 Ad Hoc 模式。
- 傳輸距離:通常約為數十公尺,室內常見約 公尺,開放環境可達約 公尺,實際距離受牆壁、頻段、天線及干擾影響。
- 主要特色:傳輸速率較高,適合家庭、辦公室、校園及公共場所的網路存取。
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 相關技術
- 傳輸距離:通常約數公尺至 公尺左右,依功率、設備等級及技術而定。
- 主要特色:低功率、低成本、設備數量較少,適合個人周邊設備互聯。
3. 差異比較
| 比較項目 | WLAN | WPAN |
|---|---|---|
| 中文名稱 | 無線區域網路 | 無線個人區域網路 |
| 涵蓋範圍 | 房間、住家、辦公室、校園等區域 | 個人身體或周邊小範圍 |
| 主要標準 | IEEE 802.11 | IEEE 802.15 |
| 常見技術 | Wi-Fi | Bluetooth、Zigbee、UWB |
| 傳輸距離 | 通常數十公尺,最遠約可達 公尺 | 通常數公尺至約 公尺 |
| 典型用途 | 上網、檔案傳輸、區域網路存取 | 耳機、鍵盤、滑鼠、穿戴式裝置 |
| 設計重點 | 較高傳輸速率與區域覆蓋 | 低功率與個人設備互聯 |
解題技巧
判斷兩者時,可掌握以下關鍵:
- 看「區域網路」:以 IEEE 802.11、Wi-Fi 為主,即為 WLAN。
- 看「個人周邊」:以 IEEE 802.15、Bluetooth、Zigbee 為主,即為 WPAN。
第 三 題25 分
有關多程式(Multi-Programming)記憶體管理,請回答下列問題: (一) 說明何謂 Swapping 以及 Non-Swapping 記憶體管理方法?分頁(Paging)是屬於那種管理方式?(15 分) (二) 假設某作業系統採用分頁記憶體管理,可用記憶體 ,分割成 個頁框(Frame)。今有 個程式請求執行:程式 A 需要 、程式 B 需要 、程式 C 需要 。則三個程式總共使用了幾個頁框?未被使用頁框的比率是多少?(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查多程式環境中的兩種記憶體管理方式:
- Swapping:以整個程式為單位,在主記憶體與外部儲存空間間搬移。
- Non-Swapping:程式載入主記憶體後,執行期間不將整個程式移出主記憶體。
- 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. 求每個頁框大小
可用記憶體為 ,共有 個頁框:
2. 計算程式 A 所需頁框數
程式 A 需要 :
第 四 題25 分
請回答以下 Python 程式設計問題: (一) 說明下列程式一的功用為何?(7 分) (二) 執行程式一,且輸入整數 ,則輸出的結果為何?(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
此函式採用遞迴方式計算:
當 時:
result = 1
這是遞迴的終止條件,也稱為基本情況(base case)。
當 時:
result = theNum(n - 1) + n
表示先計算:
再加上 。因此其遞迴關係為:
且:
所以程式一的功用是:輸入正整數 後,利用遞迴計算 到 的整數總和,最後輸出結果。
此總和亦可用公式表示為:
(二)輸入整數 8 的輸出結果
程式執行:
a = int(input)
print(theNum(a))
輸入 後,函式展開如下:
因此輸出為:
36
也可直接使用公式驗算:
(三)程式二的輸出結果
def main:
x = 3
print(x)
f
print(x)
def f:
x = 8
print(x)
main