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 />
Tema <strong>3.</strong> Gestión <strong>de</strong> Memoria<br />
Ejemplo. Figura <strong>3.</strong>5, operaciones <strong>de</strong> intercambio. (1) Procesos A, B, C, D y E; (2) Todos son intensivos en<br />
CPU (misma prioridad); (3) Swapper tiene la mayor prioridad ⇒ se ejecutará cada segundo si hay carga <strong>de</strong><br />
trabajo; (3) Todos los procesos tienen igual tamaño; (4) Pue<strong>de</strong> haber en memoria sólo dos procesos<br />
simultáneamente; (5) Situación inicial: A y B en memoria y los <strong>de</strong>más intercambiados (en swap).<br />
Tiempo Proceso A Proceso B Proceso C Proceso<br />
Proceso E<br />
D<br />
0<br />
1<br />
0 ejecución<br />
1<br />
0<br />
1 ejecución<br />
0 intercambiado<br />
1<br />
0 intercambiado<br />
1<br />
0 intercambiado<br />
1<br />
2<br />
2 intercambiado<br />
0<br />
2 intercambiado<br />
0<br />
2 intercambiado<br />
en memoria<br />
0 ejecución<br />
2 intercambiado<br />
en memoria<br />
0<br />
2<br />
3<br />
1 1 1 1 ejecución<br />
3<br />
4<br />
2 intercambiado<br />
en memoria<br />
0<br />
2 2 intercambiado 2 intercambiado 4 intercambiado<br />
0<br />
0 en memoria<br />
0 ejecución<br />
5<br />
1 ejecución 3 1 1 1<br />
6<br />
2 intercambiado<br />
0<br />
4 intercambiado<br />
en memoria<br />
0 ejecución<br />
2 intercambiado<br />
0<br />
2<br />
2 intercambiado<br />
0<br />
Figura <strong>3.</strong>5. Ejemplo <strong>de</strong> operaciones <strong>de</strong> intercambio.<br />
Problemas:<br />
1. El swapper intercambia fuera en función <strong>de</strong> prioridad, tiempo <strong>de</strong> permanencia en memoria y valor nice<br />
⇒ Proceso elegido pue<strong>de</strong> no suministrar suficiente memoria. Alternativa: intercambiar fuera grupos<br />
sólo si dan suficiente memoria.<br />
2. Si el swapper duerme porque no pudo encontrar suficiente memoria para traer un proceso, cuando<br />
<strong>de</strong>spierta, busca otra vez un proceso para traerse al memoria aunque ya había encontrado uno antes<br />
porque pudo <strong>de</strong>spertar proceso más elegible ⇒ Proceso sigue en el dispositivo <strong>de</strong> swap. Alternativa: el<br />
swapper intenta intercambiar fuera muchos procesos más pequeños para hacer sitio al proceso más<br />
gran<strong>de</strong>, que estamos intentando intercambiar a memoria, antes <strong>de</strong> buscar otro proceso para<br />
intercambiar a memoria.<br />
<strong>3.</strong> El swapper pue<strong>de</strong> elegir un proceso que esté en estado “listo para ejecutarse”, para intercambiarlo<br />
fuera <strong>de</strong> memoria (swap) en caso <strong>de</strong> que no se hubiera ejecutado nunca.<br />
4. El swapper intenta intercambiar fuera un proceso y no encuentra espacio en swap ⇒ <strong>de</strong>adlock.<br />
Condiciones: (1) Todos los procesos en memoria principal están dormidos; (2) Todos los procesos<br />
“listos para ejecutarse” están intercambiados fuera <strong>de</strong> memoria principal; (3) No hay sitio en el<br />
dispositivo <strong>de</strong> swap para nuevos procesos.<br />
<strong>3.</strong><strong>3.</strong>2. Paginación por Demanda<br />
<strong>3.</strong><strong>3.</strong>2.1. Visión General<br />
Hardware: arquitectura basada en páginas y CPU instrucciones rearrancables ⇒ Soporta que el kernel<br />
implemente un algoritmo <strong>de</strong> <strong>de</strong>manda <strong>de</strong> páginas. Un proceso no tiene que caber entero en memoria física<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>3.</strong>12