int marcos_asignados(int pid) { pid_matchear = pid; return list_count_satisfying(tabla_paginas, coincide_pid_y_esta_presente); }
int32_t hiloEjecucionCPU(t_HiloCPU* paramsCPU) { log_info(MemoriaLog,"Esperando pedidos de Cpu \n"); int32_t codigoOperacion; codigoOperacion = recibirCodigoOperacion(paramsCPU->cpuSocket); if(codigoOperacion==-1) { log_error(MemoriaLog, RED"No se recibió correctamente el código de operación\n"RESET); return EXIT_FAILURE; } while(codigoOperacion!=0) { switch(codigoOperacion) { case codigo_iniciar: iniciar(paramsCPU->cpuSocket, paramsCPU->swapSocket); break; case codigo_finalizar: finalizar(paramsCPU->cpuSocket, paramsCPU->swapSocket); break; case codigo_leer: lectura(paramsCPU->cpuSocket, paramsCPU->swapSocket); break; case codigo_escribir: escritura(paramsCPU->cpuSocket, paramsCPU->swapSocket); break; } codigoOperacion = recibirCodigoOperacion(paramsCPU->cpuSocket); if(codigoOperacion==-1) { log_error(MemoriaLog, RED"No se recibió correctamente el código de operación\n"RESET); return EXIT_FAILURE; } } if(codigoOperacion==0){ log_info(MemoriaLog, "Se desconectó un CPU\n"); bool PorCerrado(sock_t* socket){ return socket->fd==0; } int32_t veces = list_count_satisfying(CPUsConectados,(void*)PorCerrado); int32_t it; for(it=0; it<veces; it++){ list_remove_and_destroy_by_condition(CPUsConectados, (void*)PorCerrado, (void*)clean_socket); } }
void cargar_programa_sin_asignar_frames(){ //inicializacion_para_test(10, 60); inicializar_estructuras(); crear_swap_mock(); char * codigo = cargar_ansisop(); int cargado = cargar_nuevo_programa(1, 100, codigo); int frames_asignado(t_frame *frame) { return (frame->asignado == 1); } int frames_asignados= list_count_satisfying(lista_frames, (void *) frames_asignado); CU_ASSERT_EQUAL(frames_asignados, 0); CU_ASSERT_EQUAL(cargado, -1); //para ver si se cargo en swap (puede ser mock) }
int marcos_libres() { return list_count_satisfying(marcos_disponibles, esta_libre); }