程式就是一個程式在一個資料集上的一次動態執行過程。
進程一般由程式、資料集、進程控制塊三部分組成。(推薦學習:PHP程式設計從入門到精通)
我們寫的程式用來描述行程要完成哪些功能以及如何完成;資料集則是程式在執行過程中所需要使用的資源;進程控制塊用來記錄進程的外部特徵,描述進程的執行變化過程,系統可以利用它來控制和管理進程,它是系統感知進程存在的唯一標誌。
我們也可以理解進程是具有一定獨立功能的程式在關於某個資料集合上的一次運行活動, 進程是系統進行資源分配和調度的一個獨立單位。
也可以把行程當成由一組元素組成的實體,行程的兩個基本的元素是程式碼(可能被執行相同程式的其他行程共用)和程式碼相關聯的資料集。假設處理器開始執行這個程式碼,而我們把這個執行實體叫做叫做行程。
在進程執行時,任意給定一個時間,進程都可以唯一的被表徵為下列元素。
1.标识符:跟这个进程相关的唯一标识符,用来区别其他进程。 2、状态:如果进程正在执行,那么进程处于运行态。 3、优先级:相对于其他进程的优先级 4、内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享内存块的指针。 5、上下文数据:进程执行时处理器的寄存器中的数据。 6、I/O 状态信息:包括显示的I/O操作。分配给进程的I/O设备(例如磁带驱动器)和被进程使用的文件列表等。 7、记账信息:可能包括处理器时间综合、使用的是时钟数总和、时间限制、记账号等。
為什麼設計了流程?
設計出一個能夠協調各種不同活動的系統軟體是非常困難的。在任何時刻都有許多作業在運行中,每個作業都包括要求按照順序執行的很多步驟,因此分析時間的序列組合是不可的。
由於缺乏能夠在所有活動中進行協調和合作的系統級的方法,程式設計師只能基於他們對作業系統所控制的環境的理解,採用自己的特殊方法。然而這種方法是很脆弱的,尤其對於一些程式設計中的小錯誤,因為這些錯誤只有在很少見的時間序列發生時才會出現。
由於需要從應用程式軟體錯誤和硬體錯誤中區分出這些錯誤,因此診斷工作是很困難的。及時檢測出錯誤,也很難確定原因,因為很難在線上錯誤產生的精確場景。
一般而言,產生這類錯誤的4個主要原因如下:
#1.不正確同步
2.失敗互斥。
3.不確定的程式操作
4.死鎖
解決這些問題需要一個系統層級的方法監控處理器中不同程式的執行。進程的概念為此提供了基礎。
因此流程可以看做是由三個部分組成的:
一段可以執行的程式
#程式所需的相關資料
程式的執行上下文
以上是PHP中的進程是什麼概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!