Sincronizacion de procesos
SINCRONIZACIÓN CONDICIONAL
OBJETIVO:
Implementación de programas de sincronización condicional con espera activa.
ACTIVIDAD A REALIZAR:Implementar un programa concurrente en PascalFC que tenga los siguientes requisitos:
El programa consta de 3 procesos.
Cada proceso escribe por pantalla varias letras y termina. El proceso 1 debeescribir la letra ‘A’ y la letra ‘B’. El proceso 2 debe escribir la letra ‘C’, la letra ‘D’ y la letra ‘E’. El proceso 3 debe escribir la letra ‘F’ y la letra ‘G’.
Los procesos deben sincronizarsepara que se cumplan las siguientes relaciones de precedencia:
La sincronización condicional se deberá implementar con espera activa.
PROCEDIMIENTO:
Implementar el código:
RecomendacionesDefinir una estructura para manejar los estados de los procesos
type tSinc = record
ca: boolean;
fd: boolean;
ge: boolean;
be: boolean;
end;
El proceso1 quedaria como sigue a continuación:process type tP1(var s:tSinc);
begin
while not s.ca do;
write('A');
write('B');
s.be := true;
end;
El programa quedaría como sigue a continuación:
var
sinc:tSinc;
p1:tP1;
p2:tP2;p3:tP3;
begin
sinc.ca := false;
sinc.fd := false;
sinc.ge := false;
sinc.be := false;
cobegin
p1(sinc);
p2(sinc);
p3(sinc);
coend
end.
ACTIVIDAD
Determinar las posiblessalidas de este programa:
Nº intentos
Salidas
1
CABFGDE
2
CAFBGDE
3
CFABDGE
4
CFABGDE
5
CFDGABE
6
CFGABDE
7
CFGADBE
8
CFGDABE
9
FCABGDE
10
FCDGABE
11
FCGDABE
12
FGCABDE
13FGCADBE
14
FGCDABE
15
FGCDEAB
Colocar al costado cuál de las siguientes salidas son inválidas:
Nº
Salidas
Validas o inválidas
1
ACFDBGE
Inválido
2
CFADBGE
Valido
3
CFDABGE
Valido
4CDFABGE
Inválido
5
CFDAGBE
Valido
6
FCDAGBE
Valido
Algoritmo de sincronización condicional
program sincronizacion;
type tSinc = record;
ca: boolean;
fd: boolean;
ge:...
Regístrate para leer el documento completo.