Операционные системы. Процессы и потоки. Илюшкин Б.И. - 55 стр.

UptoLike

Составители: 

требуется войти в критический участок, он периодически проверяет
состояние флага другого процесса до тех пор, пока тот не примет
значение false, указывающее, что другой процесс покинул критиче-
ский участок. Процесс немедленно устанавливает значение своего
собственного флага равным true и входит в критический участок. По
выходе из критического участка процесс сбрасывает свой флаг, при-
сваивая ему значение false. Ниже приводится пример алгоритма Пе-
терсона для двух процессов [3].
boolean flag[2] ;
int turn ;
void P0()
{
while(true)
{
flag[0] = true ;
turn = 1 ;
while (flag[1] && turn = = 1)
/* блокировка входа в критическую секцию для P0 */ ;
flag[0] = false ;
/* остальной код */ ;
}
}
void P1()
{
while(true)
{
flag[1] = true ;
turn = 0 ;
while (flag[0] && turn = = 0)
/* блокировка входа в критическую секцию для P1 */ ;
flag[1] = false ;
/* остальной код */ ;
}
}
void main ()
{
flag[0] = false ;
55