當作業系統把CPU 切換給另一個程序時,是利用程序控制區(Process Control Block)來保存原來程序的相關資料,其中不包括下列那一項?
-
A. 程序目前的狀態0% (0)
-
B. 程序的識別名稱8.7% (2)
-
C. 程序的排班資訊0% (0)
-
D. 程序的記憶體內容87% (20)
-
未填寫4.3% (1)
解說:
答案是 (D) 程序的記憶體內容。
當作業系統進行本文切換(Context Switch)時,會利用程序控制區(Process Control Block, PCB)來儲存和管理程序的相關資訊。
PCB 主要包含以下資訊:
(1)程序狀態(Process State) - (對應選項 A)
記錄程序當前的狀態,例如執行中(Running)、等待中(Waiting)、就緒(Ready)等。
(2)程序識別碼(Process Identifier, PID) - (對應選項 B)
(2)程序識別碼(Process Identifier, PID) - (對應選項 B)
唯一識別一個程序的名稱或編號。
(3)排班資訊(Scheduling Information) - (對應選項 C)
(3)排班資訊(Scheduling Information) - (對應選項 C)
包含優先級、排班隊列等與 CPU 排程有關的資訊。
CPU 註冊內容
CPU 註冊內容
包括程式計數器(PC)、堆疊指標(SP)、一般用途寄存器等。
開啟的檔案資訊
開啟的檔案資訊
記錄該程序開啟的文件或 I/O 資源。
但 (D) 程序的記憶體內容 不會 存放在 PCB 中,因為記憶體內容(例如程序的程式碼和資料)是存放在 RAM 內,當程序被切換出去時,系統通常不會直接保存它的記憶體內容,而是透過虛擬記憶體機制來管理,例如分頁(Paging)或分段(Segmentation)。
但 (D) 程序的記憶體內容 不會 存放在 PCB 中,因為記憶體內容(例如程序的程式碼和資料)是存放在 RAM 內,當程序被切換出去時,系統通常不會直接保存它的記憶體內容,而是透過虛擬記憶體機制來管理,例如分頁(Paging)或分段(Segmentation)。
結論:
程序的記憶體內容 不會儲存在 PCB,因此正確答案是 (D)。
程序的記憶體內容 不會儲存在 PCB,因此正確答案是 (D)。
答對率 : 87 %
在UNIX 作業系統中,以下有關程序的敘述,何者正確?
-
A. FORK 呼叫之後,父程序繼續執行且子程序開始執行65.2% (15)
-
B. FORK 呼叫之後,父程序結束執行而子程序開始執行4.3% (1)
-
C. FORK 呼叫之後,父程序與子程序同時結束執行21.7% (5)
-
D. FORK 呼叫之後,父程序繼續執行而子程序結束執行4.3% (1)
-
未填寫4.3% (1)
解說:
在 UNIX 作業系統中,fork() 系統呼叫用於創建新程序(子程序),它會複製父程序的 PCB(Process Control Block),使得父程序與子程序幾乎完全相同,並且開始執行。fork() 之後:
父程序繼續執行,而子程序也開始執行。
子程序是父程序的完整副本,但它擁有自己的 PID(Process ID)。
fork() 會在父程序和子程序中都返回:
對父程序而言,fork() 返回子程序的 PID。
對子程序而言,fork() 返回 0。
父程序與子程序的執行順序不確定,取決於作業系統的排程機制。
子程序是父程序的完整副本,但它擁有自己的 PID(Process ID)。
fork() 會在父程序和子程序中都返回:
對父程序而言,fork() 返回子程序的 PID。
對子程序而言,fork() 返回 0。
父程序與子程序的執行順序不確定,取決於作業系統的排程機制。
結論:
(B) 錯誤:父程序並不會因為 fork() 而結束,除非它顯式調用 exit()。
(C) 錯誤:fork() 只是創建新程序,並不會讓父程序與子程序同時結束。
(D) 錯誤:子程序不會立即結束,除非它遇到 exit() 或其他終止條件。
結論:
在 fork() 之後,父程序與子程序都會繼續執行,因此答案是 (A)。
(B) 錯誤:父程序並不會因為 fork() 而結束,除非它顯式調用 exit()。
(C) 錯誤:fork() 只是創建新程序,並不會讓父程序與子程序同時結束。
(D) 錯誤:子程序不會立即結束,除非它遇到 exit() 或其他終止條件。
結論:
在 fork() 之後,父程序與子程序都會繼續執行,因此答案是 (A)。
答對率 : 65.2 %
程序切換(process switch)或本文切換(context switch)時需要將程序的資訊記錄下來,以便將來再被分排執行時,能回覆到交替時的計算環境。請問下列那些資訊需要被記錄?①程式計數器(program counter)內容 ②其他暫存器(registers)內容 ③程序的狀態 ④尚未用完之時間配額(time quantum)值
-
A. ①②③30.4% (7)
-
B. ②③④4.3% (1)
-
C. ①③④47.8% (11)
-
D. ①②④13% (3)
-
未填寫4.3% (1)
解說:
當發生本文切換(Context Switch)時,作業系統需要將當前執行中的程序狀態儲存起來,然後載入新程序的狀態,以確保新程序可以從先前中斷的地方繼續執行。需要記錄的資訊包括:
① 程式計數器(Program Counter, PC)內容
記錄程序目前執行到哪一條指令,當切換回來時,程序可以從該指令繼續執行。
② 其他暫存器(Registers)內容
② 其他暫存器(Registers)內容
包括通用暫存器(General Registers)、堆疊指標(Stack Pointer, SP)、基址指標(Base Pointer, BP)等,這些都需要儲存,以確保切換回來後,程序可以正確執行。
③ 程序的狀態(Process State)
③ 程序的狀態(Process State)
程序可能處於**執行中(Running)、就緒(Ready)、等待(Waiting)**等狀態,作業系統需要記錄當前狀態,以便恢復時進行適當的排程。
為什麼 ④ 尚未用完之時間配額(Time Quantum)不需要記錄?
時間配額(Time Quantum) 是時間分割(Time-sharing)系統中的 CPU 排程參數,並不是程序本身的狀態,而是由排程器管理的。當程序被切換出去後,它可能會被重新分配新的時間配額,因此不需要在程序控制區(PCB)中儲存舊的時間配額值。
時間配額(Time Quantum) 是時間分割(Time-sharing)系統中的 CPU 排程參數,並不是程序本身的狀態,而是由排程器管理的。當程序被切換出去後,它可能會被重新分配新的時間配額,因此不需要在程序控制區(PCB)中儲存舊的時間配額值。
結論:
① 程式計數器、② 暫存器內容、③ 程序狀態 是程序切換時需要記錄的資訊,因此答案是 (A) ①②③。
① 程式計數器、② 暫存器內容、③ 程序狀態 是程序切換時需要記錄的資訊,因此答案是 (A) ①②③。
答對率 : 30.4 %
資料技術能力(Information Technology Competency )一般而言不包括以下那一項?(
-
A. 能有效使用電腦與網路4.3% (1)
-
B. 能自行組合電腦47.8% (11)
-
C. 對資訊科技對社會的衝擊瞭解甚深34.8% (8)
-
D. 有能力作為電腦及相關產品的精明消費者8.7% (2)
-
未填寫4.3% (1)
解說:
資訊技術能力(Information Technology Competency, IT Competency) 一般指的是個人對資訊科技的應用能力,涵蓋電腦操作、網路使用、資訊安全、數位素養等方面,但不一定包括硬體組裝能力。
選項分析:
(A) 能有效使用電腦與網路 (包含在 IT 能力內)
(A) 能有效使用電腦與網路 (包含在 IT 能力內)
能夠熟練使用作業系統、辦公軟體、網路瀏覽、電子郵件等,是 IT 基本技能的一部分。
(B) 能自行組合電腦 (不屬於 IT 能力的核心範圍)
(B) 能自行組合電腦 (不屬於 IT 能力的核心範圍)
組裝電腦屬於硬體專業技術,而 IT 能力更強調電腦應用,而非硬體組裝。
(C) 對資訊科技對社會的衝擊瞭解甚深 (包含在 IT 能力內)
(C) 對資訊科技對社會的衝擊瞭解甚深 (包含在 IT 能力內)
理解科技對社會、經濟、法律、隱私權的影響,有助於負責任地使用 IT 技術。
(D) 有能力作為電腦及相關產品的精明消費者 (包含在 IT 能力內)
(D) 有能力作為電腦及相關產品的精明消費者 (包含在 IT 能力內)
能夠比較不同科技產品的功能、價格、安全性,以做出明智的消費決策,是數位素養的一部分。
結論:
資訊技術能力主要側重於電腦應用與數位素養,不包括自行組合電腦這種專門的硬體技能,因此答案是:(B) 能自行組合電腦。
資訊技術能力主要側重於電腦應用與數位素養,不包括自行組合電腦這種專門的硬體技能,因此答案是:(B) 能自行組合電腦。
答對率 : 47.8 %
如果系統中有兩個或更多個執行中的程序互相持有對方等待的資源,則可能會發生:
-
A. 振盪現象(thrashing)0% (0)
-
B. 活結(live lock)0% (0)
-
C. 遲滯現象(starvation)13% (3)
-
D. 死結(deadlock)82.6% (19)
-
未填寫4.3% (1)
解說:
當系統中有兩個或更多的執行中程序,它們互相持有對方正在等待的資源,且沒有任何程序可以繼續執行時,就會發生 死結(Deadlock)。這種情況通常發生於多工環境或並行系統中,例如兩個程序各自持有一部分資源,並且都在等待對方釋放資源,導致它們無法前進。
為什麼其他選項是錯的?
(A) 振盪現象(Thrashing)
(A) 振盪現象(Thrashing)
發生在記憶體管理中,當系統頻繁進行分頁置換(page swapping),導致 CPU 大量時間被浪費在記憶體存取而非執行實際工作。與死結不同,振盪現象通常是因為記憶體分配不當,而非資源相互等待。
(B) 活結(Live Lock)
(B) 活結(Live Lock)
類似於死結,但程序仍持續改變狀態,只是無法取得進展。例如兩個程序持續改變狀態試圖避免衝突,但最終仍無法完成工作。
(C) 遲滯現象(Starvation)
(C) 遲滯現象(Starvation)
發生於資源分配策略不公平的情況,某些低優先權的程序可能長時間無法獲得資源。例如,在一個高優先權程序持續執行的系統中,低優先權程序可能永遠無法獲得 CPU 時間,但這與死結不同,因為沒有形成環狀等待。
結論:
當程序互相持有對方需要的資源,並且無法釋放時,會發生 「死結(Deadlock)」,因此正確答案是 (D)。
結論:
當程序互相持有對方需要的資源,並且無法釋放時,會發生 「死結(Deadlock)」,因此正確答案是 (D)。
答對率 : 82.6 %