Gestor de Memoria - Práctica 3 OS 1.0
Simulador de gestión de memoria con algoritmos de Primer Hueco y Siguiente Hueco.
Cargando...
Buscando...
Nada coincide
sim_engine.h
Ir a la documentación de este archivo.
1#ifndef SIM_ENGINE_H
2#define SIM_ENGINE_H
3
4#include <stdbool.h>
5
29
34
36#define MEMORIA_TOTAL 2000
37
39#define UNIDAD_MINIMA 100
40
42#define MAX_PARTICIONES 50
43
45#define MAX_PROCESOS 100
46
48
57typedef struct {
58 char nombre[10];
62
63 // Variables de control de estado
64 int t_final;
68} Proceso;
69
77typedef struct {
79 int tamano;
80 int estado;
81 char nombre_proceso[10];
82} Particion;
83
95
106
120
130void mostrar_estado(Memoria *m);
131
151int ocupar_memoria(Memoria *m, int indice_hueco, Proceso p);
152
164void compactar(Memoria *m);
165
179bool liberar_proceso(Memoria *m, char *nombre_proceso);
180
195int buscar_hueco(Memoria *m, int mem_requerida, TipoAlgo tipo_algo);
196
212int alinear_size(int size);
213
231bool asignar_proceso(Memoria *m, Proceso p, TipoAlgo tipo_algo);
232
252void avanzar_tiempo(Memoria *m, Proceso procesos[], int num_procesos, int *reloj_actual, TipoAlgo algo, const char* ruta_log);
253
254#endif // ENGINE_H
#define MAX_PARTICIONES
Máximo número de particiones simultáneas en memoria.
Definition sim_engine.h:42
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.
Definition sim_engine.c:189
TipoAlgo
Algoritmos de asignación de memoria disponibles.
Definition sim_engine.h:102
@ ALGO_PRIMER_HUECO
Definition sim_engine.h:103
@ ALGO_SIGUIENTE_HUECO
Definition sim_engine.h:104
bool asignar_proceso(Memoria *m, Proceso p, TipoAlgo tipo_algo)
Asigna un proceso a la memoria.
Definition sim_engine.c:167
int ocupar_memoria(Memoria *m, int indice_hueco, Proceso p)
Ocupa un hueco de memoria con un proceso.
Definition sim_engine.c:31
void mostrar_estado(Memoria *m)
Muestra el estado actual de la memoria en consola.
Definition sim_engine.c:23
void inicializar_memoria(Memoria *m)
Inicializa la memoria con un único hueco libre.
Definition sim_engine.c:7
int buscar_hueco(Memoria *m, int mem_requerida, TipoAlgo tipo_algo)
Busca un hueco adecuado según el algoritmo especificado.
Definition sim_engine.c:118
void compactar(Memoria *m)
Compacta la memoria uniendo huecos adyacentes.
Definition sim_engine.c:79
bool liberar_proceso(Memoria *m, char *nombre_proceso)
Libera un proceso de la memoria.
Definition sim_engine.c:100
int alinear_size(int size)
Alinea un tamaño a múltiplos de UNIDAD_MINIMA.
Definition sim_engine.c:151
Estructura principal que representa la memoria del sistema.
Definition sim_engine.h:90
int ultimo_indice_asignado
Definition sim_engine.h:93
Particion particiones[MAX_PARTICIONES]
Definition sim_engine.h:91
int cant_particiones
Definition sim_engine.h:92
Estructura que representa una partición de memoria.
Definition sim_engine.h:77
char nombre_proceso[10]
Definition sim_engine.h:81
int dir_inicio
Definition sim_engine.h:78
Estructura que representa un proceso en el simulador.
Definition sim_engine.h:57
char nombre[10]
Definition sim_engine.h:58
int t_llegada
Definition sim_engine.h:59
int t_ejecucion
Definition sim_engine.h:61
int t_restante
Definition sim_engine.h:65
bool finalizado
Definition sim_engine.h:67
int mem_requerida
Definition sim_engine.h:60
bool en_memoria
Definition sim_engine.h:66
int t_final
Definition sim_engine.h:64