]> git.llucax.com Git - z.facultad/75.74/practicos.git/blob - practicas/practica2/README
Bugfix para que no utilice como nombre de variable una función ya existente.
[z.facultad/75.74/practicos.git] / practicas / practica2 / README
1 P02e1101
2 ========
3 Ejercicio 1.1, como implementa el mutex con el algoritmo de decker con turnos
4 sólo funciona para 2 procesos y hay que numerarlos a mano. Se corre con:
5 $ ./P02e1101 0 & ./P02e1101 1 &
6 (el primer parametro es el numero de proceso, debe ser 0 o 1, se puede pasar un
7 segundo parametro opcional con la cantidad de iteraciones a realizar)
8
9 Se provee un script lanzador: ./P02e1101.sh
10 (recibe un parámetro opcional con la cantidad de iteraciones)
11
12 P02e1201
13 ========
14 Ejercicio 1.2. Muy similar al anterior pero se puede correr con N procesos. Por
15 ejemplo:
16 $ ./P02e1101 0 & ./P02e1101 1 & ./P02e1101 2 & ./P02e1101 3 & ./P02e1101 4
17 (tambien acepta un parametro extra para la cantidad de iteraciones)
18
19 Se provee un script lanzador: ./P02e1201.sh
20 (recibe un parámetro opcional con la cantidad de iteraciones, este lanzador
21 corre 5 instancias)
22
23 P02e2111
24 ========
25 Ejercicio 2.1.1. Productor-consumidor usando semaforos binarios y shared memory.
26 Debe coincidir la cantidad de cosas a producir y a consumir, y puede haber solo
27 un productor (porque inicializa las estructuras compartidas).
28 Por ejemplo:
29 $ ./P02e2111 0 & ./P02e2111 1 &
30 (tambien acepta un parametro extra para la cantidad de iteraciones, 0 es
31 productor, 1 es consumidor)
32 Otra forma de probar con varios consumidores es:
33 $ ./P02e2111 0 20 & ./P02e2111 1 12 & ./P02e2111 1 8 &
34
35 Se provee un script lanzador: ./P02e1201.sh
36 (recibe un parámetro opcional con la cantidad de iteraciones, este lanzador
37 corre 1 productor y 1 consumidor)
38
39 P02e2121
40 ========
41 Ejercicio 2.1.2. Productor-consumidor usando semaforos binarios y shared memory
42 pero con 3 productores que producen parcialmente y 2 consumidores que consumen
43 todo. Debe correr primero el primer productor porque inicializa las estructuras
44 compartidas.
45 Por ejemplo:
46 $ ./P02e2121 0 & ./P02e2121 1 & ./P02e2121 2 & ./P02e2121 3 & ./P02e2121 4 &
47 (el proceso 0 a 2 son productores, el 3 y 4 consumidores).
48
49 Se provee un script lanzador: ./P02e2121.sh
50 (recibe un parámetro opcional con la cantidad de iteraciones)
51
52 P02e2211
53 ========
54 Ejercicio 2.2.1. Productor-consumidor usando colas de mensajes.
55 Debe coincidir la cantidad de cosas a producir y a consumir, y puede haber solo
56 un productor (que debe correr primero) y un solo consumidor.
57 Por ejemplo:
58 $ ./P02e2211 0 & ./P02e2211 1 &
59 (tambien acepta un parametro extra para la cantidad de iteraciones, 0 es
60 productor, 1 es consumidor)
61
62 Se provee un script lanzador: ./P02e2211.sh
63 (recibe un parámetro opcional con la cantidad de iteraciones)
64
65 P02e2221
66 ========
67 Ejercicio 2.2.2. Productor-consumidor usando colas de mensajes pero con 3
68 productores que producen parcialmente y 2 consumidores que consumen todo.
69 Debe correr primero el primer productor porque inicializa las estructuras
70 compartidas.
71 Por ejemplo:
72 $ ./P02e2221 0 & ./P02e2221 1 & ./P02e2221 2 & ./P02e2221 3 & ./P02e2221 4 &
73 (el proceso 0 a 2 son productores, el 3 y 4 consumidores).
74
75 Se provee un script lanzador: ./P02e2221.sh
76 (recibe un parámetro opcional con la cantidad de iteraciones)
77
78 P02e2311
79 ========
80 Ejercicio 2.3.1. Productor-consumidor usando pipes.
81 Debe coincidir la cantidad de cosas a producir y a consumir, y puede haber solo
82 un productor (que debe correr primero) y un solo consumidor.
83 Por ejemplo:
84 $ ./P02e2311 0 & ./P02e2311 1 &
85 (tambien acepta un parametro extra para la cantidad de iteraciones, 0 es
86 productor, 1 es consumidor)
87
88 Se provee un script lanzador: ./P02e2311.sh
89 (recibe un parámetro opcional con la cantidad de iteraciones)
90