首页 > 试题广场 >

考虑下面关于信号量的定义: void semWait ...

[问答题]
考虑下面关于信号量的定义:
void semWait (s)
{
    if (s.count > 0){
    s.count --;
}
else{
    place this process in s.queue;
    block;
    }
}
void semSignal (s)
{
    if (there is at least one process blocked on semaphore){
    remove a process P from s.queue;
    place process P on ready list;
}
else
    s.count++;
}
将该定义与图 5.3 中的定义进行比较,得出两个定义之间有一个区别:在前面的定义中,信号量永远不会取负值。在程序中分别使用这两种定义时,其效果有何不同?即能否在不改变程序意义的前提下,用一个定义代替另一个?


这道题你会答吗?花几分钟告诉大家答案吧!