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
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 />
Proceso P<br />
Tabla <strong>de</strong> Regiones<br />
por Proceso<br />
Proceso C<br />
Tabla <strong>de</strong> Regiones<br />
por Proceso<br />
Tema <strong>3.</strong> Gestión <strong>de</strong> Memoria<br />
Región T<br />
Contador Referencias 2<br />
Entradas en la<br />
Tabla <strong>de</strong> Páginas<br />
Región P1<br />
Contador Referencias 1<br />
Entradas en la<br />
Tabla <strong>de</strong> Páginas<br />
Región C1<br />
Contador Referencias 1<br />
Entradas en la<br />
Tabla <strong>de</strong> Páginas<br />
Dir. Virtual Pág.<br />
24K 967<br />
Dir. Virtual Pág.<br />
97K 613<br />
Dir. Virtual Pág.<br />
97K 613<br />
Marco <strong>de</strong> Página 967<br />
Contador Referencias 1<br />
Marco <strong>de</strong> Página 613<br />
Contador Referencias 2<br />
Figura <strong>3.</strong>8. Fork en <strong>de</strong>manda <strong>de</strong> páginas.<br />
Sistema <strong>de</strong> paginación en BSD. (1) Fork ⇒ Copia física <strong>de</strong> las páginas <strong>de</strong>l proceso padre. (2) Vfork ⇒<br />
Asume que el proceso hijo llama a exec a continuación ⇒ (2.1) No copia tablas <strong>de</strong> páginas → Rapi<strong>de</strong>z; (2.2)<br />
Proceso hijo se está ejecutando en el mismo espacio <strong>de</strong> direcciones físicas que su padre hasta el exec o el<br />
exit → Podría sobreescribir en la pila y en los datos <strong>de</strong>l proceso padre.<br />
<strong>3.</strong><strong>3.</strong>2.<strong>3.</strong> Reemplazo <strong>de</strong> Páginas<br />
La tabla <strong>de</strong> marcos <strong>de</strong> página se utiliza en el reemplazo <strong>de</strong> páginas. Se emplean varios punteros para crear<br />
listas <strong>de</strong>ntro <strong>de</strong> una tabla. Todos los marcos <strong>de</strong> páginas disponibles se enca<strong>de</strong>nan en una lista <strong>de</strong> marcos <strong>de</strong><br />
páginas vacíos disponibles para cargar páginas (lista <strong>de</strong> páginas libres). Cuando el número <strong>de</strong> páginas<br />
disponibles es inferior a un cierto umbral, el kernel “robará” varias páginas para compensarlo. El algoritmo <strong>de</strong><br />
reemplazo <strong>de</strong> página en UNIX es un refinamiento <strong>de</strong>l la política <strong>de</strong>l reloj (clock), conocido como el “algoritmo<br />
<strong>de</strong>l reloj <strong>de</strong> dos agujas”. El algoritmo utilizará un bit <strong>de</strong> referencia en la entrada <strong>de</strong> la tabla <strong>de</strong> páginas para<br />
cada página <strong>de</strong> la memoria que no esté bloqueada para ser “expulsada”. Este bit se pone a 0 cuando la página<br />
entra por primera vez y a 1 cuando se hace referencia a la página para una lectura o escritura. Una aguja <strong>de</strong>l<br />
algoritmo <strong>de</strong>l reloj, la aguja frontal, recorre la lista <strong>de</strong> páginas elegibles y pone el bit <strong>de</strong> referencia a 0 en cada<br />
página. Algún tiempo más tar<strong>de</strong>, la aguja trasera recorre la misma lista y comprueba el bit <strong>de</strong> referencia. Si el<br />
bit está a 1, entonces la página se ha referenciado <strong>de</strong>s<strong>de</strong> que la aguja frontal hizo el recorrido y se ignora el<br />
marco. Si el bit está todavía a 0, entonces la página no se ha referenciado en el intervalo <strong>de</strong> tiempo entre la<br />
visita <strong>de</strong> la aguja frontal y la aguja trasera, y se pone a estas páginas en una lista para ser reemplazadas.<br />
Dos parámetros <strong>de</strong>terminan la operación <strong>de</strong>l algoritmo: (1) Velocidad <strong>de</strong> recorrido, que indica la velocidad con<br />
la cual las dos agujas se mueven a través <strong>de</strong> la lista <strong>de</strong> páginas (páginas por segundo); (2) Alcance entre<br />
agujas, que indica el espacio entre la aguja frontal y la aguja trasera (páginas). Estos dos parámetros tienen<br />
valores por <strong>de</strong>fecto asignados en el arranque y basados en la cantidad <strong>de</strong> memoria física disponible. El<br />
parámetro <strong>de</strong> velocidad <strong>de</strong> recorrido pue<strong>de</strong> modificarse para cumplir condiciones cambiantes, y varía<br />
linealmente entre los valores <strong>de</strong> recorrido lento y recorrido rápido (asignados en la configuración) conforme la<br />
cantidad <strong>de</strong> memoria libre varía entre los valores “mucho_libre” y “poco_libre”. Es <strong>de</strong>cir, conforme la<br />
cantidad <strong>de</strong> memoria libre <strong>de</strong>sminuye, las agujas <strong>de</strong>l reloj se mueven más rápidamente para liberar más<br />
páginas. El parámetro <strong>de</strong> alcance entre agujas <strong>de</strong>termina el espacio entre la aguja frontal y la trasera, y<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>3.</strong>16