我在自旋模型檢查很新,想知道這是什麼錯誤意味着:自旋proctype未得「 - 完 - 」
unreached in proctype P1
ex2.pml:16, state 11, "-end-"
(1 of 11 states)
unreached in proctype P2
ex2.pml:29, state 11, "-end-"
(1 of 11 states)
這裏是我的代碼:
int y1, y2;
byte insideCritical;
active proctype P1(){
do
::true->
y2 = y1 + 1;
(y1 == 0 || y2 < y1);
/* Entering critical section */
insideCritical++;
assert(insideCritical < 2);
insideCritical--;
/* Exiting critical section */
y2 = 0;
od
}
active proctype P2(){
do
::true->
y1 = y2 + 1;
(y2 == 0 || y1 < y2);
/* Entering critical section */
insideCritical++;
assert(insideCritical < 2);
insideCritical--;
/* Exiting critical section */
y1 = 0;
od
}
它實際上不必結束,它是一個互斥程序,用於檢查兩個進程是否不在關鍵部分。 錯誤是否意味着程序沒有結束? 謝謝!
太好了!就像我想的那樣..謝謝! – Javi