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 />

• 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

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

Saved successfully!

Ooh no, something went wrong!