程序間的狀態切換

2021-09-02 01:33:25 字數 733 閱讀 1055

在任意時刻下,通常只有乙個程序可以被載入到計算機的cpu上執行。

任何乙個程序在它的生命週期內都會處於下面三種狀態,使用這三種狀態可以簡單描述執行在計算機上的程序之間的狀態切換,程序的一生都處在這三種狀態間相互轉換。

cpu在排程程序時,只會去作業系統維護的處於就緒態的程序pcb鍊錶中排程,所以三狀態模型之間的切換只有4種切換方式:

;從linux原始碼中可以看出,linux下有7中程序狀態:

建立乙個新程序,作業系統會為該新程序建立乙個空白pcb(task_struct),用來儲存該程序的各項資訊。

程序狀態與各狀態間的切換

程序的狀態簡單分為ready,running,wait。就緒,執行,等待 當程序在cpu上執行時,程序處於執行狀態,程序獲取所有必要資源,只剩下等待cpu去排程時,程序處於就緒狀態,乙個執行中的程序有時會需要等待某個事件,此時會有執行狀態變換成阻塞狀態,例如i o請求。當等待的事件發生後,狀態切換為...

在程序間切換

在前面了解過,執行在作業系統上的多個程序可以併發執行,而程序的併發就需要程序間進行切換。作業系統完成程序的切換,問題來了 當乙個程序正在執行,作業系統怎麼獲得cpu的控制權 通過yield系統呼叫 這個系統呼叫只是將cpu的控制權交給作業系統。或者當程式發生異常時,會陷入作業系統,作業系統再次控制c...

作業系統的多程序組織 程序間切換

使用者使用計算機就是啟動了一堆程序 使用者管理計算機就是管理這一堆程序 即根據pcb 根據狀態形成不同的佇列放在不同的位置。多個程序如何組織呢?用pcb放在不同的佇列中 就緒 阻塞 用狀態轉化來推進多個程序的執行 排程選擇下乙個程序,得到下乙個程序的pcb,把上乙個程序的執行現場儲存起來,把下乙個程...