• 2021-04-14
    记录型信号量s执行wait(s)和signal(s)的过程如下: procedure wait(s:semaphore); begins.value:=s.value-1; {先减1再判断} if ( 1 ) then block(s.L) end; procedure signal(s:semaphore); begins.value : = s.value + 1; if ( 2 ) then wakeup(s.L)end; 问题:wait操作相当于 资源,(1)处应为 ,block(s.L)代表将当前进程插入到信号量s的等待队列中。signal操作相当于 资源,(2)处应为 ,wakeup(s.L)代表唤醒s等待队列的第一个进程。 s<0时,则 表示s等待队列中的进程个数。(使用小写字母输入)