Programación Concurrente Prácticas 1, 2 y 3 - Profe Saul
Programación Concurrente Prácticas 1, 2 y 3 - Profe Saul
Programación Concurrente Prácticas 1, 2 y 3 - Profe Saul
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Curso 2006/2007 — Convocatoria de Febrero 3<br />
2. Diseño<br />
Tras el análisis del problema, se incluye un diseño propuesto: grafo de recursos y procesos,<br />
código de los procesos y especificación del recurso. Asumimos que el recurso está contenido en<br />
una variable Cont_Caja accesible por los procesos cuyo tipo es Control_Caja<br />
Tomar_Pasta<br />
(E,P)<br />
Reponer_Caja<br />
Caja<br />
Empaquetadores<br />
(E)<br />
Comunicar_Peso<br />
(Caja, P)<br />
Incrementar_Peso<br />
(Caja, P)<br />
Notificar_Reposicion<br />
Brazo<br />
Notificar_Pasta_En_Caja<br />
(Caja)<br />
Preparar_Reposicion<br />
Soltar_Pasta<br />
(E)<br />
Retirar_Caja<br />
Declaración de recurso:<br />
Cont_Caja : Control_Caja;<br />
Controlador de empaquetador:<br />
loop<br />
Tomar_Pasta (E, Peso_Pasta);<br />
Put_Line ("Emp." & Id_Empaquetador’Image (E) &<br />
" tomó pasta " & Tipo_Peso’Image (Peso_Pasta));<br />
Comunicar_Peso (Cont_Caja, Peso_Pasta);<br />
Incrementar_Peso (Cont_Caja, Peso_Pasta);<br />
Soltar_Pasta (E);<br />
Put_Line ("Emp." & Id_Empaquetador’Image (E) &<br />
" soltó pasta " & Tipo_Peso’Image (Peso_Pasta));<br />
Notificar_Pasta_En_Caja (Cont_Caja);<br />
end loop;<br />
Controlador de reponedor:<br />
loop<br />
Preparar_Reposicion (Cont_Caja);<br />
Put_Line ("+++ Retiramos caja");<br />
Retirar_Caja;<br />
Put_Line ("+++ Reponemos caja");<br />
Reponer_Caja;<br />
Notificar_Reposicion (Cont_Caja);<br />
end loop;<br />
Especificación del recurso:<br />
C-TADSOL Control Caja<br />
OPERACIONES<br />
ACCIÓN Preparar Reposicion: Control Caja[io]<br />
ACCIÓN Notificar Reposicion: Control Caja[io]<br />
ACCIÓN Comunicar Peso: Control Caja[io] × Peso[i]<br />
ACCIÓN Incrementar Peso: Control Caja[io] × Peso[i]<br />
ACCIÓN Notificar Pasta En Caja: Control Caja[io]<br />
SEMÁNTICA<br />
DOMINIO: