Administración de Memoria: MFT y MVT
La administración de memoria es crucial para el rendimiento de un sistema operativo. A continuación, exploramos dos enfoques fundamentales: MFT y MVT.
MFT (Multiprogramming with Fixed Tasks)
En este esquema, la memoria principal se divide en particiones fijas de tamaños específicos durante el diseño del sistema o en el momento del arranque. Cada partición se asigna a un proceso. Si un proceso es más pequeño que la partición asignada, se desperdicia memoria no utilizada dentro de esa partición (fragmentación interna). Los procesos que no caben en ninguna partición no pueden cargarse en memoria, aunque haya espacio disponible en otras particiones (restricción de tamaño fijo).
MVT (Multiprogramming with Variable Tasks)
A diferencia de MFT, en MVT la memoria principal se divide dinámicamente en particiones del tamaño exacto que necesita cada proceso. Los procesos se cargan en memoria ajustando su tamaño, lo que minimiza la fragmentación interna. Una vez que un proceso termina, su espacio en memoria queda disponible para otros procesos, lo que puede causar fragmentación externa.
Conceptos Clave: Fragmentación Externa e Interna
Fragmentación Externa
Ocurre cuando hay suficientes bloques de memoria libres en conjunto, pero están dispersos en pequeños fragmentos no contiguos. Estos espacios libres no se pueden usar para acomodar procesos más grandes debido a la falta de continuidad. Ejemplo: En un sistema MVT, si hay bloques de 50 KB, 30 KB y 20 KB disponibles, un proceso que requiere 80 KB no puede cargarse, aunque el espacio total libre sea suficiente (100 KB).
Fragmentación Interna
Ocurre cuando se asigna más memoria a un proceso de la que realmente necesita. Se genera espacio desperdiciado dentro de una partición fija, ya que el proceso no puede utilizar la totalidad del bloque asignado. Ejemplo: En un sistema MFT con particiones de 100 KB, si un proceso requiere 60 KB, se desperdician 40 KB dentro de la partición.
Fragmentación en MFT y MVT
En MFT, existe fragmentación interna debido al tamaño fijo de las particiones, y fragmentación externa cuando los procesos no caben en las particiones libres disponibles. En MVT, solo ocurre fragmentación externa, ya que las particiones son dinámicas y ajustadas al tamaño del proceso.
¿En paginación simple hay fragmentación externa e interna? No hay fragmentación externa porque las páginas tienen tamaños fijos que se ajustan a los marcos de memoria. Sin embargo, puede haber fragmentación interna si una página no utiliza completamente un marco asignado.
Paginación Simple: Fundamentos y Componentes
La paginación simple es una técnica esencial para la gestión de memoria en sistemas operativos modernos.
¿Qué es la Paginación Simple?
Es una técnica de administración de memoria en la que los espacios de direcciones lógicas (del proceso) y físicas (de la RAM) se dividen en bloques de tamaño fijo, denominados páginas y marcos, respectivamente. Esto elimina la necesidad de que las particiones sean contiguas en la memoria física, resolviendo así el problema de la fragmentación externa.
La Tabla de Páginas: Rol y Ubicación
Sí, la tabla de páginas es una parte fundamental del mecanismo de paginación simple, ya que se encarga de mapear las páginas lógicas de un proceso a los marcos físicos en la memoria. Sin la tabla de páginas, no sería posible traducir direcciones lógicas a físicas. La tabla de páginas reside en la memoria principal (RAM). Dado que cada proceso tiene su propia tabla de páginas, estas tablas se almacenan en la memoria física y el sistema operativo mantiene un registro de su ubicación.
La Unidad de Gestión de Memoria (MMU)
La MMU (Memory Management Unit) es un componente de hardware en el sistema de una computadora encargado de gestionar la memoria. Su función principal es traducir las direcciones lógicas (generadas por los programas) en direcciones físicas (utilizadas por la memoria RAM). Es una parte esencial para implementar esquemas de administración de memoria como la paginación y la segmentación.
El Translation Lookaside Buffer (TLB)
La TLB (Translation Lookaside Buffer) es una caché especializada que almacena las traducciones recientes de direcciones lógicas a físicas para acelerar el acceso a la memoria. Es especialmente útil cuando las tablas de páginas (TP) residen en la RAM, ya que consultar la RAM directamente para realizar la traducción puede ser más lento.
Memoria Virtual: Concepto, Ventajas y Desventajas
La memoria virtual es una técnica avanzada que permite a los sistemas operativos gestionar la memoria de manera más eficiente.
¿Dónde reside la Memoria Virtual?
Reside en la memoria secundaria (disco rígido o SSD).
Beneficios de la Memoria Virtual
- Permite ejecutar programas más grandes que la RAM disponible.
- Aumenta la multiprogramación al cargar solo las partes activas de los procesos.
- Reduce la fragmentación externa y mejora el uso de la memoria física.
Desventajas de la Memoria Virtual
- Sobrecarga en el rendimiento: Los fallos de página pueden generar una alta latencia, ya que acceder al disco es mucho más lento que acceder a la RAM.
- Fragmentación interna: En sistemas con tamaños de página fijos, la última página asignada a un proceso puede contener espacio no utilizado.
- Espacio en el almacenamiento secundario: Requiere suficiente espacio en el disco para almacenar las páginas de respaldo.
La Página Víctima en Memoria Virtual
Una página víctima es una página que el sistema operativo selecciona para ser reemplazada o expulsada de la memoria física (RAM) cuando ocurre un fallo de página y no hay marcos libres disponibles. Este reemplazo ocurre en sistemas con memoria virtual que utilizan técnicas de paginación para administrar la memoria. Los algoritmos como FIFO o LRU determinan cuál se elimina.
Estrategias del SO para la Gestión de Marcos Libres
Los sistemas operativos aplican estrategias como el presacrificio, que libera páginas no activas antes de que se necesiten nuevos marcos, garantizando un mínimo de marcos disponibles.
Variabilidad de los Tamaños de Página Actuales
No. Los tamaños varían según la arquitectura y las necesidades:
- Páginas pequeñas (4 KB) para procesos pequeños.
- Páginas grandes (megabytes) para archivos multimedia o bases de datos.
Aunque muchas arquitecturas de sistemas operativos y hardware utilizan tamaños de página uniformes, algunos sistemas modernos admiten tamaños de página múltiples para optimizar el rendimiento y la administración de memoria.
Deadlocks y Exclusión Mutua en Sistemas Operativos
Los interbloqueos son un desafío común en sistemas concurrentes que gestionan recursos compartidos.
¿En qué tipo de procesos se pueden dar los interbloqueos?
Los interbloqueos o deadlocks pueden ocurrir en sistemas donde varios procesos compiten por recursos compartidos y no pueden progresar porque están esperando que otros procesos liberen recursos que ya tienen asignados. En términos generales, pueden presentarse en procesos que cumplen ciertas características y se dan en sistemas que permiten exclusión mutua en el acceso a recursos.
Tipos de procesos en los que se pueden dar los interbloqueos:
- Procesos que requieren múltiples recursos.
- Procesos con operaciones no atómicas.
- Procesos que no tienen prioridad para liberar recursos.
- Procesos en sistemas distribuidos.
- Procesos que compiten por recursos de tipo exclusión mutua.
Como conclusión, estos ocurren en procesos cooperativos que comparten recursos y necesitan sincronización para evitar conflictos.
Prevención de Deadlocks: La Política «Que No Ocurra»
Si tenemos en cuenta la política de «Que no ocurra», las opciones para prevenir Deadlocks incluyen:
- Prevenir Exclusión Mutua: Diseñar recursos que puedan ser compartidos sin restricciones.
- Prevenir la Espera Circular: Asignar un orden global a los recursos y exigir que los procesos los soliciten en ese orden.
Espera Circular: Definición y Ejemplo
Es una condición donde cada proceso está esperando un recurso que posee otro proceso en una cadena circular. Se produce cuando existe un ciclo de procesos, donde cada proceso está esperando un recurso que está siendo retenido por otro proceso en el ciclo. Como resultado, ninguno de los procesos puede continuar, ya que cada uno depende de otro para liberar el recurso que necesita.
Ejemplo: Proceso A espera el recurso R1. Proceso B espera el recurso R2. R2 está en uso por A, y R1 en uso por B. (sacar flecha de recurso A y B que diga «retenido por» y sacar flecha de proceso P1 y P2 que diga solicitud).
Exclusión Mutua: Concepto Fundamental
Es la garantía de que solo un proceso accede a un recurso compartido a la vez, evitando conflictos y asegurando integridad.