Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Sarsistema

Enviado por   •  23 de Agosto de 2018  •  1.139 Palabras (5 Páginas)  •  236 Visitas

Página 1 de 5

...

Procesado el producto 1 del Cliente 2 -> Tiempo: 1seg

Procesado el producto 1 del Cliente 1 -> Tiempo: 2seg

Procesado el producto 2 del Cliente 2 -> Tiempo: 4seg

Procesado el producto 2 del Cliente 1 -> Tiempo: 4seg

Procesado el producto 3 del Cliente 1 -> Tiempo: 5seg

Procesado el producto 3 del Cliente 2 -> Tiempo: 9seg

Procesado el producto 4 del Cliente 2 -> Tiempo: 10seg

Procesado el producto 4 del Cliente 1 -> Tiempo: 10seg

Procesado el producto 5 del Cliente 2 -> Tiempo: 11seg

El Cajero 2 HA TERMINADO DE PROCESAR AL Cliente 2 EN EL TIEMPO: 11seg

Procesado el producto 5 del Cliente 1->Tiempo: 12seg

Procesado el producto 6 del Cliente 1->Tiempo: 15seg

El Cajero 1 HA TERMINADO DE PROCESAR AL Cliente 1 EN EL TIEMPO: 15seg

En este caso para poder ingresar más cliente como indica en el proyecto usaremos hilos para los cajeros 2 funciones cajero1 y cajero2

En el cajero1 usaremos la sentencia for para recorrer el tiempo dentro de esa función tenemos un puntero y un char y srtlen para que devuelva los caracteres pero como son numero hacemos case para trasformar de char a int

void cajero1(char *arg){

for(i; i

j+=(int) arg[i]-48;

printf ("Procesando el producto [%i] del Cliente 1->TIEMPO: %i(seg) \n", i+1, j);

fflush(stdout);

usleep(1000000);

}

printf("\nEl Cajero 1 ha terminado de procesar Cliente 1 en el TIEMPO: %i(seg)\n\n", j);

}

En el cajero2 es el mismo procesamiento para que la concurrencia se cumpla que pueden ingresar varios productos a la vez

void cajero2(char *arg){

for(producto; producto

tiempo+=(int) arg[producto]-48;

printf ("Procesando el producto [%i] del Cliente 2->TIEMPO: %i(seg) \n", producto+1, tiempo);

fflush(stdout);

usleep(1300000);

}

printf("\nEl Cajero 2 ha terminado de procesar Cliente 2 en el TIEMPO: %i(seg)\n", tiempo);

}

Llamamos a los métodos como hicimos en el primero si es mayor a 1 podrá comenzar las compras caso contrario no creamos los hilos y un contador para acumular los tiempos

void main(int argc, char *argv[]){

pthread_t hilo1, hilo2;

int contador=1;

if(argc

printf("Datos Mal Ingresados\n");

}else if(argc>=1){

printf("\nEl cajero 1 comienza a procesar la compra del Cliente %d en el TIEMPO: %d (seg)\n", contador, tiempo);

printf("El cajero 2 comienza a procesar la compra del Cliente %d en el TIEMPO: %d (seg)\n\n", contador+1, j);

pthread_create(&hilo1, NULL ,(void*)cajero1, argv[1]);

pthread_create(&hilo2, NULL ,(void*)cajero2, argv[2]);

pthread_join(hilo1, NULL);

pthread_join(hilo2, NULL);

contador++;

}else if(argc==0){

printf("\n termina de ejecutar los hilos\n");}}

Programa completo

int i=0, j=0;

int tiempo=0, producto=0;

void cajero1(char *arg){

for(i; i

j+=(int) arg[i]-48;

printf ("Procesando el producto [%i] del Cliente 1->TIEMPO: %i (seg) \n", i+1, j);

fflush(stdout);

usleep(1000000);

}

printf("\nEl Cajero 1 ha terminado de procesar Cliente 1 en el TIEMPO: %i (seg)\n\n", j);

}

void cajero2(char *arg){

for(producto; producto

tiempo+=(int) arg[producto]-48;

printf ("Procesando el producto [%i] del Cliente 2->TIEMPO: %i (seg) \n", producto+1, tiempo);

fflush(stdout);

usleep(1300000);

}

printf("\nEl Cajero 2 ha terminado de procesar Cliente 2 en el TIEMPO: %i (seg)\n", tiempo);

}

void main(int argc, char *argv[]){

pthread_t hilo1, hilo2;

int contador=1;

if(argc

printf("Datos Mal Ingresados\n");

}else if(argc>=1){

printf("\nEl cajero 1 comienza a procesar la compra del Cliente %d en el TIEMPO: %d (seg)\n",

...

Descargar como  txt (8.4 Kb)   pdf (55.9 Kb)   docx (17.4 Kb)  
Leer 4 páginas más »
Disponible sólo en Essays.club