ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Swapping


Enviado por   •  20 de Noviembre de 2014  •  1.812 Palabras (8 Páginas)  •  252 Visitas

Página 1 de 8

Swapping (del inglés "swap", que significa intercambiar) es mover un proceso o parte de él temporalmente desde la memoria principal a un dispositivo secundario de almacenamiento (memoria de apoyo) para luego devolverlo a la memoria principal. El propósito de esta técnica es que el sistema operativo sea capaz de asignar más memoria de la que tiene físicamente. De esta forma, en el caso que algún proceso requiera de memoria y ya esté toda asignada o no haya suficiente, el kernel se preocupa de intercambiar páginas de memoria desde y hacia la memoria de apoyo para hacerle espacio.

La memoria de apoyo debiera ser rápida y de tamaño suficiente para almacenar las copias de imágenes de memoria de los procesos, también debe proporcionar acceso directo a estas imágenes. El disco duro es usualmente quien funciona como memoria de apoyo.

Todos los sistemas operativos actuales cuentan con alguna versión de swapping (Windows, Linux y UNIX). El sistema mantiene una cola de procesos en estado ready que están listos para ser ejecutados y cuyas imágenes de memoria se encuentran en el disco.

Ventajas

Permite correr una mayor cantidad de programas y de estar bien configurada, puede mejorar el rendimiento de los procesos ejecutados.

Desventajas

Un problema no menor del swapping reside en los tiempos necesarios para realizar las copias a la memoria de apoyo ya que normalmente son discos duros y es muy costoso en términos de tiempo estar constantemente copiando y leyendo procesos (varios órdenes de magnitud), cuando estos tiempos se hacen muy largos, pueden terminar haciendo más lenta la ejecución del programa. Este problema es conocido como "thrashing" y la forma más simple de solucionar es agregar más memoria o bien, mejorar el diseño de las aplicaciones para que disminuyan su consumo.

Otra desventaja es la problemática de donde almacenar los bloques transferidos que se sacan de la memoria principal, para solucionar este problema es necesario referirse al y prioridad del proceso, si se encuentra activo constantemente y tiene alta prioridad se deja en memoria, si el proceso presenta grandes lapsos de inactividad es conveniente pasarlo a disco duro, y si está en un punto intermedio puede convenir traspasarlo hacia el buffer del sistema operativo.

Uso en sistemas operativos

Windows:

La memoria virtual se introdujo en Windows desde la versión 3.1 en 1991. El sistema operativo crea un archivo oculto y lo usa como memoria virtual. Generalmente se encuentra en el directorio raíz, pero puede estar en el directorio WINDOWS. Su tamaño depende de la configuración que el usuario escoja, el valor por defecto es 1,5 veces la cantidad de memoria física. Cabe agregar que el cambiar muchas veces el tamaño del archivo swap puede hacerlo mas propenso a fragmentarse, lo que disminuye el rendimiento (este archivo no se fragmenta con las herramientas de Windows como ntfsdefrag). El archivo viene protegido para que no pueda ser eliminado o movido, si se sobrepasa esta restricción, el sistema dejará de funcionar al reiniciar, cayendo en una BSoD (Blue Screen of Death).

Linux:

Aquí es posible designar una partición entera del disco duro como memoria virtual. Aunque es posible usar también un archivo, se recomienda asignar una partición separada ya que disminuye la probabilidad de fragmentación. Una área de swap es creada al ejecutar el comando "mkswap filename/device". Para aumentar el rendimiento del swapping, se recomienda también dejar la partición al comienzo del disco duro, ya que las transferencias son ligeramente mas rápidas que al final del disco.

Roll out, roll in

Es una variante del swapping que se usa para algoritmos de itineración basados en proridades. La idea consiste en remover de la memoria principal los procesos con baja prioridad ("rolled out") para hacer espacio y ejecutar procesos con prioridad más alta ("rolled in").

Esquemas de asignación

Asignación Contigua

Asignación contigua es cuando un objeto lógico es colocado en un conjunto de posiciones de memoria con direcciones consecutivas de manera obligada.

Un espacio de memoria se divide por lo general en dos tipos: una parte orientada y destinada en el Sistema Operativo y otra destinada a proceso de usuario

Asignación con una sola partición

Esta asignación se carga un solo proceso a la vez. Toda la memoria del ordenadora excepcion de una pequeña parte reservada para el Sistema Operativo esta disponible para una aplicacion individual Estos procesos se conocen como procesos transitorios. El Sistema Operativo necesita tener conocimiento de su primera y ultima posición disponible para la asignación de procesos transitorios. Cuando el proceso transitorio termina, el Sistema Operativo puede cargar otro para que se ejecute. Dentro de las responsabilidades del sistema operativo para esta asignación es asegurarse que el tamaño de la imagen este dentro de los limites de memoria disponible, sino el proceso no se cargara. MS-DOS es un ejemplo de un sistema que asigna memoria de esta manera.

Asignación con múltiples particiones

La asignación con múltiples asignaciones consiste en ejecutar varios procesos a la vez en memoria. La idea central consiste en dividir la memoria en varias particiones normalmente contiguas, ubicando un proceso en cada partición. Cada partición puede contener toda la información para un trabajo o tarea específica. Esta asignación requiere de algún soporte de hardware para evitar que los trabajos interfieran unos con otros o con el Sistema Operativo. La división puede llevarse de manera estática y dinámica

Asignación de Memoria con particiones estáticas

.

Asignación Estática La asignación estática divide a la memoria principal en un conjunto de regiones no sobrepuestas llamadas particiones. Estas particiones se efectúan en algún momento antes de ejecutar los programas de usuario y permanecen siempre fijas. El numero de participaciones distintas representa el grado de multiprogramación del sistema. Si un proceso tiene un tamaño menor o igual a la participación puede ser cargado. En el caso contrario el programador debe diseñar la aplicación con soporte para overlays. Si todas las particiones están ocupadas el Sistema Operativo puede hacer un intercambio de un proceso fuera

...

Descargar como (para miembros actualizados)  txt (11.8 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com