Wednesday, April 6, 2011

Como funciona un sistema operativo? : Memoria virtual

8:13 PM

Que pasa cuando un aplicacion que tengamos en ejecución necesita mas memoria de la disponible por nuestra memoria fisica, es aqui donde entra la memoria virtual; uno ejemplo son los sistemas UNIX que ocasionalmente dan al usuario una partición llamada SWAP la cual utiliza como memoria adicional.

"La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente.
La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física. En un estado estable, prácticamente toda la memoria principal estará ocupada con fragmentos de procesos, por lo que el procesador y el S.O tendrán acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deberá expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendrá que traer de nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como hiperpaginación: donde el procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. Para evitarlo el S.O intenta adivinar, en función de la historia reciente, qué fragmentos se usarán con menor probabilidad en un futuro próximo. Los argumentos anteriores se basan en el principio de cercanía o principio de localidad que afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse."
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/MEMVIR02.htm#_MEMORIA_VIRTUAL


"Paginacion en memoria virtual

El único inconveniente del sistema de paginación pura es que todas las páginas de un proceso deben estar en memoria para que pueda ejecutar. Esto hace que si los programas son de tamaño considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de intercambio (en memoria secundaria) mientras no se necesiten.

...Si una página buscada está marcada como no disponible (tal vez porque no está presente en la memoria física, pero sí en el área de intercambio), cuando la CPU intenta referenciar una dirección de memoria en esa página, la MMU responde levantando una excepción (comúnmente llamada fallo de página)"
http://www.mitecnologico.com/Main/PaginacionMemoriaVirtual

Como ventajas tenemos:
  1. Ejecucion de procesos más grandes de la memoria fisica
  2. Transparencia
  3. Utilizacion de CPU
Tenemos algoritmos para reemplazos de pagina:
  1. Algoritmo optimo: Se busca a futuro la pagina con menor utilizacion, y se sustituye
  2. Algoritmo FIFO: Reemplaza la pagina con mas tiempo(se comporta en escalera), se puede dar la anomalia de Belady, entre mas marcos mas fallos de paginacion,
  3. Algoritmo LRU: Se cambia la pagina de mayor uso recientemente, carece de anomalia Belady

Written by

0 comentarios:

Post a Comment

 

© 2013 ClusterKnowledge. All rights resevered. Designed by Templateism

Back To Top