Consultar ensayos de calidad


La Memoria Virtual, proceso de paginación, estrategias de administración de la memoria virtual



La Memoria Virtual
La Memoria Virtual es un archivo que Windows usa como una extensión de la memoria ram. Este archivo se llama “pagefile.sys” y lo encuentras en la raíz del disco C
La Memoria Virtual aparece unida a los sistemas operativos modernos. Permite simular una ram de mayor tamaño que la que tienes instalada en tu equipo.
Uso en los sistemas operativos modernos
En cada versión de tu sistema operativo, como es gestionado esta memoria y los algoritmos que la gobiernan son mejorados. Sin embargo, el mayor uso de interfaces graficas y herramientas cada vez mas sofisticadas hace que los sistemas sean unos devoradores de RAM.


Una de las razones por las que un sistema mejora su velocidad usando un disco SSD es debido a esta funcionalidad. Ten siempre en cuenta que una mejora de velocidad de acceso a los datos, aunque no sea espectacular, puede ayudar mucho a un equipo con limitaciones de memoria ya que todo el sistema se puede enfrentar a bloqueos constantes.
Paginación
Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de pagina. Los programas se dividen en unidades lógicas, denominadas paginas, que tienen el mismo tamaño que los marcos de paginas. De esta forma, se puede cargar una pagina de información en cualquier marco de pagina.

Proceso de paginación
Digamos que tienes abiertos los programas 1, 2, 3 y 4, y no tienes mas espacio en tu memoria RAM.
Decides abrir elprograma 5.
Y vamos a suponer que el programa 3 no lo estas usando. Entonces, Windows toma el programa 3 y lo mueve a la memoria virtual, o sea, lo guarda en el archivo “pagefile.sys”. Así, hace lugar en la memoria RAM para el programa 5.
Ahora, quieres usar nuevamente el programa 3, entonces haces click en la ventana de ese programa.
Windows toma otro programa que no esta activo, digamos el 1, y lo manda a la memoria virtual. Toma el programa 3 y lo mueve a la memoria RAM.
Este proceso de enviar y sacar de la memoria virtual, se llama “Paginación”.
Es por este proceso, que a veces, cuando activas nuevamente un programa que no estabas usando, tarda unos segundos en responder.
Paginación por demanda
Las paginas de un proceso deben cargarse por demanda. No se debe transferir ninguna pagina al almacenamiento secundario al primado hasta que un proceso en ejecución haga explícitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia
Los resultados de la teoría de la computabilidad, específica mente el problema de la detención (Mi67) (He77), indican que no se puede predecir con precisión la trayectoria de ejecución que seguira un programa. Así pues, cualquier intento de cargar paginas con anticipación a su uso puede hacer que se carguen las paginas equivocadas.
La paginación por demanda garantiza que las únicas paginas que se transfieren al almacenamiento principal son aquéllas que requieren los procesos.
El trabajo extra requerido para decidircuales paginas se deben transferir al almacenamiento principal es mínimo. Las estrategias de obtención anticipada de paginas G pueden requerir mucho tiempo de ejecución adicional.
Paginación anticipada
En la paginación anticipada, el sistema operativo intenta predecir las paginas que necesitara un proceso y entonces carga dichas cuando hay espacio disponible. Mientras el proceso se ejecuta con sus paginas actuales, el sistema carga las demas paginas que estaran disponibles cuando las requiera el proceso.
Características de la paginación
El espacio de direcciones lógico de un proceso puede ser no contiguo.
Se divide la memoria física en bloques de tamaño fijo llamados marcos (flamees).
Se divide la memoria en bloques de tamaño llamados paginas.
Se mantiene información en los marcos libres.
Para correr un programa de n paginas de tamaño, se necesitan encontrara n marcos y cargar el programa.
Se establece una tabla de paginas para trasladar las direcciones lógicas a físicas.
Se produce fragmentación interna.

