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