36#define MEMORIA_TOTAL 2000
39#define UNIDAD_MINIMA 100
42#define MAX_PARTICIONES 50
45#define MAX_PROCESOS 100
#define MAX_PARTICIONES
Máximo número de particiones simultáneas en memoria.
void avanzar_tiempo(Memoria *m, Proceso procesos[], int num_procesos, int *reloj_actual, TipoAlgo algo, const char *ruta_log)
Avanza un tick en la simulación.
TipoAlgo
Algoritmos de asignación de memoria disponibles.
bool asignar_proceso(Memoria *m, Proceso p, TipoAlgo tipo_algo)
Asigna un proceso a la memoria.
int ocupar_memoria(Memoria *m, int indice_hueco, Proceso p)
Ocupa un hueco de memoria con un proceso.
void mostrar_estado(Memoria *m)
Muestra el estado actual de la memoria en consola.
void inicializar_memoria(Memoria *m)
Inicializa la memoria con un único hueco libre.
int buscar_hueco(Memoria *m, int mem_requerida, TipoAlgo tipo_algo)
Busca un hueco adecuado según el algoritmo especificado.
void compactar(Memoria *m)
Compacta la memoria uniendo huecos adyacentes.
bool liberar_proceso(Memoria *m, char *nombre_proceso)
Libera un proceso de la memoria.
int alinear_size(int size)
Alinea un tamaño a múltiplos de UNIDAD_MINIMA.
Estructura principal que representa la memoria del sistema.
int ultimo_indice_asignado
Particion particiones[MAX_PARTICIONES]
Estructura que representa una partición de memoria.
Estructura que representa un proceso en el simulador.