PROGRAM Ej2Pract6_parteA P(id: in Integer){ VAR m:integer; BEGIN send (AUX, id);//solicitud de ingreso a la seccion critica receive(m); //espera permiso SECCION_CRITICA send ( AUX, 0 ) //envia 0 para avisar que salio de la seccion END;} AUX { VAR m: Integer; usando: Boolean; c: cola[Integer]; BEGIN usando:= FALSE; LOOP receive(m); IF m > 0 THEN IF NOT usando THEN send( P(id), NULL );usando=TRUE ELSE c.agregar(m) END; ELSE IF c.is_Empty() THEN usando =FALSE ELSE send(P(c.siguiente()), NULL) END; END; end_loop END; } BEGIN COBEGIN P(1), P(2), . . P(n), AUX COEND; END.