39. 下列何者是一個程序在 user mode 中執行時觸發系統呼叫,所產生的狀態轉換?
(A) Ready → Running
(B) Running → Ready
(C) Running → Kernel Mode
(D) Blocked → Running
答案:登入後查看
統計: A(8), B(7), C(9), D(1), E(0) #3447906
統計: A(8), B(7), C(9), D(1), E(0) #3447906
詳解 (共 1 筆)
#6443966
當一個程序在 user mode (使用者模式) 中執行時,如果它需要執行一些特權操作或存取受保護的系統資源(例如讀寫檔案、建立新行程、網路通訊等),它就必須向作業系統的核心發出一個系統呼叫 (System Call)。
這個過程會導致以下狀態轉換:
模式轉換:CPU 會從較低權限的使用者模式切換到較高權限的核心模式 (Kernel Mode)。這是因為只有在核心模式下,作業系統才能執行特權指令並直接管理硬體資源。
控制權轉移:CPU 的控制權會從使用者程式轉移到作業系統的核心。
因此,最能描述這種情況下所產生的狀態轉換是:
控制權轉移:CPU 的控制權會從使用者程式轉移到作業系統的核心。
因此,最能描述這種情況下所產生的狀態轉換是:
(C) Running → Kernel Mode:一個正在執行(Running)於使用者模式的程序,在發出系統呼叫時,CPU 的執行模式會從使用者模式切換到核心模式,以便核心處理該請求。程序本身可能仍然被視為邏輯上處於「運行中」的狀態(儘管現在是核心在替它執行服務),但最核心的變化是執行模式的提升。
其他選項的解釋:
其他選項的解釋:
(A) Ready → Running:這是排程器選擇一個準備好執行的程序並將 CPU 分配給它時發生的狀態轉換。
(B) Running → Ready:這通常發生在執行中的程序時間片用完(time slice expires)或被更高優先級的程序搶佔時,它會被放回就緒佇列等待下次被排程。
(D) Blocked → Running:這是一個被阻塞(例如等待 I/O 完成)的程序,當其等待的事件發生後,被解除阻塞並進入就緒狀態,然後再由排程器分配 CPU 進入執行狀態。
The final answer is
C
(B) Running → Ready:這通常發生在執行中的程序時間片用完(time slice expires)或被更高優先級的程序搶佔時,它會被放回就緒佇列等待下次被排程。
(D) Blocked → Running:這是一個被阻塞(例如等待 I/O 完成)的程序,當其等待的事件發生後,被解除阻塞並進入就緒狀態,然後再由排程器分配 CPU 進入執行狀態。
The final answer is
C
0
0