Espacio de intercambio

Espacio de intercambio

Espacio de intercambio

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".

Contenido

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. Mientras no haga falta, el proceso extraído de memoria puede quedarse en el disco, ya que ahí no gasta 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.

Implementación

En realidad, puede ser que no toda la imagen del proceso se lleve al disco. De esta forma, se mantienen algunas partes en memoria principal, mientras que otras permanecen en el almacenamiento secundario.

Si los algoritmos utilizados en el intercambio de páginas están mal diseñados o hay poca memoria disponible, se puede dar un problema conocido como hiperpaginación, o en inglés thrashing. Los síntomas son un atasco y sobrecarga en el sistema, y la causa es que los procesos continuamente están siendo pasados de memoria física a área de intercambio (porque hace falta memoria para correr otro proceso) y luego otra vez a memoria (porque han de ejecutarse).

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; fuente: [1])
  • 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%

Otros dispositivos

Las tarjetas de vídeo incluyen una memoria, que en los modelos actuales puede ser de cientos de megabytes; además, es muy rápida, y no se está usando siempre.

Por eso no es extraño que ya se haya intentado usar esta memoria como dispositivo de intercambio (y como almacenamiento genérico). En GNU/Linux se puede hacer esto mediante MTD ("Memory Technology Device"): véase [2] (en inglés) para un tutorial que explica cómo usar la memoria de una tarjeta nVidia.

También se ha hecho con la memoria de una tarjeta de sonido, usando un controlador específico que la convierte en un dispositivo de bloque. Más información en [3] y [4] (de 2000, en inglés).

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.

Configuración

Desde el panel de control "sistema", luego en "opciones avanzadas", rendimiento y luego en la opcion "configuración" se puede configurar el tamaño del fichero de paginación usado por Windows.(windows XP) En Windows 95, la opción está en Panel de control - Sistema - Rendimiento - Memoria virtual.

Hay una opción para establecer un tamaño fijo para el fichero, pero no es recomendable, porque a veces (cuando se acaba la memoria física y un programa necesita más) hace falta aumentar el tamaño del fichero de intercambio, y si no se puede, no habrá memoria extra para los programas. Si los programas (o el propio Windows) no pueden conseguir la memoria que necesitan, probablemente den fallos extraños.

Se puede controlar el tamaño mínimo y el máximo para el fichero. Mientras que aumentar mucho el máximo no hará que funcione mejor, aumentar el mínimo sí que puede ayudar en sistemas que tengan poca memoria RAM.

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.

Programas

Para crear un área de intercambio, se usa la orden mkswap nombre, donde nombre puede ser un fichero o la ruta a un dispositivo de disco (por ejemplo /dev/hda1). Esto prepara el dispositivo y le pone la cabecera apropiada.

Si lo que se está usando es un fichero swap, el contenido puede ser cualquiera (se destruirá), y lo que importa es el tamaño. Pero además, mkswap tiene un requisito especial: el fichero no ha de tener agujeros. Quiere decir que los bytes del fichero han de estar realmente en el disco. Esto no pasa siempre: si se usa cp /dev/zero nuevo, el sistema de ficheros probablemente vea que se trata de un fichero disperso (tiene regiones muy grandes todas con nulos), y no lo grabará realmente en el disco. Al usar algo como dd if=/dev/zero of=nuevo bs=1024 count=65536 se le fuerza a que escriba todos los bloques, sin agujeros.

El dispositivo de intercambio se activa con la orden swapon nombre y se desactiva con swapoff nombre. En el fichero /proc/swaps se muestra una lista de los dispositivos de intercambio activos, y en /etc/fstab se suelen añadir las particiones swap que se activan al inicio del sistema.

Con el programa free se puede ver, además de cuánta RAM queda libre, el tamaño total de las áreas de intercambio, cuán de llenas están, y cuánta memoria (RAM) se está usando como caché.

¿Hace falta swap?

La memoria de intercambio sirve como RAM adicional. Entonces, en un ordenador que ya tenga mucha memoria RAM, ¿hace falta swap?

Aunque puede funcionar bien sin tener ningún área de intercambio, es muy recomendable crearla. La razón es que siempre es bueno quitar de la memoria los procesos poco usados, ya que eso permite usar la RAM para otras tareas, como por ejemplo la memoria caché de las operaciones de entrada/salida, como el acceso al disco.

Un ejemplo: supongamos que un usuario abre en un programa una imagen muy grande, que le consume el 80% de la memoria RAM, y después, sin cerrarla, se pone a hacer varias búsquedas de ficheros por su disco duro. Si no se puede llevar a disco ese proceso grande, quiere decir que ha de mantenerse en memoria física; por tanto, las búsquedas sólo tendrán menos del 20% de la memoria RAM para hacer de caché, y por eso serán poco eficientes. Con swap, se podría llevar a disco el proceso grande (o al menos una parte), hacer esas búsquedas usando toda la RAM como caché, y luego restaurar el proceso, si hace falta.

