EjerciciosResueltos Semaforos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Escuela Tcnica Superior de Ingeniera Informtica Departamento de Ciencias de la Computacin

Ejercicios resueltos de programacin concurrente con semforos

1. Resolver mediante un programa en pseudo-Pascal que utilice un semforo binario el problema del productor-consumidor en una cola.

program Ejercicio1; procedure Productor(var c:cola); var x: integer; begin repeat (*... producir el dato x ... *) wait(s); Meter(c,x); (* seccin crtica *) signal(s); until false; end; procedure Consumidor(var c:cola); var y: integer; begin repeat wait(s); Sacar(c,y); (* seccin crtica *) signal(s); (*... consumir el dato y ... *) until false; end; begin (* Programa principal *) Inicializar(c); init(s,1); cobegin Productor(c); Consumidor(c); coend; end.

Salvador Snchez - Problemas de Programacin avanzada

Pgina 1 de 4

Escuela Tcnica Superior de Ingeniera Informtica Departamento de Ciencias de la Computacin

2. Implementar el siguiente diagrama de precedencia mediante un programa en pseudo-Pascal que utilice semforos:

program Ejercicio2; var s: semaphore; procedure p1; begin c; wait(s); f; end; procedure p2; begin b; d; signal(s); e; end; begin (* Programa principal *) init (s,0); a; cobegin p1; p2; coend; g; h; end.

Salvador Snchez - Problemas de Programacin avanzada

Pgina 2 de 4

Escuela Tcnica Superior de Ingeniera Informtica Departamento de Ciencias de la Computacin

3. Implementar el siguiente diagrama de precedencia mediante un programa en pseudo-Pascal que utilice semforos:

program Ejercicio3; var s1,s2: semaphore; procedure p1; begin e; signal(s1); f; end; procedure p2; begin c; signal(s2); wait(s1); d; end; procedure p3; begin h; wait(s2); i; end; begin (* Programa principal *) init (s1,0); init (s2,0); a; cobegin p1; p2; p3; coend; g; end.

Salvador Snchez - Problemas de Programacin avanzada

Pgina 3 de 4

Escuela Tcnica Superior de Ingeniera Informtica Departamento de Ciencias de la Computacin

4. Implementar mediante un programa en pseudo-Pascal que utilice semforos el diagrama siguiente:

Solucin propuesta:
program Ejercicio4; var s: semaphore; procedure p1; begin cobegin p11; p12; coend; g; end; procedure p2; begin wait(s); f; end; procedure p11; begin d; signal(s); e; end; procedure p12; begin b; c; end; begin (* Programa principal *) init (s,0); a; cobegin p1; p2; coend; h; i; end.

Salvador Snchez - Problemas de Programacin avanzada

Pgina 4 de 4

This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.

También podría gustarte