Espacio de intercambio

Espacio de intercambio
Información sobre la plantilla
Paginacion2.jpg
Concepto:Zona del disco que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física.

En informática, el espacio de intercambio es una zona del disco (un fichero o partición) que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física. A este espacio se le suele llamar swap, del inglés "intercambiar".

Un espacio de intercambio, puede considerarse como un espacio del disco duro que nosotros asignamos al sitema operativo para que este lo utilice como una ampliación a la memoria RAM existente y albergar así datos que no caben en la memoria RAM. Obviamente el disco duro es siempre mucho más lento que la memoria RAM, por lo tanto cuanta menos memoria de intercambio utilize el sistema, mayor será la prestación del mismo.

El espacio de intercambio puede ser bien un archivo, bien una partición primaria o una unidad lógica. Si bien la primera opción nos evita asignar un partición o unidad lógica para actuar exclusivamento como swap, la segunda opción es siempre la más recomendable, en cuanto a aspectos de eficiencia se refiere.

Descripción

La mayoría de los sistemas operativos modernos poseen un mecanismo llamado memoria virtual, que permite hacer creer a los programas que tienen más memoria que la disponible realmente; por ejemplo, 4 Gb en un ordenador de 32 bits. Como en realidad no se tiene físicamente toda esa memoria, algunos procesos no podrán ser ubicados en la memoria RAM. En este caso es cuando es útil el espacio de intercambio: el sistema operativo puede buscar un proceso poco activo, y moverlo al área de intercambio (el disco duro) y de esa forma liberar la memoria principal para cargar otros procesos. M ientras no haga falta, el proceso extraído de memoria puede quedarse en el disco, ya que ahí no utiliza memoria física. Cuando sea necesario, el sistema vuelve a hacer un intercambio, pasándolo del disco a memoria RAM . Es un proceso lento (comparado con usar sólo la memoria RAM ), pero permite dar la impresión de que hay más memoria disponible.

Intercambio

El objetivo del intercambio es dar cabida a la ejecución de mas aplicaciones de las que pueden residir simultáneamente en la memoria del sistema:

Consiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario , para cargar otro previamente almacenado, no permite a un proceso utilizar mas memoria RAM de la que realmente existe en el sistema. Esta técnica puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque éste solo vaya a ejecutar una pequeña porción del código.

Durante el intercambio un proceso puede ser sacado temporalmente de memoria y llevado a un lugar especial del disco y posteriormente vuelto a memoria y continuada su ejecución.. El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias de las imágenes de meoria de todos los usuarios.

Asignacion Contigua

La memoria principal normalmente se divide en dos particiones:

  • Sistema operativo residente, normalmente en la parte baja de memoria con los vectores de interrupción.
  • Procesos de usuario en la parte alta.

Asignación de partición simple

Puede utilizarse un esquema de registro de relocalización y limite para proteger un proceso de usuario de otro y de cambios del código y datos del sistema operativo. El registro de relocalización contiene la dirección contiene la dirección física mas pequeña; el registro limite contiene el rango de las direcciones lógicas cada dirección lógica debe ser menor al registro limite

Asignación de particiones múltiples

Bloques de distintos tamaños están distribuidos en memoria , cuando llega un proceso se le asigna un hueco suficientemente grande para acomodarle. El sistema operativo debe tener información sobre:

1. Particiones asignadas 2. Particiones libres (huecos)

Asignación de partición dinámica

El proceso de compactación es una instancia particular del problema de asignación de memoria dinámica, el cual es el cómo satisfacer una necesidad de tamaño n con una lista de huecos libres. Existen muchas soluciones para el problema. El conjunto de huecos es analizado para determinar cuál hueco es el más indicado para asignarse. Las estrategias más comunes para asignar algún hueco de la tabla son:

  • Primer ajuste: Consiste en asignar el primer hueco con capacidad suficiente. La búsqueda puede iniciar ya sea al inicio o al final del conjunto de huecos o en donde terminó la última búsqueda. La búsqueda termina al encontrar un hueco lo suficientemente grande.
  • Mejor ajuste: Busca asignar el espacio más pequeño de los espacios con capacidad suficiente. La búsqueda se debe de realizar en toda la tabla, a menos que la tabla esté ordenada por tamaño. Esta estrategia produce el menor desperdicio de memoria posible.
  • Peor ajuste: Asigna el hueco más grande. Una vez más, se debe de buscar en toda la tabla de huecos a menos que esté organizada por tamaño. Esta estrategia produce los huecos de sobra más grandes, los cuales pudieran ser de más uso si llegan procesos de tamaño mediano que quepan en ellos.

Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son mejores que el peor ajuste en cuanto a minimizar tanto el tiempo del almacenamiento. Ni el primer o el mejor ajuste es claramente el mejor en términos de uso de espacio, pero por lo general el primer ajuste es más rápido.

Posibles ubicaciones

En los sistemas operativos se puede usar como área de intercambio un fichero o una partición (los dos son en realidad parte de un disco duro o almacenamiento secundario).

Fichero de intercambio

Un fichero en blanco puede prepararse para ser usado como área de intercambio. Esto tiene una gran ventaja:

  • Es fácil de crear, borrar, ampliar o reducir, según se crea necesario (a diferencia de una partición)

Pero también alguna desventaja:

  • Le afecta la fragmentación, ya que se encuentra dentro de un sistema de ficheros. El problema de la fragmentación no es grave, ya que el espacio de intercambio no siempre es accedido de forma secuencial, sino directa (en oposición a la secuencial).

Partición de intercambio

También se puede dedicar una partición entera del disco duro (o el disco completo) como área de intercambio. Ventajas:

  • Se puede conseguir mejor rendimiento si se coloca la partición en la zona más rápida del disco, que es al principio (los cilindros exteriores del disco, por donde pasan más datos a cada vuelta;
  • No hay problemas de fragmentación
  • No hay que usar ningún sistema de ficheros en concreto

Tiene pocas desventajas:

  • Crear una partición es un proceso algo difícil; de todas formas, si se elige bien el tamaño de la partición, no hará falta ningún cambio en el futuro
  • La partición siempre ocupará el mismo espacio, aunque no se esté usando al 100%

Uso en sistemas operativos

Cada sistema operativo gestiona la memoria virtual de forma distinta; por tanto el intercambio depende de la implementación de los algoritmos de intercambio.

En Windows

Microsoft Windows usa un fichero de intercambio desde su versión 3.1 (1992), la primera en usar memoria virtual. Lo implementa mediante un fichero situado en el directorio raíz (C:\) o en el de sistema (C:\WINDOWS\), y tiene por nombre:

  • 386SPART.PAR en Windows 3.1
  • WIN386.SWP en Windows 3.11, 95 y 98
  • pagefile.sys en Windows NT y sucesores

Este fichero tiene un tamaño variable (depende de la configuración) y no debe ser movido o borrado.

En GNU/Linux

En GNU/Linux se suele usar con una partición de intercambio, aunque también permite usar ficheros de intercambio. Se pueden asignar varios dispositivos de intercambio, incluso de diferentes tipos, y asignar a cada uno una prioridad. Si la prioridad es la misma en varios, las páginas de memoria se distribuirán como en un RAID de nivel 0. Esto permite que los dispositivos de swap se usen en paralelo, cosa que puede aumentar la eficacia, sobre todo si están en discos independientes.

Enlaces internos

Enlaces externos