110 專技高考高等考試 資訊技師 計算機系統 考古題詳解
第 一 題25 分
給定一個十進位數字為 ,請問:
- 其二進位表示法為何?
- IEEE 超 127(excess-127 system)單精準度(32-bits single precision)表示法為何?
- 機械常數(machine epsilon)為多少?
登入後即可作答並保存紀錄。
核心觀念
本題考查十進位數轉二進位、IEEE 754 單精準度浮點數編碼,以及機械常數(machine epsilon)的定義。
IEEE 754 單精準度共 32 位元,欄位配置為:
- 符號位元 :1 位
- 指數欄位 :8 位,使用超 127(excess-127)偏移
- 尾數欄位 :23 位;正規化數的最高有效位元 不儲存,稱為隱含的前導
解題方法
1. 轉換成二進位
先將整數與小數部分分開轉換。
整數部分:
因此 。
小數部分以 反覆相乘,取每次乘積的整數部分:
因此 。原數為負數,故:
2. 編碼為 IEEE 754 單精準度
將二進位數正規化為 :
因此符號位元為 。實際指數 ,加上偏移量 :
第 二 題25 分
可用性(availability)、擴展性(scalability)和產出量(throughput)是設計伺服器時最重要的考慮因素。請回答下列問題:
(一) 假設某一系統採用一個 CPU 處理器 A,其 FIT(Failures in Time)為 200,請問此系統的 MTBF(Mean Time Between Failure)是多少?
(二) 如果此系統故障後,需要一天時間才能恢復系統運作,那麼系統的可用性是多少?
(三) 如果某公司為了降低營運成本,建構伺服器時,準備採用以許多較便宜且可靠的電腦來構建一台超級電腦的策略。若此一系統採用了 500 個 A 處理器,則其 MTBF 是多少?(假設如果有一個處理器失敗,則整個系統都會運作失敗。)
登入後即可作答並保存紀錄。
核心觀念
FIT 是故障率單位,代表每 小時發生一次故障的故障率。若故障率為 ,則:
系統可用性(availability)以可運作時間占總時間的比例表示。若平均修復時間為 MTTR,則:
解題方法
(一)單一處理器的 MTBF
處理器 A 的故障率為:
因此:
換算成年:
(二)系統可用性
修復時間為一天,即 小時。代入可用性公式:
第 三 題25 分
考慮某一系統具有 5 個行程(process): 到 ,及 4 類硬體設備:、、、。硬體設備 有 12 個、 有 12 個、 有 8 個、 有 10 個。
給定一個系統狀態如下:
| 行程 | Allocation | Max |
|---|---|---|
Available:
其中, 這一列代表, 目前擁有 2 個 、0 個 、0 個 、1 個 ,執行期間最多同時需要 4 個 、2 個 、1 個 、2 個 ,而 Available 這一行表示目前系統同時執行 ~ 後,硬體設備還閒置 3 個 、3 個 、2 個 、1 個 。
假設使用銀行家演算法(Banker’s algorithm)來避免死結的發生,請回答以下問題:
(一) 請問需求矩陣(need matrix)為何?
(二) 假設現在 有個請求:需要設備 1 個 、1 個 、0 個 、0 個 ,請問依據銀行家演算法,系統是否會同意此請求?判斷流程為何?
(三) 假設現在 (忽略前題 請求)有個請求:需要設備 0 個 、0 個 、2 個 、0 個 ,請問依據銀行家演算法,系統是否會同意此需求?判斷流程為何?
登入後即可作答並保存紀錄。
核心觀念
本題考驗銀行家演算法(Banker’s algorithm)的安全性檢查。銀行家演算法以每個行程的最大需求量預先掌握資源需求,並只在確認系統仍處於安全狀態時,才核准資源請求。
各矩陣與向量的關係如下:
對某一請求向量 ,依序檢查:
- :請求不得超過該行程尚未滿足的最大需求。
- :目前可用資源必須足以立即提供請求。
- 暫時分配資源,執行安全性檢查;若能找到所有行程的安全完成順序,才核准請求。
向量比較採逐項比較,例如 表示四種設備各自都不超過。
解題方法
(一)計算需求矩陣
逐行以 Max 減去 Allocation,設備順序皆為 :
| 行程 | Max | Allocation | Need |
|---|---|---|---|
例如, 的需求為:
(二) 請求
先比較請求與 的 Need:
成立。再比較與 Available:
也成立,因此可以進行暫時分配,並檢查安全性。
暫時分配後:
的 Allocation 更新為 ,Need 更新為:
以暫時更新後的 Available 作為 Work,反覆尋找 Need 不大於 Work 的行程;行程完成後,將其 Allocation 加回 Work。
| 步驟 | 可完成行程 | 完成後 Work |
|---|---|---|
| 初始 | — | |
| 1 | ,Need | |
| 2 | ,Need | |
| 3 | ,Need |
第 四 題15 分
作業系統為了行程(process)排程,會由適當的排班程式(scheduler)於佇列(queue)中選取相關的行程,請問排班程式可分為哪三種?其用途分別為何?其中哪幾種與多元程式規劃程度(degree of multiprogramming)相關?
登入後即可作答並保存紀錄。
核心觀念
作業系統的行程排程器(scheduler)依排程層級分為三種:
- 長程排班程式(long-term scheduler,工作排班程式):從工作池中選取工作,載入記憶體並建立行程,使其進入就緒佇列。它控制系統接受多少工作,因此會影響多元程式規劃程度(degree of multiprogramming)。
- 中程排班程式(medium-term scheduler,交換排班程式):暫時將部分行程換出主記憶體,之後再換入,以調節記憶體負載及行程數,也會影響多元程式規劃程度。
- 短程排班程式(short-term scheduler,CPU 排班程式):從就緒佇列選出下一個行程,分派 CPU 執行。它執行頻率最高,負責決定 CPU 的使用順序。
解題方法
第 五 題10 分
給定一個列導向(row-oriented)分頁系統,有兩個分頁(page),每頁可裝 200 個整數(integer)。假設一個二維整數陣列 在此分頁系統中執行,請問下列程式(a)與(b),若使用 LRU(Least Recently Used)分頁替換演算法,分別會產生多少個分頁錯誤(page faults)?
(a) for(int ;;) for(int ;;) ;
(b) for(int ;;) for(int ;;) ;
登入後即可作答並保存紀錄。
核心觀念
本題考查陣列在列導向(row-oriented)儲存下的記憶體存取順序,以及 LRU 分頁替換。列導向表示同一列的元素連續存放,因此 與 相鄰。
每頁可容納 個整數,而陣列共有 個整數,所以需要:
系統只有兩個頁框。存取的資料不在目前頁框中時,產生一次分頁錯誤;若頁框已滿,LRU 會置換最近最久未使用的頁面。
解題方法
將陣列依列導向切分成頁面。每列有 個整數,因此每頁可容納兩列:
- 第 1 頁:第 列
- 第 2 頁:第 列
- 依此類推
- 第 50 頁:第 列
(a)外層走列、內層走欄
程式依序存取 ,再存取下一列。由於每頁含兩列,存取順序會完整讀完一頁後才進入下一頁。
每頁第一次被存取時產生一次分頁錯誤;同一頁的其餘存取都命中。共存取 50 頁,因此: