作業系統之程序的各種狀態
程序的狀態:
就緒狀態:當程序獲得除cpu
外的所有資源的時候,只要在獲得
cpu就可以執行(萬事俱備只欠
cpu)在乙個系統中處於就緒狀態的程序可能有多個,通常將它們排成乙個佇列,稱之為就緒佇列。
執行狀態:
程序獲得cpu
,其程式正在執行,在單處理機系統中只有乙個程序處於執行狀態, 在多處理機系統中則有多個程序處於執行狀態
阻塞狀態:
正在執行的程序由於某事件而暫停無法繼續執行,便放棄cpu
而處於暫停狀態,(程序的執行受到阻塞)把這種暫停狀態稱為阻塞狀態,也稱為等待或封鎖狀態,導致執行緒執行緒阻塞的典型事件請求
i\o操作,申請空間,通常這種阻塞狀態的程序也會組成乙個佇列,有的則是根據阻塞原因的不同,把處於阻塞狀態的程序排成多個佇列。
三者的轉化關係:
執行-----
阻塞:當前正在執行的程序由於發生某些事件程序訪問臨界資源(各程序共享的資源但是一次只需乙個程序使用的資源如印表機,磁帶機)而該資源正被其它程序訪問的時候,使之無法進行則該程序狀態由執行轉變為阻塞。
建立狀態和終止狀態
為了滿足程序控制塊對資料及操作的完整性要求以及增強管理的靈活性,又引入了兩種常見的狀態 建立狀態和終止狀態
建立狀態:
建立過程很複雜,需要多個步驟如:身前乙個空白pcb
,並向pcb
中填寫控制和管理程序的資訊,然後為該程序分配執行時所需的資源,最後將該程序轉入就緒狀態,然後插入就緒佇列中,但是如果程序所需的資源不能得到滿足,此時建立工作尚未完成,程序不能排程執行,此時的狀態就為建立狀態。
引入建立狀態,保證程序的排程,必須在程序建立完成之後,從而保證對程序控制塊操作的完整性。
終止狀態:
當乙個程序到達了自然結束或是出現了無法克服的錯誤,或是被os
所終結,或是被其他有終止權的程序所終止時,將進入終止狀態。進入終止狀態的程序以後不能在執行,但
os中熱然保留乙個記錄供其他程序收集,一旦其他程序完成收集
os將刪除該程序,將其
pcb清零,並將空白
pcb返還系統。
程序的掛起:
為了使用者的觀察和分析程序的需要引入乙個操作---
程序的掛起
當該操作作用於某個程序時該程序將被掛起,此時該程序處於靜止狀態,如果程式正在執行,將暫停執行,若處於就緒狀態,則該程序暫不接受排程,與掛起對應的時啟用狀態。
引入掛起原語(有若干條指令組成的由於完成某一操作的乙個過程)操作後三個程序狀態的轉換
活動就緒---
靜止就緒:活動就緒的程序可以被排程,當使用掛起原語將該程序掛起後則變為靜止就緒狀態。則不可被排程。
活動阻塞---
靜止阻塞:處於未被掛起的阻塞稱為活動阻塞,當使用掛起原語掛起後處於靜止阻塞,處於該狀態的程序在其所期待的事件出現後,將從靜止阻塞變為靜止就緒。
靜止就緒----
活動就緒:處於靜止就緒的程序若用啟用原語啟用後就變為活動就緒。
靜止阻塞----
活動阻塞::處於靜止阻塞的程序若用啟用原語啟用後就變為活動阻塞。
作業系統之程序的狀態
當程序已分配到除cpu以外的所有必要資源後,只要再獲得cpu,便可立即執行,程序這時的狀態稱為就緒狀態。在乙個系統中處於就緒狀態的程序可能有多個,通常將它們排成乙個佇列,稱為就緒佇列。程序已獲得cpu,其程式正在執行。在單處理機系統中,只有乙個程序處於執行狀態 在多處理機系統中,則有多個程序處於執行...
作業系統 程序狀態
程序從建立到執行,再到執行完畢銷毀的過程中,經歷了不同的程序狀態,程序狀態部分取決於程序當前的活動,可以將程序狀態分為 1 三狀態模型 2 五狀態模型 3 七狀態模型。包含程序三個最基本的狀態 就緒態 程序具備執行條件,等待分配處理器 執行態 程序占有處理器,正在執行 等待態 程序等待發生某個事件。...
作業系統 程序的狀態
程序的狀態 程序的生命週期管理 程序的狀態變化模型 程序掛起模型 程序的生命期管理 程序的建立 程序執行 程序等待 程序喚醒 程序結束 程序建立 引起程序建立的三個主要事件 程序初始化時 mit程序 使用者請求建立新的程序 正在執行的程序執行了建立程序的系統呼叫 建立了程序控制塊 程序執行 核心選擇...