三 程序控制

2021-10-18 22:56:29 字數 871 閱讀 5946

程序控制的主要功能是對系統中的所有程序實施有效的管理,它具有建立新程序、撤銷已有程序、實現程序狀態之間的轉換等功能。

簡而言之就是:程序控制就是實現程序狀態的轉換。

使用原語實現,原語的執行具有原子性,會一氣呵成。

思考:那麼為何程序控制(狀態轉換)過程要一氣呵成呢?

如果不能一氣呵成,就有可能導致作業系統中某些關鍵的資料結構資訊不統一的情況,這些影響作業系統進行別的管理工作。

1.原語的執行具有原子性,即執行過程只能一氣呵成,期間不予許被中斷。可以用「關中斷指令」和「開中斷指令」這兩個特權執行實現原子性。

2.cpu執行了關中斷指令後,就不再例行的檢查中斷訊號,直到執行開中斷指令之後才會恢復檢查,這樣關中斷、開中斷之間的這些指令序列是不可被中斷的,這就實現了「原子性」。

**注意:**其實不論是哪個程序的控制原語,要做的無非是三類事情:

1)更新pcb中的資訊(修改程序的狀態state,儲存/恢復執行環境)

2)將pcb插入合適的佇列

3)分配/**資源

Linux程序控制(三)wait

5.wait系列函式 include pid t wait int statloc pid t waitpid pid t pid,int statloc,int options 若成功,返回程序id 若出錯,返回0或 1 程序呼叫wait waitpid 若所有子程序還在執行,wait waitp...

程序及程序控制

學習程序之前,先了解一下程式 所謂程式就是指編譯好的二進位制檔案,在磁碟上,不占用系統資源 cpu 記憶體.而程序是與作業系統相關,是指在記憶體中執行起來的程式,占用一些系統資源,每當乙個程式執行,就相應產生乙個程序。程序的一些相關資訊被放在乙個叫程序控制塊的資料結構中,稱之為pcb。linux下的...

Unix 程序控制

一 程序 程序id為1是init程序,在自舉過程結束時由核心呼叫。程序id為2是頁精靈程序,此程序負責支援虛存系統的請頁操作。也是核心程序。二 fork 對於父程序已經終止的所有程序,它們的父程序都改變為init程序,我們稱這些程序由init程序領養。此保證了每個程序有乙個父程序。init被編寫成只...