int main(void) {

	tipoConfigSWAP* configuracion = cargarArchivoDeConfiguracionDeSWAP("cfgSWAP");

	int socketSwap = crearSocket();

	t_list* listaPaginas = list_create();

	asociarAPuerto(socketSwap,configuracion->puertoDeEscucha);

	escucharConexiones(socketSwap,1);

	int socketMemoria = crearSocketParaAceptarSolicitudes(socketSwap);

	while(ejecutando){

	tipoInstruccion* instruccionRecibida = recibirInstruccion(socketMemoria);

	tipoRespuesta* respuestaAMemoria = atenderInstruccion(instruccionRecibida,listaPaginas);

	enviarRespuesta(socketMemoria,respuestaAMemoria);

	}

	liberarSocket(socketMemoria);

	liberarSocket(socketSwap);

	destruirConfigSWAP(configuracion);

	return EXIT_SUCCESS;
}
int main(void) {

	tipoConfigCPU* configuracion = cargarArchivoDeConfiguracionDeCPU("cfgCPU");

	socketCpu = crearSocket();

	conectarAServidor(socketCpu,configuracion->ipMemoria,configuracion->puertoMemoria);

	pid=19;
/*
	ejecutarInstruccion(INICIAR,4,"");
	ejecutarInstruccion(ESCRIBIR,1,"negro");
	ejecutarInstruccion(ESCRIBIR,3,"blanco");
	ejecutarInstruccion(LEER,3,"");*/

	/*ejecutarInstruccion(INICIAR,1,"");
	ejecutarInstruccion(ESCRIBIR,0,"loboNegro");
	ejecutarInstruccion(ESCRIBIR,1,"javiGorro");*/

	ejecutarInstruccion(INICIAR,3,"");
	ejecutarInstruccion(ESCRIBIR,0,"todoOk");
	ejecutarInstruccion(LEER,1,"javiGorro");

	getchar();

	liberarSocket(socketCpu);

	destruirConfigCPU(configuracion);

	return EXIT_SUCCESS;
}
int liberar_memoria(){


	liberarSocket(socketEscucha);




	//list_destroy_and_destroy_elements(CPUs,(void*)liberar_pcb);s

	//destruir hilos
	//destruir listas.todo lo q este en memoria dinamica.
	pthread_mutex_destroy(&pcbs);
	pthread_mutex_destroy(&cpuss);
	pthread_mutex_destroy(&ready);
	pthread_mutex_destroy(&bloqueados);


	sem_destroy(&solicitud_ejecucion);
	sem_destroy(&solicitud_cpuLibre);
	sem_destroy(&solicitud_deBloqueo);

return 0;

}
int main(void) {
	int socketEscuchaCPU = crearSocket();
	asociarAPuerto(socketEscuchaCPU, PUERTOCPU);
	escucharConexiones(socketEscuchaCPU, 1);
	int socketCPU = crearSocketParaAceptarSolicitudes(socketEscuchaCPU);

	while(1)
	{
		tipoInstruccion* instruccion = recibirInstruccion(socketCPU);
		printf("INSTRUCCION RECIBIDA | pID: %i | instruccion: %c | numeroDePagina: %i | texto: %s\n", instruccion->pid, instruccion->instruccion, instruccion->nroPagina, instruccion->texto);

		tipoRespuesta respuesta;
		respuesta.respuesta = 'p';
		respuesta.informacion = "contenido de la pagina";
		enviarRespuesta(socketCPU, &respuesta);
		printf("RESPUESTA ENVIADA | respuesta: %c | informacion: %s\n", respuesta.respuesta, respuesta.informacion);
	}
	liberarSocket(socketCPU);
	liberarSocket(socketEscuchaCPU);
	return EXIT_SUCCESS;
}
void liberar_puertos(){

	t_CPU* nodo_cpu;
	int tamano;
	int i;

	tamano = list_size(CPUs);

	for(i = 0; i < tamano; i++) {

		nodo_cpu =list_get(CPUs, i);
		liberarSocket(nodo_cpu->puerto);
		free(nodo_cpu);
	}

}