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

MMU copia contador <strong>de</strong>l sistema a entrada referenciada; y el reemplazo sería para la página con contador<br />

más bajo.<br />

Buffering <strong>de</strong> páginas. Mantiene una lista <strong>de</strong> marcos <strong>de</strong> página libres. (1) Si falta <strong>de</strong> página ⇒ siempre usa<br />

marco <strong>de</strong> página libre (no reemplazo); (2) Si número <strong>de</strong> marcos libres < umbral ⇒ “<strong>de</strong>monio <strong>de</strong> paginación”<br />

aplica repetidamente el algoritmo <strong>de</strong> reemplazo: páginas no modificadas pasan a lista <strong>de</strong> marcos <strong>de</strong> páginas<br />

libres y páginas modificadas pasan a lista <strong>de</strong> marcos <strong>de</strong> páginas modificados (cuando se escriban a disco<br />

pasan a lista <strong>de</strong> libres y pue<strong>de</strong>n escribirse en tandas (mejor rendimiento)); (3) Si se referencia una página<br />

mientras está en estas listas ⇒ falta <strong>de</strong> página: dicha página la recupera directamente <strong>de</strong> la lista (no E/ S).<br />

Pue<strong>de</strong> darse el caso <strong>de</strong> que haya páginas marcadas como “no reemplazables” ⇒ se aplica a páginas <strong>de</strong>l<br />

propio sistema operativo, también se aplica mientras se hace DMA sobre una página. Algunos sistemas<br />

operativos ofrecen a aplicaciones un servicio para fijar en memoria una o más páginas, pudiendo afectar<br />

positivamente al rendimiento <strong>de</strong>l sistema.<br />

<strong>3.</strong>2.6. Políticas <strong>de</strong> Asignación <strong>de</strong> Marcos <strong>de</strong> Página.<br />

Estrategia <strong>de</strong> asignación fija ⇒ Número <strong>de</strong> marcos asignados al proceso (conjunto resi<strong>de</strong>nte) es constante.<br />

Pue<strong>de</strong> <strong>de</strong>pen<strong>de</strong>r <strong>de</strong> características <strong>de</strong>l proceso (tamaño, prioridad, etc.). No se adapta a las diferentes<br />

necesida<strong>de</strong>s <strong>de</strong> memoria <strong>de</strong> un proceso a lo largo <strong>de</strong> su ejecución. Comportamiento <strong>de</strong>l procesos es<br />

relativamente pre<strong>de</strong>cible. Sólo tiene sentido usar reemplazo local. La arquitectura <strong>de</strong> la máquina impone un<br />

número mínimo <strong>de</strong> marcos <strong>de</strong> página que <strong>de</strong>be asignarse a un proceso (por ejemplo, la instrucción “move”<br />

requiere un mínimo <strong>de</strong> 3 marcos <strong>de</strong> página).<br />

Estrategia <strong>de</strong> asignación dinámica ⇒ Número <strong>de</strong> marcos varía <strong>de</strong>pendiendo <strong>de</strong> comportamiento <strong>de</strong>l proceso<br />

(y posiblemente <strong>de</strong> los otros procesos en el sistema). Asignación dinámica + reemplazo local → el proceso va<br />

aumentando o disminuyendo su conjunto resi<strong>de</strong>nte <strong>de</strong>pendiendo <strong>de</strong> su comportamiento (distintas fases <strong>de</strong><br />

ejecución <strong>de</strong>l programa) y tiene un comportamiento relativamente pre<strong>de</strong>cible. Asignación dinámica +<br />

reemplazo global → los procesos se quitan las páginas entre ellos, teniendo un comportamiento difícilmente<br />

pre<strong>de</strong>cible.<br />

<strong>3.</strong>2.7. Operaciones sobre las Regiones <strong>de</strong> un Proceso.<br />

Como ya sabemos, el espacio <strong>de</strong> direccionamiento <strong>de</strong> un proceso se compone <strong>de</strong> varias regiones <strong>de</strong> memoria<br />

y cada región <strong>de</strong> memoria se caracteriza por varios atributos: (1) sus direcciones <strong>de</strong> inicio y fin; (2) los<br />

<strong>de</strong>rechos <strong>de</strong> acceso que tiene asociados; (3) el objeto asociado (por ejemplo, un archivo ejecutable que<br />

contiene el código ejecutado por el proceso). Las regiones <strong>de</strong> memoria contenidas en el espacio <strong>de</strong><br />

direccionamiento <strong>de</strong> un proceso pue<strong>de</strong>n <strong>de</strong>terminarse mostrando el contenido <strong>de</strong>l archivo maps, situado en el<br />

directorio <strong>de</strong> cada proceso en el sistema <strong>de</strong> archivos /proc.<br />

Las operaciones que el kernel <strong>de</strong>l sistema operativo pue<strong>de</strong> realizar sobre las regiones <strong>de</strong> memoria <strong>de</strong> un<br />

proceso son las siguientes: (1) Creación <strong>de</strong> región ⇒ Al crear mapa inicial o por solicitud posterior; (2)<br />

Liberación <strong>de</strong> región ⇒ Al terminar el proceso o por solicitud posterior; (3) Cambio <strong>de</strong> tamaño <strong>de</strong> región ⇒<br />

Del heap o <strong>de</strong> la pila (stack); (4) Duplicado <strong>de</strong> región ⇒ Operación requerida por el servicio fork.<br />

<strong>3.</strong><strong>3.</strong> GESTIÓN <strong>DE</strong> <strong>MEMORIA</strong> EN UNIX<br />

Puesto que UNIX se i<strong>de</strong>ó para ser in<strong>de</strong>pendiente <strong>de</strong> la máquina, su esquema <strong>de</strong> gestión <strong>de</strong> memoria varia <strong>de</strong><br />

un sistema a otro. Las primeras versiones <strong>de</strong> UNIX simplemente empleaban particiones variables sin ningún<br />

esquema <strong>de</strong> memoria virtual. Las implementaciones actuales, incluida SVR4, utilizan memoria virtual<br />

paginada. En SVR4 existen actualmente dos esquemas <strong>de</strong> gestión <strong>de</strong> memoria separados. El sistema <strong>de</strong><br />

paginación ofrece una memoria virtual que asigna marcos <strong>de</strong> página en la memoria principal a los procesos y<br />

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

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

Saved successfully!

Ooh no, something went wrong!