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

para ejecutarse. La carga en memoria principal <strong>de</strong> una parte <strong>de</strong> un proceso relevante se hace <strong>de</strong> forma<br />

dinámica.<br />

Transparente a programas <strong>de</strong> usuario excepto por el tamaño virtual permisible a proceso (controlado por el<br />

kernel).<br />

Working Set (conjunto <strong>de</strong> trabajo) ⇒ El conjunto <strong>de</strong> trabajo <strong>de</strong> un proceso en un instante virtual t y con un<br />

parámetro ∆, <strong>de</strong>nominado W(t, ∆), es el conjunto <strong>de</strong> páginas a las que el proceso ha hecho referencia en las<br />

últimas ∆ unida<strong>de</strong>s <strong>de</strong> tiempo virtual, siendo el tiempo virtual el tiempo que transcurre mientras el proceso está<br />

realmente en ejecución.<br />

Si un proceso direcciona una página que no pertenece al Working Set ⇒ provoca una falta <strong>de</strong> página,<br />

entonces el kernel actualiza el Working Set, leyendo páginas <strong>de</strong>s<strong>de</strong> memoria secundaria si es necesario.<br />

Este concepto <strong>de</strong> Working Set pue<strong>de</strong> motivar la siguiente estrategia para el tamaño <strong>de</strong>l conjunto resi<strong>de</strong>nte <strong>de</strong><br />

un proceso (parte <strong>de</strong>l proceso que está realmente en memoria principal): (1) Supervisar el conjunto <strong>de</strong> trabajo<br />

<strong>de</strong> cada proceso; (2) Eliminar periódicamente <strong>de</strong>l conjunto resi<strong>de</strong>nte <strong>de</strong> un proceso aquellas páginas que no<br />

pertenezcan a su conjunto <strong>de</strong> trabajo. (3) Un proceso pue<strong>de</strong> ejecutarse sólo si su conjunto <strong>de</strong> trabajo está en<br />

la memoria principal, es <strong>de</strong>cir, si su conjunto resi<strong>de</strong>nte incluye a su conjunto <strong>de</strong> trabajo.<br />

Problemas <strong>de</strong> la estrategia <strong>de</strong>l conjunto <strong>de</strong> trabajo: (1) Tanto el tamaño como el conjunto <strong>de</strong> trabajo variarán<br />

con el tiempo, siendo <strong>de</strong>sconocido el valor óptimo <strong>de</strong> ∆; (2) El casi impracticable una medida real <strong>de</strong>l conjunto<br />

<strong>de</strong> trabajo, ya que sería necesario marcar cada referencia <strong>de</strong> página <strong>de</strong> cada proceso con su tiempo virtual y<br />

mantener una cola or<strong>de</strong>nada en el tiempo <strong>de</strong> cada proceso.<br />

<strong>3.</strong><strong>3.</strong>2.2. Estructuras <strong>de</strong> Datos para Paginación por Demanda (UNIX)<br />

Estructuras <strong>de</strong> datos para la gestión <strong>de</strong> memoria a bajo nivel y <strong>de</strong>manda <strong>de</strong> páginas (sistema <strong>de</strong> paginación):<br />

• Tabla <strong>de</strong> páginas ⇒ Normalmente, hay una tabla por proceso, con una entrada para cada página <strong>de</strong> la<br />

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

• Descriptores <strong>de</strong> bloques <strong>de</strong> disco ⇒ Asociado a cada página <strong>de</strong> un proceso hay una entrada en la tabla<br />

que <strong>de</strong>scribe la copia en el disco <strong>de</strong> la página virtual.<br />

• Tabla <strong>de</strong> marcos <strong>de</strong> página (pfdata) ⇒ Describe cada marca <strong>de</strong> la memoria real y está in<strong>de</strong>xada por el<br />

número <strong>de</strong> marco.<br />

• Tabla <strong>de</strong> uso <strong>de</strong> swap ⇒ Existe una tabla <strong>de</strong> uso <strong>de</strong> swap por cada dispositivo <strong>de</strong> intercambio, con una<br />

entrada para cada página en dicho dispositivo.<br />

El kernel asigna espacio para pfdata una vez durante la vida <strong>de</strong>l sistema, aunque para las otras estructuras le<br />

asigna y <strong>de</strong>sasigna espacio dinámicamente. Cada región contiene tablas <strong>de</strong> páginas para acce<strong>de</strong>r a memoria<br />

física.<br />

Tabla <strong>de</strong> Páginas.<br />

• Entrada <strong>de</strong> la tabla <strong>de</strong> páginas: (1) Número <strong>de</strong> marco <strong>de</strong> página, es la dirección física <strong>de</strong> la página<br />

(marco en la memoria real); (2) Protección, que indican si procesos pue<strong>de</strong>n leer, escribir o ejecutar<br />

página (indica si está permitida la operación <strong>de</strong> escritura); (3) Válido, que indica si la página está en la<br />

memoria principal; (4) Referencia, que indica si un proceso referenció recientemente la página (se<br />

pone a cero cuando la página se carga por primera vez y pue<strong>de</strong> ser restaurado periódicamente por el<br />

algoritmo <strong>de</strong> reemplazo <strong>de</strong> página); (5) Modificado, que indica si proceso modificó recientemente<br />

contenido <strong>de</strong> la página; (6) Copia en escritura, usado en fork, indica que el kernel <strong>de</strong>be crear nueva<br />

copia <strong>de</strong> la página cuando un proceso modifique su contenido (activo cuando más <strong>de</strong> un proceso<br />

comparte la página). (7) Edad, indica cuánto hace que la página pertenece al Working Set <strong>de</strong>l proceso<br />

(indica cuánto tiempo ha estado la página en memoria sin ser referenciada).<br />

• El kernel manipula: válido, copia en escritura y edad. El hardware activa: referencia y modificado<br />

<strong>de</strong> cada entrada <strong>de</strong> la tabla <strong>de</strong> páginas.<br />

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

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

Saved successfully!

Ooh no, something went wrong!