Memoria virtual:
La memoria virtual es una técnica utilizada en los sistemas operativos que permite que un programa o proceso acceda a más memoria de la que está físicamente disponible en la memoria RAM. Proporciona un espacio de direcciones lógicas más grande que el espacio de direcciones físicas, lo que permite a los programas ejecutarse como si tuvieran acceso a una gran cantidad de memoria.
La memoria virtual se implementa mediante el uso de una combinación de memoria física (RAM) y almacenamiento secundario (como un disco duro). El sistema operativo asigna y gestiona las páginas de memoria en la RAM según las necesidades de los programas en ejecución. Las páginas de memoria menos utilizadas se mueven al almacenamiento secundario, liberando espacio en la RAM para las páginas más activas.
Espacio virtual de direcciones:
El espacio virtual de direcciones es el rango de direcciones lógicas que un programa o proceso puede utilizar. Cada proceso tiene su propio espacio virtual de direcciones, que va desde 0 hasta un límite máximo determinado por la arquitectura del sistema operativo.
El espacio virtual de direcciones se divide en páginas de tamaño fijo. Estas páginas se asignan y gestionan en la memoria física o en el almacenamiento secundario según las necesidades del proceso. El espacio virtual de direcciones proporciona una abstracción que permite a cada proceso tener la ilusión de tener un rango continuo y grande de memoria disponible, independientemente de las limitaciones físicas.
Bibliotecas compartidas en memoria virtual:
Las bibliotecas compartidas, también conocidas como bibliotecas dinámicas o DLL (Dynamic Link Libraries), son archivos que contienen código y datos que pueden ser utilizados por varios programas o procesos al mismo tiempo. Estas bibliotecas se cargan en memoria una vez y pueden ser compartidas por múltiples procesos, lo que reduce la duplicación de código en el sistema.
En el contexto de la memoria virtual, las bibliotecas compartidas se mapean en el espacio virtual de direcciones de los procesos que las utilizan. Cada proceso puede acceder a las funciones y datos de la biblioteca compartida como si estuvieran presentes en su propio espacio de direcciones, aunque físicamente solo existe una copia en la memoria.
Paginación por demanda:
La paginación por demanda es una técnica utilizada en la gestión de la memoria virtual para asignar páginas de memoria física a medida que se necesitan. En lugar de cargar todas las páginas en la RAM al inicio, el sistema operativo carga solo las páginas que se requieren en el momento oportuno.
Cuando un proceso intenta acceder a una página de memoria que aún no se ha cargado en la RAM, se produce un fallo de página. En ese momento, el sistema operativo busca la página en el almacenamiento secundario y la carga en la RAM. Esto permite un uso más eficiente de la memoria física, ya que solo se cargan en la RAM las páginas que realmente se necesitan, reduciendo el tiempo de inicio y el consumo de recursos.
La paginación por demanda también permite que el espacio virtual de direcciones de un proceso sea mayor que la cantidad de memoria física disponible, ya que solo se cargan en la RAM las páginas activamente utilizadas por el proceso.