1. 程式人生 > >學習筆記--程序的三種基本狀態及其轉換

學習筆記--程序的三種基本狀態及其轉換

(1)一個執行中的程序不斷改變其狀態,通常程序必須具備以下三個基本狀態:

   ①就緒狀態:

   當程序已分配到除CPU以外的所有必要資源後,只要在獲得CPU,便可立即執行,程序這時的狀態就稱為就緒狀態。在一個系統中處於就緒狀態的程序可能有多個,通常將他們排成一個佇列,稱為就緒佇列。

   ②執行狀態:

   程序已獲得CPU,其程式正在執行。在單處理機系統中,只有一個程序處於執行狀態;再多處理機系統中,則有多個程序處於執行狀態。

   ③阻塞狀態:

   正在執行的程序由於發生某事件而暫時無法繼續執行時,便放棄處理機而處於暫停狀態,亦即程式的執行受到阻塞,把這種暫停狀態稱為阻塞狀態,有時也稱為等待狀態或封鎖狀態。

(2)程序的三種狀態之間的轉換:


   ①就緒→執行

   處於就緒狀態的程序,當程序排程程式為之分配了處理機後,該程序便由就緒狀態轉變成執行狀態。

   ②執行→就緒

   處於執行狀態的程序在其執行過程中,因分配給它的一個時間片已用完而不得不讓出處理機,於是程序從執行狀態轉變成就緒狀態。

   ③執行→阻塞

   正在執行的程序因等待某種事件發生而無法繼續執行時,便從執行狀態變成阻塞狀態。

   ④阻塞→就緒

   處於阻塞狀態的程序,若其等待的事件已經發生,於是程序由阻塞狀態轉變為就緒狀態。