void ejecutarIO(tipoDispositivo* dispositivo){ while (1){ tipoProcesoEnIO* procesoEnIO = retirar(dispositivo->colaDeIO); log_debug(logDebug,"Se ejecutara la operacion de IO para el proceso %d",(procesoEnIO->proceso)->PCB.identificador); milisleep(dispositivo->valorDeRetardo*procesoEnIO->cantidadUnidadesDeIO); encolar(colaProcesosListos,procesoEnIO->proceso); } }
void Simulacion(s_cola *filabanco) { double demora = 0, max=0; colaAtendidos = crearCola(); colaAbandonos = crearCola(); while(isEmpty(filabanco)){ //printf("tipo servicio: %d - demora: %d\n", filabanco->FRENTE->tipo_servicio, tiempo_servicios[filabanco->FRENTE->tipo_servicio -1]); demora += tiempo_servicios[filabanco->FRENTE->tipo_servicio - 1]; max = filabanco->FRENTE->tiempoMax; s_cl *cl = desencolar(filabanco); cl->tiempoEspera = demora; if(demora <= max){ encolar(colaAtendidos,cl); }else{ encolar(colaAbandonos,cl); } } }
s_cola *ingresarClientes(int n) { int i=0; s_cola *colabanco = crearCola(); for (i = 0; i < n; i++) { s_cl *cl = crearCliente(); encolar(colabanco, cl); } return colabanco; }
void procesarOpcion() { int opcion; cin >> opcion; switch (opcion) { case 1: encolar(); mostrarMenu(); break; case 2: desencolar(); mostrarMenu(); break; case 3: mostrarCola(); mostrarMenu(); break; case 4: cout << "Se puede ingresar un máximo de 10 datos." << "\n" << "\n"; mostrarMenu(); break; default: cout << "Opción incorrecta." << "\n" << "\n"; mostrarMenu(); break; } }