什麼是程序終止?
程序是正在執行的程式,它不僅僅是稱為文字段的程式程式碼,這個概念在所有作業系統下都適用,因為作業系統執行的所有任務都需要一個程序來執行。
程序在改變狀態時執行。程序的狀態由程序的當前活動定義。
每個程序可能處於以下任何一種狀態:
新建 - 程序正在建立。
執行 - 在此狀態下,指令正在執行。
等待 - 程序處於等待狀態,直到發生某個事件,例如 I/O 操作完成或收到訊號。
就緒 - 程序正在等待分配到處理器。
終止 - 程序已完成執行。
重要的是要知道,在任何時刻,只有一個程序可以在任何處理器上執行。許多程序可能處於就緒和等待狀態。
程序操作
在程序上執行的兩個主要操作如下:
程序建立
程序終止
現在讓我們看看程序終止。
程序終止
當程序完成其最終語句的執行並使用 exit() 系統呼叫請求作業系統刪除它時。
此時,程序可以使用 wait() 系統呼叫將其狀態值返回給其父程序。
作業系統將釋放程序的所有資源,包括物理和虛擬記憶體、開啟的檔案和 I/O 緩衝區。
程序終止的原因
程序可能終止其一個子程序執行的原因如下:
子程序超過其已分配的資源使用量。
分配給子程序的任務不再需要。
父程序正在退出,並且作業系統不允許子程序在其父程序終止後繼續。
一些系統(包括 VMS)不允許子程序在其父程序終止後繼續存在。在這些系統中,如果程序正常或異常終止,則其所有子程序都必須終止。這個概念被稱為級聯終止。
終止的原因
其他終止原因如下:
時間片到期 - 當程序執行未在時間量子內完成時,程序將從執行狀態終止。CPU 選擇就緒佇列中的下一個作業來執行。
記憶體邊界違規 - 如果程序需要的記憶體超過可用記憶體。
I/O 失敗 - 當作業系統不提供 I/O 裝置時,程序進入等待狀態。
程序請求 - 如果父程序請求子程序終止。
無效指令
廣告