CPU 突發或 I/O 突發

CPU 突發或 I/O 突發

如果目前正在執行的程序面臨 I/O 突發,下一個可用程序會取得 CPU 突發,還是處理器會等到第一個行程的 I/O 突發完成後再繼續執行第一個行程。

這也會受到演算法是搶佔式還是非搶佔式的影響嗎?

謝謝!

答案1

簡而言之,是的。當 CPU 密集型任務變得 I/O 受限時,作業系統將重新調度該任務,直到它準備好執行更多 CPU 工作。這意味著其他進程(需要 CPU 完成工作)將獲得 CPU 上的時間。

對於更長的答案,這是我第一次遇到這些特定術語。我只能找到少數幾頁提到它,它似乎是一種最佳化策略,而不是實體 CPU 或作業系統功能。它不是作業系統或 CPU 中可以在進程之間共享的“突發階段”,而只是進程在一個域或另一個域中有工作要做時“突發”。透過優化您的工作流程以多完成一項工作,並為另一項工作儲存工作,您可以使這些「突發」工作更加有效。

因此,作業系統是搶佔式的還是非搶佔式的並不重要。它只知道進程陷入等待或準備就緒,並相應地安排它。如果一個進程正在執行計算並突然嘗試讀取文件,那麼它將停止並在資料可用時重新安排。

這些「爆發」相關的唯一原因是確保您有效地使用作業系統規劃的時間片。如果您的 CPU 密集型任務中散佈著大量 I/O,那麼您將停滯並可能失去等待這些 I/O 操作的部分規劃時間。如果您將 I/O 批量化為“突發”,那麼您的進程可以更好地利用 CPU 上的時間並獲得完整的時間片。

相關內容