程序的操作有哪些?
程序是正在執行的程式,它不僅僅是程式程式碼(稱為文字段),這個概念在所有作業系統下都適用,因為作業系統執行的所有任務都需要一個程序來執行。
程序在改變狀態時執行。程序的狀態由程序的當前活動定義。
每個程序可能處於以下任何一種狀態:
新建 - 程序正在建立。
執行 - 在這個狀態下,指令正在執行。
等待 - 程序處於等待狀態,直到發生某個事件,例如I/O操作完成或接收訊號。
就緒 - 程序正在等待分配給處理器。
終止 - 程序已完成執行。
重要的是要知道,在任何時刻,只有一個程序可以在任何處理器上執行。許多程序可能處於就緒和等待狀態。
程序操作
對程序執行的兩個主要操作如下:
程序建立
應該有四個主要事件導致程序建立。
系統初始化
啟動作業系統時會建立許多程序。其中一些是:
前臺程序 - 與使用者互動併為使用者執行工作的程序。
後臺程序 - 也稱為守護程序,與特定使用者無關,而是具有某種特定功能。
執行程序執行程序建立系統呼叫
執行程序將發出系統呼叫以建立一個或多個新程序來幫助它完成其工作。
使用者請求建立新程序
藉助執行程序建立系統呼叫的現有程序建立新程序。
在UNIX中,用於建立新程序的系統呼叫是fork()。
在Windows中,CreateProcess(),它有10個引數來處理程序建立和將正確的程式載入到新程序中。
批處理作業的啟動
使用者將批處理作業提交給系統。
作業系統建立一個新程序並在其中執行輸入佇列中的下一個作業。
程序終止
程序將透過在UNIX中呼叫kill或在Windows中呼叫Terminate Process來終止。
程序終止的原因如下:
正常退出 - 大多數程序在完成工作後終止並執行系統呼叫以退出。
錯誤退出 - 第三類錯誤是由於程式錯誤造成的,例如執行非法指令、引用或除以零。
致命退出 - 當程序發現致命錯誤時,會發生程序終止。
被另一個程序殺死 - 一個程序執行系統呼叫來殺死另一個程序。
廣告