Вы находитесь на странице: 1из 2

Administración de memoria del sistema operativo Solaris

El esquema de administración de memoria de Solaris.


Solaris 10 es un sistema operativo de memoria virtual. Las ventajas de un manejo virtual de la memoria
son:

• Presenta un modelo simple de manipulación de la memoria a los programadores de aplicaciones,


quienes no requieren conocer como está organizada la memoria física
• Permite que los procesos “vean” rangos lineales de bytes en sus espacios de direcciones,
independientemente de la fragmentación física que pueda tener la memoria real
• Proporciona un modelo de programación de aplicaciones con un tamaño de memoria disponible
muchas veces mayor a la memoria existente, al habilitar el uso de almacenamiento secundario
como contenedor de secciones de memoria que no caben en la memoria físicamente disponible

En este esquema de manejo de memoria, la memoria física (RAM) es dividida en pedazos de tamaño fijo
llamadas páginas. El tamaño de una página puede variar dependiendo de la plataforma, por ejemplo, el
tamaño de página típico de un sistema UltraSPARC es de 8 KB. Cada página está asociada con un
archivo y un offset dentro del mismo; ambos datos identifican el “backing store” de la página. Se conoce
como “backing store” a la ubicación en almacenamiento secundario a la cual el contenido de la página
debe ser migrado cuando la memoria física requiera ser tomada para otro uso; análogamente, indica la
ubicación de la cual debe ser leído su contenido cuando se requiera que esté nuevamente en memoria. El
mecanismo que ejecuta ambas acciones es conocido como paginación.

Para acceder a la memoria física, Solaris implementa mecanismos de traslación de la memoria virtual a la
memoria física. La figura 1 muestra la estructura de estos mecanismos
Espacio de direcciones virtual de un proceso
El concepto de paginación se complementa con el de swapping. El swapping permite definir un espacio
de direcciones virtual más grande que el espacio de direcciones físico. Cuando la demanda de memoria
supera la cantidad de memoria física, las páginas de memoria menos recientemente usadas del proceso
con mayor tiempo de inactividad son “sacadas” al llamado espacio de swap, que es un área de disco
definida para tal fin. De esta manera se libera memoria para otros procesos.

Se conoce como espacio de direcciones virtual de un proceso al rango de direcciones de memoria que son
“presentadas” al proceso como su ambiente. Este espacio de direcciones virtual tiene las siguientes
partes , que se ilustran en la figura 2

• Texto ejecutable. Contiene el conjunto de instrucciones ejecutables del archivo binario asociado
al proceso. Es mapeado del mencionado archivo binario como sólo lectura, con permisología de
ejecución.
• Data ejecutable. Contiene las variables inicializadas en el proceso ejecutable, es mapeado como
lectura/escritura/privado. El mapeo privado significa que los cambios hechos en esta parte de la
memoria no se reflejen en el espacio de direcciones de otros procesos mapeados del mismo
ejecutable.
• Espacio de heap. Espacio de memoria asignado por el system call malloc(). Es utilizado para las
estructuras de datos dinámicas del proceso; a medida que estas crecen, el heap también lo hace.
• Stack. Espacio de memoria mapeado como lectura/escritura. El mismo contiene valores de
argumentos de funciones y variables locales. Como el heap, va creciendo contra demanda.

Вам также может понравиться