Estrategias de administración de la memoria virtual
Estrategias de obtención: determinan cuando se debe de transferir una pagina o un segmento de almacenamiento secundario al primario. las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una pagina o un segmento antes de traer la pagina o el segmento de almacenamiento primario. los esquemas de obtención anticipada intentan determinar por adelantado a cuales paginas osegmentos hara referencia un proceso.
Estrategias de colocación: determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una pagina entrante se puede colocar en cualquier marco de pagina disponible.
Estrategias de reemplazo: sirven para decidir cual pagina o segmento se debe desplazar para dar espacio a una pagina o segmento entrante cuando esta completamente ocupado el almacenamiento primario.
Segmentación
La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinamica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).
Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado
1.    Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a priori cuan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinamicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandira o reducira el segmento cuando se necesite.
2.      Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.
3.     Se presta a la comparición entre procesos. Unprogramador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.
4.      Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podra asignar los permisos de acceso de la forma adecuada.
Fragmentación
La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria que se vieron en los métodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa. La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o mas procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. La fragmentación puede ser

Fragmentación Externa: Existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua.

Fragmentación Interna: La memoria asignada puede ser ligeramente mayor que la requerida, esta referencia es interna a la partición, pero no se utiliza.
La fragmentación externa se puede reducir mediante la compactación para colocar toda la memoria libre en un solo gran bloque, pero esta sólo es posible si la localización es dinamica y se hace en tiempo de ejecución.
¿Como limpiar la memoria virtual?
Para agilizar un poco la PC, es bueno configurar para que Windows limpie la memoria virtual, cuando se apague la PC.
Paraconfigurarlo, tenemos que abrir la consola de “Políticas de Seguridad Local”:
Windows XP: Inicio panel de Control desempeño y MantenimientoHerramientas Administrativas
Windows Vista y 7: Inicio panel de Control sistema y Seguridad herramientas Administrativas
Selecciona “Políticas de Seguridad Local”
En el panel de la izquierda, expande “Políticas Locales”
Selecciona “Opciones de Seguridad”
En el panel derecho, busca “Apagado: Limpiar archivo de memoria virtual”
Haz doble click para abrir la ventana de propiedades
Selecciona “Habilitado”
Haz click en “Aceptar”
Cierra la consola de “Políticas de Seguridad Local” y todas las ventanas
Reinicia la PC
A partir de ahora, vas a notar que cuando apagues la PC, ésta va a tardar un poco mas en apagarse.
Esto es, porque Windows esta limpiando la memoria virtual, o sea, eliminando todos los archivos que guardó en el archivo “pagefile.sys”.
También vas a notar, que cuando la enciendas, tu PC estara un poco mas agil.
¿Por que limpiar la memoria virtual?
¿Cual es la necesidad de limpiar esta memoria virtual?
Cuando apagas la PC, todo el contenido de la memoria RAM se borra. Y cuando enciendes nuevamente la PC, empieza de cero.
Con la memoria virtual, esto no sucede. Todo lo que se guardó, allí esta cuando vuelves a encender la PC.
Entonces, cuando Windows tenga que volver a usar la memoria virtual, tiene que eliminar algunos programas que ya no estan, para hacer lugar a los nuevos programas. Todos éstos procesos, el depaginación y el de limpieza, hacen que la PC se vuelva mas lenta, y que el disco duro trabaje mas, acortando su vida útil.
Ventajas y desventajas del uso de la memoria virtual
Ventajas
1. Permite optimizar uso de memoria: 
2. mantiene mas procesos en memoria principal 
3. mantiene en disco partes del proceso poco usadas (rutinas de atención a errores poco frecuentes, funciones de uso esporadico, datos no usados, etc.) 
4. Permite que un proceso sea mas grande que toda la memoria principal 
5. Permite multiprogramación muy efectiva 
6.
Se encarga el SO => evita al usuario la preocupación por programar con superposición
Desventajas
1. Se genera interrupción, indica fallo de acceso a memoria
2. Proceso pasa a bloqueado, SO a ejecución
3. SO emite solicitud de E/S al disco
4. SO expide otro proceso para que se ejecute
5.
Tras traer fragmento a memoria, interrupción de E/S, control al SO, que pasa el proceso a listo.
6. Posible hiperpaginación (thrasing
7. SO mas tiempo intercambiando fragmentos que ejecutando (ejemplo: si saca de memoria un fragmento que se iba a usar ya)












Política de privacidad