ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Gestion De Memoria Unix Y Linux


Enviado por   •  8 de Diciembre de 2012  •  29.111 Palabras (117 Páginas)  •  899 Visitas

Página 1 de 117

TEMA 3. GESTIÓN DE MEMORIA

3.1. Introducción

3.2. Memoria virtual

3.2.1. Paginación

3.2.2. Segmentación

3.2.3. Segmentación paginada

3.2.4. Paginación por demanda

3.2.5. Algoritmos de reemplazo de página

3.2.6. Políticas de asignación de marcos de página

3.2.7. Operaciones sobre las regiones de un proceso

3.3. Gestión de memoria en UNIX

3.3.1. Intercambio (swap)

3.3.1.1. Asignación del espacio para intercambio por parte del kernel

3.3.1.2. Intercambiar procesos fuera de memoria.

3.3.1.3. Intercambiar procesos entre memoria principal y swap

3.3.2. Paginación por demanda.

3.3.2.1. Visión general

3.3.2.2. Estructuras de datos para paginación por demanda (UNIX)

3.3.2.3. Reemplazo de páginas.

3.3.3. Gestor de memoria del kernel

3.3.3.1. Buddy System (sistema de colegas)

3.3.3.2. Buddy System retardado

3.4. Gestión de memoria en Linux

3.4.1. Visión general

3.4.2. Direccionamiento de memoria en Linux

3.4.2.1. Espacios de direcciones

3.4.2.2. Segmentación en el i386

3.4.2.3. Segmentación en Linux

3.4.2.4. Paginación en el i386

3.4.2.5. Paginación en Linux

3.4.2.6. Gestión de las tablas de páginas (directorios y tablas de páginas)

3.4.3. Gestión de memoria en Linux

3.4.3.1. Gestión de marcos de página

3.4.3.2. Asignación y liberación de marcos de página

3.4.3.3. Políticas de asignación de memoria

3.4.3.4. El Buddy system (sistema de colegas)

3.4.3.5. El Slab allocator

3.4.3.6. Gestión de área de memoria no contigua

3.4.3.7. Memoria para procesos

3.4.3.8. Regiones de memoria

3.4.3.9. Gestor de faltas de página

3.4.3.9.1. Paginación por demanda

3.4.3.9.2. Copy-on-Write

3.4.3.10. Gestión del heap

3.4.4. Intercambio (swapping) en Linux

3.4.4.1. Visión general del intercambio (swapping) en Linux

3.4.4.2. Dispositivos de swap

3.4.4.3. Gestión de los dispositivos de swap

3.4.4.4. Gestión del swap, perspectiva general de la implementación

3.4.4.4.1. Formato de los dispositivos de swap

3.4.4.4.2 Descriptores de dispositivos de swap

3.4.4.4.3. Direcciones de entradas del swap

3.4.4.4.4. Selección de páginas a descartar

3.4.4.5. Gestión del swap, perspectiva detallada de la implementación

3.4.4.5.1. Gestión de los dispositivos de swap

3.4.4.5.2. Entrada/salida de páginas de swap

3.4.4.5.3. Eliminación de páginas de memoria

3.4.5. Cachés en Linux para la gestión de la memoria

3.1. INTRODUCCIÓN

La memoria es uno de los recursos más valiosos que gestiona el sistema operativo. Uno de los elementos principales que caracterizan un proceso es la memoria que utiliza. Ésta está lógicamente separada de la de cualquier otro proceso del sistema (excepto los threads de un mismo proceso que comparten normalmente la mayor parte de la memoria que tienen asignada). Un proceso no puede acceder, al espacio de memoria asignado a otro proceso, lo cual es imprescindible para la seguridad y estabilidad del sistema. El direccionamiento es una parte importante de la gestión de memoria, puesto que influye mucho en la visión del mismo por parte de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema. En Linux, además, un proceso tiene dos espacios de memoria: el espacio de memoria del usuario , único para ese proceso, y el espacio de memoria del kernel, idéntico en todos los procesos.

Objetivos del sistema de 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.

Espacio de direcciones de un proceso Conjunto de direcciones a las que hace referencia. Los espacios de direcciones involucrados en la gestión de la memoria son de tres tipos:

Espacio de direcciones físicas. Las direcciones físicas son aquellas que referencian alguna posición de la memoria física. Se obtienen después de aplicar una transformación por parte de la MMU (Unidad de Manejo de Memoria).

Espacio de direcciones lógicas o virtuales. Las direcciones lógicas son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por el procesador (la MMU), antes de convertirse en direcciones físicas.

Espacio de direcciones lineales. Las direcciones lineales se obtienen a partir de las direcciones lógicas tras haber aplicado una transformación dependiente de la arquitectura. En Linux las direcciones lógicas y lineales son idénticas. En el i386, es el nombre que reciben las direcciones tras haber aplicado la técnica de segmentación. En la segmentación, tras haber realizado las correspondientes comprobaciones de seguridad, se le suma a la dirección lógica una cierta dirección base, obteniendo así la dirección lineal. A partir del kernel de Linux 2.2.x, las direcciones base de casi todos los segmentos es 0, y por lo tanto, las direcciones lineales y las lógicas son las mismas.

La unidad de manejo de memoria (MMU) es parte del procesador. Sus funciones son: Convertir las direcciones lógicas emitidas por los procesos en direcciones físicas.

Comprobar que la conversión se puede realizar. La dirección lógica podría no tener una dirección física asociada. Por ejemplo, la página correspondiente a una dirección se puede haber intercambiada a una zona de almacenamiento secundario temporalmente.

Comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello.

En caso de fallo se lanzará una excepción que deberá ser resuelta por el kernel del sistema operativo. El kernel del sistema operativo está siempre en memoria principal, puesto que si se intercambia a una zona de almacenamiento secundario, ¿quién sería el encargado de llevarlo a memoria principal cuándo se produjera un fallo de acceso a memoria?

La MMU se inicializa para cada proceso del sistema. Esto permite que cada proceso pueda usar el rango completo de direcciones lógicas (memoria virtual), ya que las conversiones de estas direcciones serán distintas para

...

Descargar como (para miembros actualizados) txt (172 Kb)
Leer 116 páginas más »
Disponible sólo en Clubensayos.com