Objetivos del Tema
Introducción
Introducir el concepto de gestión de memoria en sistemas operativos, su importancia y funciones principales
Protección
Comprender la protección de memoria entre procesos y la asignación eficiente
Optimización
Analizar técnicas de optimización para minimizar fragmentación y maximizar rendimiento
Pregunta de reflexión inicial
¿Por qué es fundamental gestionar la memoria en un sistema operativo? Reflexiona sobre esto mientras exploras el tema.
1 Fundamentos de Gestión de Memoria
Definición de Memoria en Sistemas Informáticos
La memoria en un sistema informático se refiere al componente que almacena datos y programas en tiempo de ejecución para que la CPU pueda acceder a ellos rápidamente. Es esencial para el funcionamiento adecuado de cualquier sistema.
Acceso Rápido
Permite acceso rápido de la CPU a datos y programas
Almacenamiento Temporal
Almacena programas en ejecución y datos activos
Rendimiento
Determina la capacidad de procesamiento del sistema
Objetivos de la Gestión de Memoria
Asignación y Liberación
Gestionar qué proceso tiene acceso a qué parte de la memoria en cada momento
Protección
Garantizar que un proceso no interfiera en el espacio de memoria de otro proceso
Optimización
Lograr un uso eficiente, minimizando fragmentación y maximizando rendimiento
2 Tipos de Gestión de Memoria
Memoria Contigua
Cada proceso recibe un bloque continuo de memoria
- Simple de implementar
- Acceso rápido a memoria
- Fácil gestión
- Fragmentación interna
- Fragmentación externa
- Desperdicio de espacio
Memoria No Contigua
El proceso puede cargarse en bloques de memoria física no consecutivos
- Mejor aprovechamiento
- Reduce fragmentación
- Flexibilidad
- Complejidad en gestión
- Overhead adicional
- Tablas de mapeo
Jerarquía de Memoria
Memoria Caché
Más rápida, más cara, menor capacidad
RAM
Memoria principal, volátil
Almacenamiento Secundario
Discos duros, no volátil
Almacenamiento Terciario
Cintas, backups en la nube
3 Métodos de Asignación de Memoria
Tipos de Asignación
Asignación Dinámica
La memoria se asigna a los procesos mientras se ejecutan, y se libera al finalizar.
Swapping: Procesos se intercambian entre RAM y disco duro cuando la memoria principal se llena.
Asignación Estática
La memoria se asigna al inicio de la ejecución y permanece fija durante todo el tiempo de ejecución del proceso.
Métodos de Asignación de Memoria Principal
Particionamiento Fijo
La memoria principal se divide en particiones de tamaño fijo.
Problema: Uso ineficiente si procesos no usan toda la partición asignada.
Particionamiento Dinámico
Particiones se crean y asignan dinámicamente según solicitudes.
Ventaja: Asigna particiones del tamaño exacto que necesita cada proceso.
Paginación
Memoria se divide en bloques de tamaño fijo llamados páginas.
Ventaja: Gestión flexible al asignar memoria física según necesidad.
Fragmentación de la Memoria
Fragmentación Interna
Ocurre cuando hay espacio no utilizado dentro de una partición asignada a un proceso. Ejemplo: proceso solicita 50MB pero recibe partición de 64MB.
Fragmentación Externa
Ocurre cuando hay suficiente espacio libre en total, pero fragmentado en bloques pequeños. Dificulta asignación de memoria a procesos nuevos.
4 Memoria Principal (RAM)
Definición y Características
La memoria principal (RAM) es un componente físico del hardware donde se almacenan programas en ejecución y datos con los que la CPU trabaja directamente.
Volátil
Pierde su contenido cuando se apaga la computadora
Acceso Directo
Permite acceso aleatorio y rápido a cualquier ubicación
Trabajo con CPU
Almacena datos con los que la CPU trabaja directamente
Determinante de Rendimiento
Determina cantidad de datos accesibles para la CPU
Problemas Comunes de la Memoria Principal
Contención de Memoria
Ocurre cuando varios procesos compiten por los mismos recursos de memoria
Fragmentación
Tanto interna como externa, afecta la eficiencia de la memoria
Optimización del Uso de la Memoria Principal
Técnicas de Swapping
Intercambiar procesos a memoria secundaria cuando no hay suficiente RAM
Algoritmos de Reemplazo
FIFO, LRU y otros para gestionar páginas en memoria
Memoria Compartida
Facilita comunicación entre procesos sin duplicar memoria utilizada
5 Algoritmos de Reemplazo de Páginas
Cuando la memoria está llena y se necesita cargar una nueva página, estos algoritmos deciden qué página existente debe ser reemplazada.
FIFO
First In, First Out
Función: Reemplaza la página más antigua en la memoria
Ventaja: Simple de implementar
Desventaja: Puede eliminar páginas útiles antes de tiempo
LRU
Least Recently Used
Función: Reemplaza la página no accedida durante más tiempo
Ventaja: Mejor rendimiento al mantener páginas frecuentes
Desventaja: Más complejo de implementar
Optimal
Algoritmo Óptimo
Función: Reemplaza página que no se usará durante más tiempo
Ventaja: Mejor rendimiento teórico
Desventaja: Difícil implementación práctica
6 Memoria Virtual
Definición de Memoria Virtual
Técnica que permite ejecutar programas más grandes que la memoria física disponible, utilizando combinación de RAM y espacio en disco de manera transparente.
Ventajas
- Permite ejecutar programas más grandes que RAM física
- Mejora utilización de recursos del sistema
- Permite más procesos simultáneamente
- Gestión transparente de memoria
Desventajas
- Overhead adicional en el sistema
- Acceso a disco más lento que RAM
- Puede degradar rendimiento si se usa en exceso
- Requiere gestión compleja
Técnicas de Memoria Virtual
Paginación
Memoria virtual y física se dividen en bloques de tamaño fijo (páginas)
Ventaja: Facilita gestión eficiente de memoria
Segmentación
Divide memoria en segmentos lógicos (código, datos, pila)
Ventaja: Organiza programas de manera efectiva
Técnicas de Asignación de Espacio en Disco
Swapping
Bloques completos de datos se transfieren entre RAM y disco según necesidad
Paginación Bajo Demanda
Solo se transfieren páginas individuales según sea necesario
Impacto en el Rendimiento
Overhead
Proceso de paginación genera overhead que puede afectar rendimiento
Thrashing
Ocurre cuando se intercambian constantemente páginas entre RAM y disco
Espacios de Direcciones
Virtual: Conjunto de direcciones que un programa puede usar (independiente de memoria física)
Físico: Direcciones correspondientes a memoria física disponible (limitada por hardware)
Test de Comprensión
¿Cómo se optimiza el uso de la memoria RAM en un sistema operativo moderno?
¿Qué problemas pueden surgir si no se gestiona correctamente la memoria?
¿Cómo afecta la capacidad de la memoria RAM al rendimiento general de un sistema operativo?
¿Por qué es fundamental gestionar la memoria en un sistema operativo?
¿Por qué los sistemas operativos modernos dependen tanto de la memoria virtual?
¿Qué sucede cuando se utiliza demasiada memoria virtual en un sistema?
Actividad Evaluativa
Parte 1 - Análisis Conceptual
Responde las siguientes preguntas fundamentales sobre gestión de memoria:
- Explica la diferencia entre fragmentación interna y externa, dando un ejemplo de cada una
- Compara los algoritmos FIFO, LRU y Optimal para reemplazo de páginas
- Describe cómo funciona el swapping y cuándo es necesario utilizarlo
- Explica qué es el thrashing y cómo puede prevenirse
Parte 2 - Diseño de Esquema
Diseña un esquema conceptual que muestre:
- La relación entre memoria física, memoria virtual y gestión de procesos
- El flujo de datos entre RAM, disco y CPU durante el swapping
- Cómo se organiza la jerarquía de memoria en un sistema moderno
- El proceso de paginación bajo demanda
Criterios de evaluación (20 puntos):
Claridad y precisión en respuestas conceptuales
Correcta comparación de algoritmos y técnicas
Diseño completo del esquema conceptual
Creatividad y organización del material presentado
Entrega:
Documento con respuestas y esquema conceptual antes de la próxima sesión.
Material de Estudio
PDF del tema
Documentación completa sobre Gestión de Memoria
Guía de estudio
Resumen y ejercicios prácticos
Video explicativo
Demostración de algoritmos de memoria
Simulador interactivo
Simulación de algoritmos de reemplazo