semaforos e hilos
Publicado por rocio (18 intervenciones) el 07/10/2020 05:09:45
tengo el siguiente codigo .c
tengo a su ves el sigiente .txt
la idea seria.... Leer la receta desde el archivo (Se debe respetar el orden de la receta, La ejecución no puede ser secuencial, cada equipo comienza al mismo instante) Utilizar 3 hilos (threads) para simular los tres equipos, La salida debe escribirse en un archivo aparte, cada acción/paso de la receta deben simularla con un salida de texto.
Ejemplo: ¡Equipo 1 Horneando panes!, ¡Equipo 2, El pan está listo!, ¡Equipo 3 término las 2
hamburguesas! ¡Equipo 3 Gano!
Controlar la utilización del equipamiento compartido(plancha , horno, sal) ya que lo puede utilizar un equipo a la vez
Dos equipos no pueden estar horneando, usando la plancha o usando el salero a la vez.
¿Quién será el primero en entregar 2 hamburguesas al jurado?
La dificultad de la competencia es que la cocina no cuenta
con el equipamiento individual para cada equipo, sino que
algunos de ellos son compartidos. Se tienen que ordenar para
cocinar los medallones ya que solo tienen una plancha para todos
los equipos y esta cocina un medallón a la vez, existe solo un
horno que cocina dos panes a la vez y un solo salero
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
void *Receta(void *args){
printf("A empezar");
usleep(1000000);
}
void *cortar(){
usleep(5000000);
printf("ah cortado 2 dientes de ajo, cebolla y perejil!");
}
void *mezclar(){
usleep(3000000);
printf("ah mezclado los ingredietes con la carne");
}
void *salar(){ //seccion critica, uno solo usa la sal
usleep(2000000);
printf("ah agregado la sal a la carne");
}
void *medalones(){
usleep(2000000);
printf("ah formado los medallones");
}
void *planchar (){ //seccion critica, uno solo usa la plancha
usleep(5000000);
printf("ah puesto la carne en la plancha");
}
void *hornearPan(){ //seccion critica, solo uno utiliza el horno
usleep(3000000);
printf("ah puesto a hornear los panes");
}
void *tomateYlechuga(){
usleep(2000000);
printf("ah agregado la lechuga y tomates");
}
void *finalizar(){
printf("ah terminado la hamburgesa!!");
}
int main(){
pthread_t Equipo_1, Equipo_2, Equipo_3;
pthread_create(&Equipo_1,NULL,Receta,NULL);
pthread_create(&Equipo_2,NULL,Receta,NULL);
pthread_create(&Equipo_3,NULL,Receta,NULL);
pthread_join(Equipo_1,NULL);
pthread_join(Equipo_2,NULL);
pthread_join(Equipo_3,NULL);
return 0;
}
tengo a su ves el sigiente .txt
1
2
3
4
5
6
7
8
9
Receta
paso1: cortar 2 dientes de ajo, cebolla y perejil
paso2: mezclar los ingredientes cortados con la carne
paso3: salar a gusto
paso4: formar medallones con la cane
paso5: planchar por 5 min la carne
paso6: hornearPan
paso7: agregarle tomateYlechuga
paso8: para finalizar emplate la hamburgesa
la idea seria.... Leer la receta desde el archivo (Se debe respetar el orden de la receta, La ejecución no puede ser secuencial, cada equipo comienza al mismo instante) Utilizar 3 hilos (threads) para simular los tres equipos, La salida debe escribirse en un archivo aparte, cada acción/paso de la receta deben simularla con un salida de texto.
Ejemplo: ¡Equipo 1 Horneando panes!, ¡Equipo 2, El pan está listo!, ¡Equipo 3 término las 2
hamburguesas! ¡Equipo 3 Gano!
Controlar la utilización del equipamiento compartido(plancha , horno, sal) ya que lo puede utilizar un equipo a la vez
Dos equipos no pueden estar horneando, usando la plancha o usando el salero a la vez.
¿Quién será el primero en entregar 2 hamburguesas al jurado?
La dificultad de la competencia es que la cocina no cuenta
con el equipamiento individual para cada equipo, sino que
algunos de ellos son compartidos. Se tienen que ordenar para
cocinar los medallones ya que solo tienen una plancha para todos
los equipos y esta cocina un medallón a la vez, existe solo un
horno que cocina dos panes a la vez y un solo salero
Valora esta pregunta


0