コード例 #1
0
ファイル: marcos.c プロジェクト: LucasFunti/TpOperativos2015
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);
		}
	}
コード例 #3
0
ファイル: test.c プロジェクト: alanhala/so-atalo-con-hilos
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)

}
コード例 #4
0
ファイル: marcos.c プロジェクト: LucasFunti/TpOperativos2015
int marcos_libres() {

	return list_count_satisfying(marcos_disponibles, esta_libre);

}