私はスピンモデルのチェックにかなり慣れていないので、このエラーの意味を知りたいと思っていました:
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
}
実際に終了する必要はありません。これは、2 つのプロセスが一緒にクリティカル セクションにないかどうかをチェックする相互排除プログラムです。エラーはプログラムが終了しないことを意味しますか? ありがとう!