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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

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

if (siguiente operación es una solicitud <strong>de</strong> bloque libre)<br />

{<br />

if (D i ≥ 2)<br />

{<br />

Marcarlo libre localmente y liberarlo localmente;<br />

D i = D i – 2;<br />

{<br />

else<br />

{<br />

if (D i = 1)<br />

{<br />

Marcarlo libre globalmente, liberarlo globalmente y unirlo si es posible;<br />

D i = 0;<br />

}<br />

else<br />

{<br />

if (D i = 0)<br />

{<br />

Marcarlo libre globalmente, liberarlo globalmente y unirlo si es posible;<br />

Seleccionar un bloque <strong>de</strong> tamaño 2i y liberarlo globalmente y unirlo si es posible;<br />

D i = 0;<br />

}<br />

}<br />

}<br />

}<br />

<strong>3.</strong>4. GESTIÓN <strong>DE</strong> <strong>MEMORIA</strong> EN LINUX<br />

<strong>3.</strong>4.1. Visión General<br />

Linux comparte muchas <strong>de</strong> las características <strong>de</strong> los esquemas <strong>de</strong> gestión <strong>de</strong> memoria <strong>de</strong> otras<br />

implementaciones UNIX, pero tiene sus características propias y únicas, aunque hay que <strong>de</strong>stacar que el<br />

esquema <strong>de</strong> gestión <strong>de</strong> memoria <strong>de</strong> Linux es bastante complejo.<br />

En lo que respecta a memoria virtual, el direccionamiento <strong>de</strong> memoria virtual <strong>de</strong> Linux, hace uso <strong>de</strong> una<br />

estructura <strong>de</strong> tabla <strong>de</strong> páginas con tres niveles, formada por los siguientes tipos <strong>de</strong> tablas (cada tabla<br />

individual es <strong>de</strong>l tamaño <strong>de</strong> una página): (1) Directorio <strong>de</strong> páginas ⇒ un proceso activo tiene un solo<br />

directorio <strong>de</strong> páginas que es <strong>de</strong>l tamaño <strong>de</strong> una página. Cada entrada en el directorio <strong>de</strong> páginas apunta a una<br />

página <strong>de</strong>l directorio intermedio <strong>de</strong> páginas. Para un proceso activo, el directorio <strong>de</strong> páginas tiene que estar en<br />

la memoria principal; (2) Directorio intermedio <strong>de</strong> páginas ⇒ este directorio pue<strong>de</strong> ocupar varias páginas y<br />

cada entrada <strong>de</strong> este directorio apunta a una página <strong>de</strong> la tabla <strong>de</strong> páginas; (3) Tabla <strong>de</strong> páginas ⇒ esta tabla<br />

<strong>de</strong> páginas también pue<strong>de</strong> ocupar varias páginas, y cada entrada <strong>de</strong> la tabla <strong>de</strong> página hace referencia a una<br />

tabla virtual <strong>de</strong>l proceso.<br />

Para utilizar esta estructura <strong>de</strong> la tabla <strong>de</strong> páginas a tres niveles, una dirección virtual en Linux se ve como un<br />

conjunto <strong>de</strong> cuatro campos. El campo más a la izquierda (más significativo) se utiliza como índice en el<br />

directorio <strong>de</strong> páginas. El siguiente campo sirve como índice en el directorio intermedio <strong>de</strong> páginas. El tercer<br />

campo sirve como índice en la tabla <strong>de</strong> páginas. Y el cuarto y último campo, indica el <strong>de</strong>splazamiento <strong>de</strong>ntro<br />

<strong>de</strong> la página seleccionada <strong>de</strong> la memoria. La estructura <strong>de</strong> tabla <strong>de</strong> página en Linux es in<strong>de</strong>pendiente <strong>de</strong> la<br />

plataforma y fue diseñada para ajustarse al procesador Alpha <strong>de</strong> 64 bits, el cual proporciona soporte <strong>de</strong><br />

hardware para los tres niveles <strong>de</strong> paginación. Con direcciones <strong>de</strong> 64 bits, el uso <strong>de</strong> sólo dos niveles <strong>de</strong> páginas<br />

en el procesador Alpha generaría tablas <strong>de</strong> páginas y directorios muy gran<strong>de</strong>s. Los 32 bits <strong>de</strong> la arquitectura<br />

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

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

Saved successfully!

Ooh no, something went wrong!