12.10.2014 Views

TEMA 3. GESTIÓN DE MEMORIA - Universidad de Almería

TEMA 3. GESTIÓN DE MEMORIA - Universidad de Almería

TEMA 3. GESTIÓN DE MEMORIA - Universidad de Almería

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Diseño <strong>de</strong> Sistemas Operativos<br />

Tema <strong>3.</strong> Gestión <strong>de</strong> Memoria<br />

<strong>3.</strong>4.4. Intercambio (swapping) en Linux<br />

<strong>3.</strong>4.4.1. Visión general <strong>de</strong>l intercambio (swapping) en Linux<br />

<strong>3.</strong>4.4.2. Dispositivos <strong>de</strong> swap<br />

<strong>3.</strong>4.4.<strong>3.</strong> Gestión <strong>de</strong> los dispositivos <strong>de</strong> swap<br />

<strong>3.</strong>4.4.4. Gestión <strong>de</strong>l swap, perspectiva general <strong>de</strong> la implementación<br />

<strong>3.</strong>4.4.4.1. Formato <strong>de</strong> los dispositivos <strong>de</strong> swap<br />

<strong>3.</strong>4.4.4.2 Descriptores <strong>de</strong> dispositivos <strong>de</strong> swap<br />

<strong>3.</strong>4.4.4.<strong>3.</strong> Direcciones <strong>de</strong> entradas <strong>de</strong>l swap<br />

<strong>3.</strong>4.4.4.4. Selección <strong>de</strong> páginas a <strong>de</strong>scartar<br />

<strong>3.</strong>4.4.5. Gestión <strong>de</strong>l swap, perspectiva <strong>de</strong>tallada <strong>de</strong> la implementación<br />

<strong>3.</strong>4.4.5.1. Gestión <strong>de</strong> los dispositivos <strong>de</strong> swap<br />

<strong>3.</strong>4.4.5.2. Entrada/salida <strong>de</strong> páginas <strong>de</strong> swap<br />

<strong>3.</strong>4.4.5.<strong>3.</strong> Eliminación <strong>de</strong> páginas <strong>de</strong> memoria<br />

<strong>3.</strong>4.5. Cachés en Linux para la gestión <strong>de</strong> la memoria<br />

<strong>3.</strong>1. INTRODUCCIÓN<br />

La memoria es uno <strong>de</strong> los recursos más valiosos que gestiona el sistema operativo. Uno <strong>de</strong> los elementos<br />

principales que caracterizan un proceso es la memoria que utiliza. Ésta está lógicamente separada <strong>de</strong> la <strong>de</strong><br />

cualquier otro proceso <strong>de</strong>l sistema (excepto los threads <strong>de</strong> un mismo proceso que comparten normalmente la<br />

mayor parte <strong>de</strong> la memoria que tienen asignada). Un proceso no pue<strong>de</strong> acce<strong>de</strong>r, al espacio <strong>de</strong> memoria<br />

asignado a otro proceso, lo cual es imprescindible para la seguridad y estabilidad <strong>de</strong>l sistema. El<br />

direccionamiento es una parte importante <strong>de</strong> la gestión <strong>de</strong> memoria, puesto que influye mucho en la visión <strong>de</strong>l<br />

mismo por parte <strong>de</strong> un proceso, como en el aprovechamiento <strong>de</strong>l hardware y el rendimiento <strong>de</strong>l sistema. En<br />

Linux, a<strong>de</strong>más, un proceso tiene dos espacios <strong>de</strong> memoria: el espacio <strong>de</strong> memoria <strong>de</strong>l usuario, único para<br />

ese proceso, y el espacio <strong>de</strong> memoria <strong>de</strong>l kernel, idéntico en todos los procesos.<br />

Objetivos <strong>de</strong>l sistema <strong>de</strong> gestión <strong>de</strong> memoria:<br />

• Ofrecer a cada proceso un espacio lógico propio.<br />

• Proporcionar protección entre procesos.<br />

• Permitir que los procesos compartan memoria.<br />

• Dar soporte a las distintas regiones <strong>de</strong>l proceso.<br />

• Maximizar el rendimiento <strong>de</strong>l sistema.<br />

• Proporcionar a los procesos mapas <strong>de</strong> memoria muy gran<strong>de</strong>s.<br />

Espacio <strong>de</strong> direcciones <strong>de</strong> un proceso ⇒ Conjunto <strong>de</strong> direcciones a las que hace referencia. Los espacios <strong>de</strong><br />

direcciones involucrados en la gestión <strong>de</strong> la memoria son <strong>de</strong> tres tipos:<br />

• Espacio <strong>de</strong> direcciones físicas. Las direcciones físicas son aquellas que referencian alguna posición<br />

<strong>de</strong> la memoria física. Se obtienen <strong>de</strong>spués <strong>de</strong> aplicar una transformación por parte <strong>de</strong> la MMU (Unidad<br />

<strong>de</strong> Manejo <strong>de</strong> Memoria).<br />

• Espacio <strong>de</strong> direcciones lógicas o virtuales. Las direcciones lógicas son las direcciones utilizadas por<br />

los procesos. Sufren una serie <strong>de</strong> transformaciones, realizadas por el procesador (la MMU), antes <strong>de</strong><br />

convertirse en direcciones físicas.<br />

• Espacio <strong>de</strong> direcciones lineales. Las direcciones lineales se obtienen a partir <strong>de</strong> las direcciones<br />

lógicas tras haber aplicado una transformación <strong>de</strong>pendiente <strong>de</strong> la arquitectura. En Linux las direcciones<br />

lógicas y lineales son idénticas. En el i386, es el nombre que reciben las direcciones tras haber aplicado<br />

la técnica <strong>de</strong> segmentación. En la segmentación, tras haber realizado las correspondientes<br />

comprobaciones <strong>de</strong> seguridad, se le suma a la dirección lógica una cierta dirección base, obteniendo así<br />

la dirección lineal. A partir <strong>de</strong>l kernel <strong>de</strong> Linux 2.2.x, las direcciones base <strong>de</strong> casi todos los segmentos<br />

es 0, y por lo tanto, las direcciones lineales y las lógicas son las mismas.<br />

Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>3.</strong>2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!