Hay algunos procesos que, debido a la función que realizan, están poco activos, y puede ser recomendable que estén en el área de intercambio para liberar un poco la memoria RAM. Por ejemplo, un servidor SSH (mecanismo de control remoto del ordenador) tiene que estar siempre activo para atender las posibles peticiones, pero sólo empezará a trabajar de verdad cuando un usuario se conecte.

Véase una discusión más larga (en inglés) sobre si es necesaria o no la swap: Is swap necessary?

Tamaño del espacio de intercambio

Ésta es una discusión típica entre los administradores de sistemas, y una duda común que sale durante la instalación de un sistema Linux (o cualquier UNIX).

Hay una regla muy conocida que dice que "la swap ha de ser el doble de la memoria RAM instalada", pero esto ya no es válido hoy en día. Esta regla funcionaba bien antes, cuando siempre se compraba menos RAM de la que realmente se necesitaba, porque era muy cara. Tener 3 veces más memoria que la física iba bien para la mayoría de usuarios. Pero en un ordenador nuevo que tenga 1 Gb de RAM, no será necesario gastar 2 Gb en una partición de swap, porque probablemente no se usará.

La regla habitual usada para decidir el tamaño del área de intercambio es "pensar en cuánto querrías tener y en cuánto tienes, y poner como swap la diferencia". Por ejemplo, si un usuario necesita abrir ficheros de hasta 700 Mb, pero sólo tiene 256 Mb de RAM, entonces lo que le falta (aprox. 500 Mb) se ha de poner como swap, como mínimo. Más swap puede ir bien, pero no será muy usada.

Si el ordenador ha de soportar mucha carga, la partición ha de ser mínimamente grande; se recomienda algo más de 128 Mb (en [5] hay más ejemplos sobre esto).

Enlaces externos

Obtenido de "Espacio de intercambio"

Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • Espacio — Saltar a navegación, búsqueda Espacio (del latín spatium) se refiere: Especialmente al espacio físico, en el que se ubican los objetos sensibles; y la extensión que contiene toda la materia existente; la distancia entre dos cuerpos; la distancia… …   Wikipedia Español

  • Espacio (desambiguación) — Saltar a navegación, búsqueda Espacio es un concepto abstracto utilizado en matemática, física, filosofía, informática, y otras ciencias. El término espacio, también puede referirse a: En astronomía y exploración espacial: Espacio exterior,… …   Wikipedia Español

  • espacio muerto — espacio que queda después del cierre incompleto de heridas quirúrgicas y de otros tipos, lo cual permite la acumulación de sangre o suero con la consiguiente demora de la curación. Espacio del sistema respiratorio donde no hay intercambio de… …   Diccionario médico

  • Espacio entre sofá y tele — Saltar a navegación, búsqueda El espacio entre el sofá y la tele ha estado desde siempre íntimamente ligado al espacio de la zona de estar comedor de la vivienda. Este espacio, a su vez, es la parte esencial de la vivienda, de forma que no se… …   Wikipedia Español

  • Espacio Europeo de Educación Superior — Saltar a navegación, búsqueda Países firmantes de la Declaración de Bolonia. En rojo aparecen los países rechazados. Para el proceso total que comprende aspectos más generales de la reforma universitaria y no sólo los de convergencia, véase… …   Wikipedia Español

  • Espacio de libertad, seguridad y justicia de la UE — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Centro Parque Espacio Queule — Saltar a navegación, búsqueda El Espacio Queule es un tipo de Parque Natural o Parque Nacional chileno que constituye un proyecto a ser desarrollado en la localidad de Queule, Comuna de Tolten, IX Región de Chile localizada al Sur Poniente y a la …   Wikipedia Español

  • Redes de intercambio de semillas — Saltar a navegación, búsqueda Las Redes de Intercambio de Semillas, crean alianzas entre pequeños agricultores, ecológicos y tradicionales, técnicos y toda persona implicada en la conservación de variedades locales y tradicionales de semillas.… …   Wikipedia Español

  • Star Trek: espacio profundo nueve — Para ver otros usos de Star Trek, ver Star Trek (desambiguación). Star Trek: Deep Space Nine Título Star Trek: Espacio Profundo Nueve Viaje a las Estrellas: Abismo Espacial Nueve Género Ciencia Ficción Creado por Star Trek Gene Roddenberry Star… …   Wikipedia Español

  • Agencia Chilena del Espacio — Logo de la ACE Información Jurisdicción Gobierno de Chile …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”