La memoria virtual es un mecanismo que permite la ejecución de procesos que no se encuentran completamente en la memoria, estos pueden tener un tamaño mayor que la memoria física, no se presenta restricción en los programas, estos ocupan menos memoria física, lo que permite la ejecución de más programas al mismo tiempo y disminuye las operaciones de entrada - salida para cargar o intercambiar los programas de usuario, sin embargo, la memoria virtual puede ser difícil de implementar y sin el debido cuidado, puede reducir sustancialmente el rendimiento del sistema.
La memoria virtual implementa dentro de sus fases la paginación bajo demanda, cargando las páginas únicamente cuando sea necesario durante la ejecución del programa, así mismo cuando se quiere ejecutar un proceso, se realiza un intercambio y para evitar cambiar el proceso completo, se implementa un intercambiador perezoso, el cual manipula procesos completos, a diferencia del paginador, que solo se ocupa de las páginas individuales de un proceso. Así mismo, cuando se va a cargar un proceso, el paginador realiza una estimación de que páginas serán utilizadas, para esto requiere de un soporte de Hardware, que le permita distinguir entre las páginas que se encuentran en memoria y las páginas que residen en disco, utilizando un bit válido, haciendo referencia a cuando la página se encuentra en memoria y la denomina legal, mientras que si la página se encuentra en el disco, se usa un bit inválido. Una vez cargados los procesos en la memoria o el disco, se inicia con la sustitución de páginas, identificando previamente un marco disponible, para esto se utilizan los siguientes algoritmos:
- Sustitución de páginas FIFO, el cual asocia cada página al instante en que dicha página fuera cargada en memoria, en caso de que haga falta sustituir una página, se elige la página más antigua. Esto genera que se cree un cola FIFO para almacenar todas las páginas en memoria y sustituir la página situada al principio de la cola.
Este algoritmo tiene como ventaja su facilidad de comprensión y programación, sin embargo su rendimiento no siempre es bueno ya que se realizan muchos mas reemplazos de marcos de página, lo que incrementa los tiempos de no utilización de la memoria y también presenta la anomalía de Belady, en donde la tasa de fallos de una página puede incrementarse a medida que incrementa el número de marcos asignados.
- Sustitución óptimo de páginas, en este algoritmo se tiene la ventaja de que se da la tasa más baja de fallos y tampoco presenta anomalía de Belady. Funciona sustituyendo la página que no vaya a ser utilizada durante el periodo más largo, lo que implica que se requiera un conocimiento futuro de la cadena de referencia, esto lo hace difícil de implementar.
- Sustitución de páginas LRU, se implementa sustituyendo la página que no haya sido utilizada durante el periodo más largo de tiempo y la menos recientemente utilizada, es por esto que el algoritmo LRU asocia con cada página el instante correspondiente al último uso de dicha página, sin embargo es difícil su implementación.
No hay comentarios:
Publicar un comentario