Así como el procesador es un recurso que debe multiplexarse entre los diferentes programas que se estén ejecutando simultáneamente, la memoria es un recurso que deberá repartirse entre todos ellos. En este tema se plantea en primer lugar cómo el SO aborda la gestión de la memoria principal y, en segundo lugar, cómo disponer de una memoria virtualmente mayor que la memoria física disponible.

En la primera parte del tema se introduce el concepto de direcciones físicas y lógicas y la problemática asociada a la traducción de las primeras en las segundas en base al momento que esta se realice, lo que permite introducir la necesidad de la unidad de gestión de memoria (MMU). A continuación se plantea la necesidad de proteger el espacio de memoria entre los diferentes usuarios y entre el SO y los usuarios, así como la forma en que esto puede llevarse a cabo. También se justifica la necesidad de un dispositivo de intercambio en la gestión de la memoria principal.

Posteriormente se presentan ténicas estándar de gestión de memoria central,  como la paginación, la segmentación y la segmentación paginada. En cada caso se destaca la motivación y los problemas que resuelve el esquema estudiado y se razona sobre las alternativas y requerimientos para su implementación.

En la última parte del tema se plantea cómo resolver el problema de escasez de memoria y poseer una memoria virtualmente mayor que la memoria física disponible mediante intercambios con un disco. Se comienza introduciendo el concepto y la motivación de la memoria virtual, presentando a continuación el modelo de paginación bajo demanda. Posteriormente se analiza cómo afecta esta técnica al tiempo de acceso a memoria física y se describen y comparan diferentes políticas de reemplazo de páginas. El tema finaliza planteando cómo repartir la memoria física entre los diferentes procesos en ejecución, manteniendo el grado de multiprogramación lo más alto posible y evitando la hiperpaginación. 

Recursos