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
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 />
• Segmentación ⇒ (1) Soporte directo <strong>de</strong> segmentos; (2) Facilita operaciones sobre regiones: (a)<br />
Establecer protección → Modificar sólo una entrada <strong>de</strong> la TS; (b) Definir compartición <strong>de</strong> segmento<br />
→ entradas <strong>de</strong> la TS apuntando a la misma TP <strong>de</strong> segmento.<br />
• Paginación ⇒ (1) Facilitar la asignación no contigua <strong>de</strong> segmento en memoria; (2) Evitar<br />
fragmentación interna que supone la segmentación (cada segmento se almacena en memoria <strong>de</strong> forma<br />
contigua).<br />
<strong>3.</strong>2.4. Paginación por Demanda.<br />
Segmentación pura no es a<strong>de</strong>cuada para memoria virtual ⇒ Tamaño <strong>de</strong> segmentos variable.<br />
Paginación y segmentación paginada sí son para memoria virtual ⇒ (1) Bloque transferido → Página; (2)<br />
Memoria virtual + Paginación → Paginación por <strong>de</strong>manda.<br />
Estrategia <strong>de</strong> implementación: Uso <strong>de</strong>l bit <strong>de</strong> vali<strong>de</strong>z, don<strong>de</strong> la página no resi<strong>de</strong>nte se marca como no válida.<br />
Acceso a una página (Excepción <strong>de</strong> falta <strong>de</strong> página <strong>de</strong> la MMU al kernel <strong>de</strong>l sistema operativo si la página<br />
no está en la MMU): el kernel <strong>de</strong>l sistema operativo trae la página correspondiente <strong>de</strong> memoria secundaria<br />
⇒ el kernel <strong>de</strong>l sistema operativo <strong>de</strong>be diferenciar entre página no resi<strong>de</strong>nte y página inválida.<br />
Prepaginación ⇒ Traer páginas por anticipado (no por <strong>de</strong>manda): En caso <strong>de</strong> falta <strong>de</strong> página se traen<br />
a<strong>de</strong>más otras páginas que se consi<strong>de</strong>ran que necesitará el proceso → Beneficiosa <strong>de</strong>pendiendo <strong>de</strong> si hay<br />
acierto en la predicción.<br />
Tratamiento <strong>de</strong> falta <strong>de</strong> página (peor <strong>de</strong> los casos, falta <strong>de</strong> página pue<strong>de</strong> implicar dos operaciones <strong>de</strong> E/S al<br />
disco) ⇒ Tratamiento <strong>de</strong> la excepción provocado por la MMU (dirección <strong>de</strong> fallo disponible en registro): (1)<br />
Si dirección inválida → aborta proceso o le manda señal; (2) Si no hay ningún marco libre (consulta tabla <strong>de</strong><br />
marcos <strong>de</strong> página): (a) Selección <strong>de</strong> víctima (algoritmo <strong>de</strong> reemplazo <strong>de</strong> página): página P marco M →<br />
Marca P como inválida; (b) Si P modificada (bit Modificado <strong>de</strong> P activo) → inicia escritura P en memoria<br />
secundaria; (2) Si hay marco libre (se ha liberado o lo había previamente): (a) Inicia lectura <strong>de</strong> página en<br />
marco M; (b) Marca entrada <strong>de</strong> página válida referenciando a M; (c) Pone M como ocupado en tabla <strong>de</strong><br />
marcos <strong>de</strong> página (si no lo estaba).<br />
Políticas <strong>de</strong> administración <strong>de</strong> la memoria virtual: (1) Política <strong>de</strong> reemplazo: ¿Qué página reemplazar si hay<br />
falta <strong>de</strong> página y no hay marco libre? ⇒ (a) Reemplazo local → sólo pue<strong>de</strong> usarse para reemplazo un marco<br />
<strong>de</strong> página asignado al proceso que causa la falta <strong>de</strong> página; (b) Reemplazo global → pue<strong>de</strong> usarse para<br />
reemplazo cualquier marco; (2) Política <strong>de</strong> asignación <strong>de</strong> espacio a los procesos: ¿Cómo se reparten los<br />
marcos entre los procesos? ⇒ Asignación fija o dinámica.<br />
<strong>3.</strong>2.5. Algoritmos <strong>de</strong> Reemplazo <strong>de</strong> Página.<br />
Objetivo <strong>de</strong> los algoritmos <strong>de</strong> reemplazo: Minimizar la tasa <strong>de</strong> fallos <strong>de</strong> página. Cada algoritmo tiene versión<br />
local y global: local ⇒ criterio se aplica a las páginas resi<strong>de</strong>ntes <strong>de</strong>l proceso, y global ⇒ criterio se aplica a<br />
todas las páginas resi<strong>de</strong>ntes. Algoritmos conocidos: Óptimo, FIFO (First In First Out), Clock (Reloj o segunda<br />
oportunidad) = FIFO + uso <strong>de</strong>l bit <strong>de</strong> referencia; y LRU (Least Recently Used). A<strong>de</strong>más estos algoritmos se<br />
utilizan en técnicas <strong>de</strong> buffering <strong>de</strong> páginas.<br />
LRU ⇒ Criterio: reemplaza la página resi<strong>de</strong>nte menos usada recientemente. Está basado en el principio <strong>de</strong><br />
proximidad temporal <strong>de</strong> referencias: si es probable que se vuelve a referenciar las páginas accedidas<br />
recientemente, entonces la página que se <strong>de</strong>be reemplazar es la que no se ha referenciado <strong>de</strong>s<strong>de</strong> hace más<br />
tiempo. Sutileza en su versión global: menos recientemente usada en el tiempo lógico <strong>de</strong> cada proceso (no<br />
tiempo real).Difícil implementación estricta (hay aproximaciones) ⇒ Precisaría una MMU específica. Posible<br />
implementación con hardware específico: en entrada <strong>de</strong> TP hay un contador, en cada acceso a memoria<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>3.</strong>6