Petri網是一種能夠用網狀圖形表示的系統模型。併發系統中遇到的一個主要問題是定時問題。這個問題能夠表現爲多種形式,如同步問題、競爭條件以及死鎖問題。定時問題一般是由很差的設計或有錯誤的實現引發的,而這樣的設計或實現一般又是由很差的規格說明形成的。若是規格說明不恰當,則有致使不完善的設計或實現的危險。用於肯定系統中隱含的定時問題的一種有效技術 是 Petri 網,這種技術的一個很大的優勢是它也能夠用於設計中.併發
Petri 網是由 Carl Adam Petri 發明的。最初只有自動化專家對 Petri 網感興趣,後來 Petri 網在計算機科學中也得 到普遍的應用,例如,在性能評價、操做系統和軟件 工程等領域, Petri 網應用得都比較普遍。特別是已經證實,用 Petri 網能夠有效地描述併發活動。
函數
Petri 網包含 4 種元素:一組位置 P 、一組轉換 T 、輸入函數 I 以及輸出函數 O 。上圖舉例說明了 Petri 網的組成。其中:性能
一組位置 P 爲{ P1,P2,P3,P4},在圖中用圓圈表明。在P中還能夠駐留標記,說明Petri網轉移的運行條件,用一個黑色小圓點表示。spa
一組轉換 T 爲{ t1,t2 },在圖中用短直線表示轉換。操作系統
兩個用於轉換的輸入函數,用由位置指向轉換的箭頭表示,它們是:設計
$ I(t1)= {P2,P4}$
$ I(t2)= {P2}$htm
兩個用於轉換的輸出函數,用由轉換指向位置的箭頭表示,它們是:教程
$O(t1)= {P1}$
$O(t2)= {P3,P3}$rem
注意. 輸出函數 O(t2) 中有兩個 P3 ,是由於有兩個箭頭由 t2 指向 P3 。get
更形式化的 Petri 網結構,是一個四元組 C=(P,T,I,O) 。
其中:
$P = {P1, … ,Pn}$是一個有窮位置集,$n ≥ 0$ 。
$T = {t1, … ,tm}$是一個有窮轉換集,$m ≥ 0$ ,且 T 和 P 不相交,
$$P \land T = \emptyset$$
$I:T → P$ 爲輸入函數,是由轉換到位置無序單位組(bags) 的映射。
$O:T → P$ 爲輸出函數,是由轉換到位置無序單位組的映射。
在用Petri網進行系統建模時,常用P來表示系統的狀態,用T來模擬系統的行爲,T 的輸入P所用來表示變遷啓動的條件,變遷的輸出P所表示變遷啓動的結果,各個P所表明的系統狀態用Token來表示。若變遷的全部輸入P都駐留一個Token,則該變遷就能夠啓動;啓動後, 變遷的全部輸入P置空,而全部輸出P放入Token。