X-Git-Url: https://git.llucax.com/z.facultad/75.74/practicos.git/blobdiff_plain/eed78fbb7c396cd3be666be8f2517bb828ae1353..HEAD:/practicas/practica2/README?ds=sidebyside diff --git a/practicas/practica2/README b/practicas/practica2/README index 8f44af6..303a18d 100644 --- a/practicas/practica2/README +++ b/practicas/practica2/README @@ -1,18 +1,25 @@ P02e1101 ======== -Ejercicio 1.1, como implementa el mutex con el algoritmo de decker con turnos +Ejercicio 1.1, como implementa el mutex con el algoritmo de Dekker con turnos sólo funciona para 2 procesos y hay que numerarlos a mano. Se corre con: $ ./P02e1101 0 & ./P02e1101 1 & (el primer parametro es el numero de proceso, debe ser 0 o 1, se puede pasar un segundo parametro opcional con la cantidad de iteraciones a realizar) +Se provee un script lanzador: ./P02e1101.sh +(recibe un parámetro opcional con la cantidad de iteraciones) + P02e1201 ======== Ejercicio 1.2. Muy similar al anterior pero se puede correr con N procesos. Por ejemplo: -$ ./P02e1101 0 & ./P02e1101 1 & ./P02e1101 2 & ./P02e1101 3 & ./P02e1101 4 +$ ./P02e1201 0 & ./P02e1201 1 & ./P02e1201 2 & ./P02e1201 3 & ./P02e1201 4 (tambien acepta un parametro extra para la cantidad de iteraciones) +Se provee un script lanzador: ./P02e1201.sh +(recibe un parámetro opcional con la cantidad de iteraciones, este lanzador +corre 5 instancias) + P02e2111 ======== Ejercicio 2.1.1. Productor-consumidor usando semaforos binarios y shared memory. @@ -25,4 +32,71 @@ productor, 1 es consumidor) Otra forma de probar con varios consumidores es: $ ./P02e2111 0 20 & ./P02e2111 1 12 & ./P02e2111 1 8 & +Se provee un script lanzador: ./P02e1201.sh +(recibe un parámetro opcional con la cantidad de iteraciones, este lanzador +corre 1 productor y 1 consumidor) + +P02e2121 +======== +Ejercicio 2.1.2. Productor-consumidor usando semaforos binarios y shared memory +pero con 3 productores que producen parcialmente y 2 consumidores que consumen +todo. Debe correr primero el primer productor porque inicializa las estructuras +compartidas. +Por ejemplo: +$ ./P02e2121 0 & ./P02e2121 1 & ./P02e2121 2 & ./P02e2121 3 & ./P02e2121 4 & +(el proceso 0 a 2 son productores, el 3 y 4 consumidores). + +Se provee un script lanzador: ./P02e2121.sh +(recibe un parámetro opcional con la cantidad de iteraciones) + +P02e2211 +======== +Ejercicio 2.2.1. Productor-consumidor usando colas de mensajes. +Debe coincidir la cantidad de cosas a producir y a consumir, y puede haber solo +un productor (que debe correr primero) y un solo consumidor. +Por ejemplo: +$ ./P02e2211 0 & ./P02e2211 1 & +(tambien acepta un parametro extra para la cantidad de iteraciones, 0 es +productor, 1 es consumidor) + +Se provee un script lanzador: ./P02e2211.sh +(recibe un parámetro opcional con la cantidad de iteraciones) + +P02e2221 +======== +Ejercicio 2.2.2. Productor-consumidor usando colas de mensajes pero con 3 +productores que producen parcialmente y 2 consumidores que consumen todo. +Debe correr primero el primer productor porque inicializa las estructuras +compartidas. +Por ejemplo: +$ ./P02e2221 0 & ./P02e2221 1 & ./P02e2221 2 & ./P02e2221 3 & ./P02e2221 4 & +(el proceso 0 a 2 son productores, el 3 y 4 consumidores). + +Se provee un script lanzador: ./P02e2221.sh +(recibe un parámetro opcional con la cantidad de iteraciones) + +P02e2311 +======== +Ejercicio 2.3.1. Productor-consumidor usando pipes. +Debe coincidir la cantidad de cosas a producir y a consumir, y puede haber solo +un productor (que debe correr primero) y un solo consumidor. +Por ejemplo: +$ ./P02e2311 0 & ./P02e2311 1 & +(tambien acepta un parametro extra para la cantidad de iteraciones, 0 es +productor, 1 es consumidor) + +Se provee un script lanzador: ./P02e2311.sh +(recibe un parámetro opcional con la cantidad de iteraciones) + +P02e2321 +======== +Ejercicio 2.3.2. Productor-consumidor usando pipes pero con 3 productores +que producen parcialmente y 2 consumidores que consumen todo. Debe correr +primero el primer productor porque inicializa las estructuras compartidas. +Por ejemplo: +$ ./P02e2321 0 & ./P02e2321 1 & ./P02e2321 2 & ./P02e2321 3 & ./P02e2321 4 & +(el proceso 0 a 2 son productores, el 3 y 4 consumidores). + +Se provee un script lanzador: ./P02e2321.sh +(recibe un parámetro opcional con la cantidad de iteraciones)