程序的控制與狀態細化

2022-06-23 13:09:11 字數 1735 閱讀 5218

···程序控制

程序控制的主要任務是:建立和撤銷程序以及進行程序間的狀態轉換。這包括:

*建立乙個程序

*撤銷乙個程序

*改變程序狀態

*實現程序間的通訊

這些由作業系統核心通過執行各種原語完成

···原語

含義:由若干條機器指令構成的可完成特定功能的程式段,它是乙個原子操作過程,作為乙個整體而不可分割---要麼全都完成,要麼全都不做。原語主要是通過遮蔽各種中斷和固化技術保證其原子性的

分類:*程序控制原語

*程序通訊原語

*程序管理原語

*其他方面的原語

其中,程序控制原語包括:

1.程序建立原語

2.程序撤銷原語

3.程序阻塞原語

4.程序喚醒原語

5.程序掛起原語

6.程序啟用原語

···程序狀態的細化

「掛起」、「啟用」  操作的引入

系統管理員:暫停某個程序,排除系統故障或暫時減輕系統負荷。

使用者:暫停自己的程序以便檢查自己作業的中間結果

由於被掛起前程序的狀態有三種,掛起後的程序就分為兩種狀態:靜止就緒態和靜止阻塞態(有的稱掛起就緒態和掛起阻塞態)。掛起前的程序就緒態和阻塞態也改為活動就緒態和活動阻塞態。

···建立原語

建立乙個程序主要是為新程序建立乙個pcb。建立原語首先從系統的pcb表中索取乙個空白的pcb表目,並獲得其內部標識,然後將呼叫程序提供的引數:如外部名、正文段、資料段的首址、大小、所需資源、優先順序等填入這張空白pcb表目中。並設定新程序狀態為   活動/靜止  就緒態,並把該pcb插入到就緒佇列中,就可進入系統併發執行。

···撤銷原語/終止

由父程序發出,撤銷它的乙個子程序及該子程序所有的子孫程序,被撤銷程序的所有資源(主存、i/o資源、pcb表目)全部釋放出來歸還系統,並將他們從所有的佇列中移去。如撤銷的程序正在進行,則呼叫程序排程程式將處理器分給其他程序。

···阻塞原語

當前事件因請求某事件而不能執行時(例如請求i/o而等待i/o完成時),該程序將呼叫阻塞原語阻塞自己,暫時放棄處理機。程序阻塞是程序自身的主動行為。阻塞過程首先立即停止原來程式的執行,把pcb中的現行狀態由執行態改為活動阻塞態,並將pcb插入到等待某事件的阻塞佇列中,最後呼叫程序排程程式進行處理機的重新分配。

···喚醒原語

當被阻塞的事情所期待的事情發生時,則有關程序和過程呼叫wakeup原語,將阻塞的程序喚醒,將等待該事件的程序從阻塞佇列移出,插入到就緒佇列中,將該程序的pcb中的現行狀態,如是活動阻塞態則改為活動就緒態,如是靜止阻塞態則改為靜止就緒態。

···掛起原語

呼叫掛起原語的程序只能掛起它自己或它的子孫,而不能掛起別的族系的程序。掛起原語的執行過程是:檢查要掛起程序pcb的現行狀態,若正處於活動就緒態,便將它改為靜止就緒態;如是活動阻塞態則改為靜止阻塞態。如是執行態,則將它改為靜止就緒態,並呼叫程序排程程式重新分配處理機。為了方便使用者或父程序考察該程序的執行狀況,需把該程序的pcb複製到記憶體指定區域。

···啟用原語

使用者程序或父程序通過呼叫啟用原語將被掛起的程序啟用。啟用原語執行過程是:檢查被掛起程序pcb中的現行狀態,若處於靜止就緒態,則將它改為活動就緒態,若處於靜止阻塞態,則將它改為活動阻塞態。

程序的狀態與轉換

程序在其生命週期內,由於系統中各程序之間的相互制約關係及系統的執行環境的變化,使得程序的狀態 也在不斷的發生變化,即乙個程序會經歷若干種不同的狀態。通常程序有以下五種狀態,前三種是程序的基本狀態。1 執行狀態 程序正在處理機上執行。在單處理機環境下,每一時刻最多只有乙個程序處於執行狀態。2 就緒狀態...

程序的狀態與種類

執行 正占用處理器 就緒 只要獲得處理器即可執行。阻塞 正等待某個事件 如i o完成 的發生。在不少系統中,還增加了兩種基本狀態 新狀態 乙個程序剛剛建立,但還未將它送入就緒佇列時的狀態。終止狀態 當乙個程序已經正常結束或異常結束,系統已將它從就緒佇列中移出,但尚未將它撤消時的狀態。狀態英文全稱注釋...

程序的狀態與轉換

程序在其生命週期內通常程序有以下三種狀態 1 執行狀態 程序正在處理機上執行。在單處理機環境下,每一時刻最多只有乙個程序處於執行狀態。2 就緒狀態 程序已處於準備執行的狀態,即程序獲得了除處理機之外的一切所需資源,一旦得到處理機即可執行。3 阻塞狀態,又稱等待狀態 程序正在等待某一事件而暫停執行,如...