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);
	}
}
Esempio n. 2
0
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);
        }
    }
}
Esempio n. 3
0
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;
	}
}