Семафоры в операционной системе - PullRequest
1 голос
/ 27 сентября 2011

Ну, что именно меняет контекст процессов. Скажем, у меня есть алгоритм, в котором говорят

S=0;
begin
signal(S);
<critical>
wait(S);
end

Теперь, когда мой сигнал будет выполнен, процесс будет прерван, и процесс из очереди будет выполнен?

1 Ответ

0 голосов
/ 28 сентября 2011

Я думаю, что вы хотите сделать это

S=0;
begin
wait(S);    
<critical>
signal(S);
end

Сначала подождите некоторый сигнал (блокировка или сигнал от другого процесса), а затем войдите в критическую секцию. И, выйдя из критической секции, подайте сигнал остальным процессам ожидания на пробуждение.

...