Conceptos Clave de Gestión de Memoria en Sistemas Operativos
Clasificado en Informática
Escrito el en español con un tamaño de 4,24 KB
Conceptos Fundamentales de Gestión de Memoria en Sistemas Operativos
Thread y Proceso
Un Thread (que de una forma un poco 'basta' se puede traducir como hilo) es la unidad básica de ejecución de un sistema operativo.
Un proceso tiene dos espacios de memoria: el espacio de memoria del usuario, único para ese proceso, y el espacio de memoria del kernel.
Objetivos de la Gestión de Memoria
- Ofrecer a cada proceso un espacio lógico propio.
- Proporcionar protección entre procesos.
- Permitir que los procesos compartan memoria.
- Dar soporte a las distintas regiones del proceso.
- Maximizar el rendimiento del sistema.
- Proporcionar a los procesos mapas de memoria muy grandes.
Manejo de Direcciones y MMU
MMU (Unidad de Manejo de Memoria).
Direcciones lineales: se obtienen a partir de las direcciones lógicas tras haber aplicado una transformación dependiente de la arquitectura.
i386: es el nombre que reciben las direcciones tras haber aplicado la técnica de segmentación.
Funciones de la MMU
- Convertir las direcciones lógicas emitidas por los procesos.
- Comprobar que la conversión se puede realizar.
- Comprobar que el proceso tiene permisos.
Rol del Kernel en la Gestión de Memoria
Parte del kernel del sistema operativo:
- Decide qué procesos residen en memoria principal (al menos una parte).
- Maneja parte del espacio de direcciones virtuales que ha quedado fuera.
- Controla la cantidad de memoria principal.
Gestiona el intercambio de procesos entre memoria principal y memoria secundaria o dispositivo de swap.
Histórico: UNIX vs UNIX BSD
Históricamente UNIX
- Política de gestión de memoria llamada intercambio (swapping).
- Transferían procesos enteros entre memoria principal y swap.
- Problema: Límite al tamaño de los procesos.
- Ventaja: Facilidad de implementación y el menor overhead del sistema.
UNIX BSD: Implementó la paginación por demanda o demanda de páginas. Transferencia páginas de memoria, no procesos, entre memoria principal y swap.
Memoria Virtual
MEMORIA VIRTUAL: El tamaño combinado del programa, datos y pila puede exceder la cantidad de memoria física disponible.
Páginas: El espacio virtual de direcciones se divide en unidades llamadas páginas.
La memoria principal: se divide en marcos de páginas (page frames) del mismo tamaño que las páginas virtuales y son compartidas por los distintos procesos.
Tablas de Páginas (TP) y TLB
- Tabla de páginas (TP): Relaciona cada página con el marco que la contiene.
- La MMU usa la TP para traducir direcciones lógicas a físicas.
- Típicamente se usan 2 TPs: TP usuario y TP sistema (sólo se permite usar estas direcciones en modo sistema).
Los bits de mayor peso de la dirección se interpretan como el número de la página en la TP y los de menor peso como el número de palabra.
El sistema operativo mantiene una TP por cada proceso.
TLB: Translation Lookaside Buffer.
Ventajas de las Tablas de Páginas Multinivel
- Si un proceso usa una parte pequeña de su espacio lógico, hay ahorro en espacio para almacenar TPs.
Segmentación
SEGMENTACIÓN: El espacio de direcciones se divide en segmentos, cada uno de los cuales corresponderá a una rutina (procedimiento, función).
Sistemas Operativos: Definición y Servicios
Sistemas operativos: Programa que controla la ejecución de los programas de aplicación. Actúa como interfaz entre las aplicaciones del usuario y el hardware.
Servicios que ofrece el sistema operativo
- Creación de programas: Editores y depuradores (debuggers).
- Ejecución de programas.
- Acceso a los dispositivos de E/S.
- Acceso controlado a los archivos.
- Acceso al sistema.