單元2測驗/CPU排程(第3周) 返回
當作業系統把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)
唯一識別一個程序的名稱或編號。
(3)排班資訊(Scheduling Information) - (對應選項 C)
包含優先級、排班隊列等與 CPU 排程有關的資訊。
CPU 註冊內容
包括程式計數器(PC)、堆疊指標(SP)、一般用途寄存器等。
開啟的檔案資訊
記錄該程序開啟的文件或 I/O 資源。
但 (D) 程序的記憶體內容 不會 存放在 PCB 中,因為記憶體內容(例如程序的程式碼和資料)是存放在 RAM 內,當程序被切換出去時,系統通常不會直接保存它的記憶體內容,而是透過虛擬記憶體機制來管理,例如分頁(Paging)或分段(Segmentation)。
結論:
程序的記憶體內容 不會儲存在 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。
父程序與子程序的執行順序不確定,取決於作業系統的排程機制。
 
結論:
(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)內容 
包括通用暫存器(General Registers)、堆疊指標(Stack Pointer, SP)、基址指標(Base Pointer, BP)等,這些都需要儲存,以確保切換回來後,程序可以正確執行。
③ 程序的狀態(Process State) 
程序可能處於**執行中(Running)、就緒(Ready)、等待(Waiting)**等狀態,作業系統需要記錄當前狀態,以便恢復時進行適當的排程。
 
為什麼 ④ 尚未用完之時間配額(Time Quantum)不需要記錄?
時間配額(Time Quantum) 是時間分割(Time-sharing)系統中的 CPU 排程參數,並不是程序本身的狀態,而是由排程器管理的。當程序被切換出去後,它可能會被重新分配新的時間配額,因此不需要在程序控制區(PCB)中儲存舊的時間配額值。
結論:
① 程式計數器、② 暫存器內容、③ 程序狀態 是程序切換時需要記錄的資訊,因此答案是 (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 能力內)
能夠熟練使用作業系統、辦公軟體、網路瀏覽、電子郵件等,是 IT 基本技能的一部分。
(B) 能自行組合電腦  (不屬於 IT 能力的核心範圍)
組裝電腦屬於硬體專業技術,而 IT 能力更強調電腦應用,而非硬體組裝。
(C) 對資訊科技對社會的衝擊瞭解甚深  (包含在 IT 能力內)
理解科技對社會、經濟、法律、隱私權的影響,有助於負責任地使用 IT 技術。
(D) 有能力作為電腦及相關產品的精明消費者  (包含在 IT 能力內)
能夠比較不同科技產品的功能、價格、安全性,以做出明智的消費決策,是數位素養的一部分。
結論:
資訊技術能力主要側重於電腦應用與數位素養,不包括自行組合電腦這種專門的硬體技能,因此答案是:(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) 
發生在記憶體管理中,當系統頻繁進行分頁置換(page swapping),導致 CPU 大量時間被浪費在記憶體存取而非執行實際工作。與死結不同,振盪現象通常是因為記憶體分配不當,而非資源相互等待。
(B) 活結(Live Lock) 
類似於死結,但程序仍持續改變狀態,只是無法取得進展。例如兩個程序持續改變狀態試圖避免衝突,但最終仍無法完成工作。
(C) 遲滯現象(Starvation) 
發生於資源分配策略不公平的情況,某些低優先權的程序可能長時間無法獲得資源。例如,在一個高優先權程序持續執行的系統中,低優先權程序可能永遠無法獲得 CPU 時間,但這與死結不同,因為沒有形成環狀等待。
結論:
當程序互相持有對方需要的資源,並且無法釋放時,會發生 「死結(Deadlock)」,因此正確答案是 (D)。
答對率 : 82.6 %
下載答題分析