【发布时间】:2014-05-10 15:38:58
【问题描述】:
我是自旋模型检查的新手,想知道这个错误是什么意思:
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
}
它实际上不必结束,它是一个互斥程序,用于检查两个进程是否一起不在临界区。 错误是否意味着程序没有结束? 谢谢!
【问题讨论】:
标签: process mutual-exclusion spin promela