int main(int argc, char **argv) { //Recibe la ruta del archivo de configuracion del Kernel o el nombre del archivo si esta en la misma carpeta program_pid=0; block_sem = list_create(); PATH_config = argv[1]; inicializarMutex(); inicializarConfiguracion(); //Lee el archivo de configuracion y asigna las configuraciones a configuracion_kernel inicializarColas(); crearSemaforos(); pthread_create(&conexion_plp_umv, NULL, (void*) &core_conexion_umv, NULL); pthread_create(&plp, NULL, (void*) &core_plp, NULL); pthread_create(&pcp, NULL, (void*) &core_pcp, NULL); esperarYCerrarConexiones(); cerrarSemaforos(); pthread_join(pcp, NULL); pthread_join(plp, NULL); pthread_join(conexion_plp_umv,NULL); destruirColas(); liberarMutex(); return EXIT_SUCCESS; }
int main(int argc, char * argv[]) { pid_global = 0; //Chequear argumentos if ((chequear_argumentos(argc, 2)) == -1) return EXIT_FAILURE; //Cargar configuracion cargar_archivo_config(argv, (void *) cargarConfiguracion); //Crear las listas crearListasYColas(); //Crear cliente para UMC crearClienteUMC(); //Crear semaforos crearSemaforos(); //Crear servidor de consolas pthread_create(&pIDServerConsola, NULL, (void *)crearServerConsola, NULL); //Crear servidor de cpus pthread_create(&pIDServerCPU, NULL, (void *)crearServerCPU, NULL); //Planificar consolas pthread_create(&pIDPlanificador, NULL, (void *)planificar_consolas, NULL); pthread_join(pIDServerConsola, NULL); pthread_join(pIDServerCPU, NULL); pthread_join(pIDPlanificador, NULL); //Liberar pthread_detach(pIDServerConsola); pthread_detach(pIDServerCPU); pthread_detach(pIDPlanificador); //Destruir semaforos destruirSemaforos(); }