接下來排隊完了,欸不是啦什麼排隊!排程!幫進程排完行程後,要讓他們一個一個運行了,所以我們來看看他們在排隊執行的時候在幹嘛吧!
1.進程狀態(Process States): 作業系統會將進程的運行狀態分為幾個階段,常見的進程狀態包括:
新建(New):進程剛剛被創建,尚未開始運行。
就緒(Ready):進程已經準備好運行,但目前沒有分配到 CPU。
執行中(Running):進程正在 CPU 上運行。
等待(Waiting):進程正在等待某些事件發生(例如 I/O 操作完成)才能繼續執行。
終止(Terminated):進程已經完成,並釋放所有資源。
這邊作業系統會根據進程的狀態和資源需求來決定是否要將它從「就緒」狀態切換到「執行中」狀態。
2.上下文切換(Context Switching):當作業系統在不同進程之間切換時,需要保存當前進程的上下文(如寄存器內容、程序計數器、記憶體狀態等),然後加載下一個進程的上下文。這個過程稱為上下文切換。
上下文切換過程包含:
保存當前進程的狀態。
從就緒隊列中選擇下一個要執行的進程。
加載新進程的狀態,並讓它在 CPU 上運行。
上下文切換會消耗 CPU 時間,過多的切換可能影響系統效能,因此排程演算法也需要在效率和公平性之間取得平衡。