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
Referencia del archivo ficheros.h

Módulo de entrada/salida para la simulación de memoria. Más...

#include "sim_engine.h"
Gráfico de dependencias incluidas en ficheros.h:
Gráfico de los archivos que directa o indirectamente incluyen a este archivo:

Ir al código fuente de este archivo.

Funciones

int cargar_procesos (const char *ruta, Proceso procesos[])
 Carga los procesos desde un archivo de texto.
void guardar_estado (const char *ruta, Memoria *m, int instante)
 Guarda el estado actual de la memoria en un archivo de log.
void limpiar_log (const char *ruta)
 Limpia el contenido de un archivo de log.

Descripción detallada

Módulo de entrada/salida para la simulación de memoria.

Proporciona funciones para:

  • Cargar procesos desde archivos de texto
  • Guardar el estado de la memoria (logging)
  • Gestión de archivos de log
Autor
Julian Hinojosa Gil
Fecha
2025
Versión
1.0

Definición en el archivo ficheros.h.

Documentación de funciones

◆ cargar_procesos()

int cargar_procesos ( const char * ruta,
Proceso procesos[] )

Carga los procesos desde un archivo de texto.

Lee el archivo línea por línea y parsea cada proceso con el formato: <nombre> <t_llegada> <mem_requerida> <t_ejecucion>

Parámetros
[in]rutaRuta del archivo de entrada
[out]procesosArray donde se almacenarán los procesos cargados
Devuelve
Cantidad de procesos cargados exitosamente
0 si hubo error al abrir/leer el archivo
Precondición
El archivo debe existir y ser legible
procesos debe tener espacio para MAX_PROCESOS elementos
Nota
Usa llamadas POSIX (open, read) según requerimientos de la práctica
Atención
El buffer interno es de 4KB, archivos más grandes se truncan

Definición en la línea 11 del archivo ficheros.c.

Hace referencia a Proceso::en_memoria, Proceso::finalizado, MAX_PROCESOS, Proceso::mem_requerida, read_all(), SIZE_BUFFER_LECTURA, Proceso::t_ejecucion, Proceso::t_llegada y Proceso::t_restante.

Referenciado por main(), run_gui() y test_sim().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ guardar_estado()

void guardar_estado ( const char * ruta,
Memoria * m,
int instante )

Guarda el estado actual de la memoria en un archivo de log.

Escribe una línea con formato: <instante>[dir1, nombre1, tam1] [dir2, nombre2, tam2] ...

Parámetros
[in]rutaRuta del archivo de salida (se crea si no existe)
[in]mPuntero a la estructura de memoria a guardar
[in]instanteInstante de tiempo actual de la simulación
Nota
Usa modo append, no sobrescribe contenido previo
Permisos del archivo: 0644 (rw-r–r–)

Definición en la línea 64 del archivo ficheros.c.

Hace referencia a Memoria::cant_particiones, Particion::dir_inicio, Particion::nombre_proceso, Memoria::particiones, Particion::tamano y write_all().

Referenciado por avanzar_tiempo().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ limpiar_log()

void limpiar_log ( const char * ruta)

Limpia el contenido de un archivo de log.

Abre el archivo con O_TRUNC para borrar su contenido. Si no existe, lo crea vacío.

Parámetros
[in]rutaRuta del archivo a limpiar
Nota
Llamar al inicio de cada simulación para empezar con log limpio

Definición en la línea 94 del archivo ficheros.c.

Referenciado por run_gui() y test_sim().

Gráfico de llamadas a esta función: