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