Instancia y administración de las estructuras de memoria
Memoria Principal
Definición: almacén de datos y programas en ejecución
Jerarquía de Memoria
Registros (más rápidos y pequeños)
Caché (rápido, cercano al CPU)
RAM (principal)
Disco (secundario)
Acceso: aleatorio (RAM), secuencial (cinta)
Temporalidad: volátil (RAM), no volátil (disco)
Objetivos de la Administración de Memoria
Asignación eficiente del espacio disponible
Protección entre procesos (aislamiento)
Permitir uso compartido seguro
Manejo lógico y físico de direcciones
Control y recuperación de espacio libre
Técnicas de Asignación
Contigua
Un solo bloque por proceso
Tipos de particiones
Fijas: tamaño predeterminado, fácil administración
Variables: tamaño adaptable, requiere compactación
Fragmentación
Interna: espacio no usado dentro del bloque
Externa: huecos entre bloques
No Contigua
Segmentación: bloques lógicos
Paginación: bloques físicos fijos
Segmentación
Divide el programa en módulos: código, datos, pila
Tabla de segmentos
Contiene base y límite de cada segmento
Traducción: dirección lógica = segmento + desplazamiento
Ventajas: modularidad, protección individual
Problema: fragmentación externa
Paginación
Memoria dividida en páginas (tamaño fijo)
Memoria física dividida en marcos
Tabla de páginas
Asocia páginas lógicas a marcos físicos
Evita fragmentación externa, puede causar fragmentación interna
Traducción por MMU y TLB
Memoria Virtual
Conceptos clave
Espacio lógico mayor que espacio físico
Permite ejecutar procesos grandes
Paginación bajo demanda
Segmentación bajo demanda
Mecanismos
Swapping: intercambio entre RAM y disco
Page fault: acceso a página no cargada
Ventajas: multiprogramación, aislamiento
Problemas: thrashing por exceso de intercambio
Protección y Seguridad
Uso de registros base y límite
Verificación de accesos con bits de control
Mecanismos por hardware y software
Optimización
Compactación: reorganización de memoria libre
Reubicación: mover procesos según disponibilidad
TLB: caché para traducción rápida de direcciones
Carga diferida: solo se carga lo necesario
Casos Prácticos
Cálculo de direcciones lógicas a físicas
Construcción de tablas de páginas
Simulación de fragmentación y swapping
Evaluación del uso de la memoria en distintos esquemas
Comparativa de Técnicas
Contigua: simple, rápida, fragmentación externa
Segmentación: lógica, modular, requiere tabla
Paginación: eficiente, requiere tabla y MMU
Virtual: flexible, puede provocar thrashing