Memoria Virtual

852 views

Published on

Contenido de la investigacion

Published in: Travel, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
852
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Memoria Virtual

  1. 1. FUNDAMENTOS DE SISTEMAS OPERATIVOS MEMORIA VIRTUAL TÍTULO: MEMORIA VIRTUAL 04/12/2009 AGEKA
  2. 2. FUNDAMENTOS DE SISTEMAS OPERATIVOS MEMORIA VIRTUAL MEMORIA VIRTUAL Img.01: Cómo la memoria virtual se mapea a la memoria física La memoria virtual es una técnica que permite ejecutar procesos que no caben totalmente en memoria RAM (memoria física). Esto propicia la creación de programas que sean más grandes que la memoria física. Además, la memoria virtual ayuda a crear un esquema de abstracción de la memoria que la separa de la zona lógica que el usuario ve, esto facilita enormemente la tarea a los programadores puesto que no se han de preocupar por limitaciones de memoria. Los procedimientos de implementación de la memoria virtual se basan en que cuando se ejecuta un programa, éste está parcialmente en memoria, es decir, sólo hay cargada aquella zona de código y datos que se necesitan en ese instante de tiempo, y no el programa completo. La memoria virtual es la separación entre la memoria lógica disponible para el usuario y la memoria RAM, se implementa generalmente con el método de paginación por demanda aunque también se puede implementar en un sistema con segmentación. 04/12/2009 AGEKA
  3. 3. FUNDAMENTOS DE SISTEMAS OPERATIVOS MEMORIA VIRTUAL En el momento en que en el sistema empieza a escasear la memoria, se crea un fichero SWAP (intercambio) en el disco que sirve como ampliación auxiliar de memoria. En el caso de Windows, cuando tenemos muchas aplicaciones en funcionamiento y la memoria RAM se agota, el sistema se apoya en el fichero SWAP para realizar movimientos desde el disco duro a la RAM y viceversa. De ese modo crean espacios en memoria física para ir ejecutando las órdenes. Esto, evidentemente, hace que el sistema vaya más lento. Todo ello permite simular la existencia de 4GB de RAM en el equipo, a pesar de que nadie dispone de 4GB en su ordenador (a excepción de algunos sistemas en empresas y universidades), y dar capacidad de ejecución a múltiples aplicaciones por grandes que sean. Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador. Operación básica Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales) en:  La dirección real de memoria (la dirección de memoria física), o  Una indicación de que la dirección de memoria deseada no se encuentra en memoria principal (llamado excepción de memoria virtual) En el primer caso, la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde debía y sigue ejecutando normalmente. En el segundo caso, el sistema operativo es invocado para manejar la situación y permitir que el programa siga ejecutando o aborte según sea el caso. La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Esta 04/12/2009 AGEKA
  4. 4. FUNDAMENTOS DE SISTEMAS OPERATIVOS MEMORIA VIRTUAL "ilusión" permite que los programas se ejecuten sin tener en cuenta el tamaño exacto de la memoria física. Img.02: La memoria virtual 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. Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es accesible a la CPU, según un programa va ejecutándose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginación). La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas operativos actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cómo gestionar este esquema. 04/12/2009 AGEKA
  5. 5. FUNDAMENTOS DE SISTEMAS OPERATIVOS MEMORIA VIRTUAL La memoria virtual también simplifica la carga del programa para su ejecución llamada 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 sistema operativo intenta adivinar, en función de la historia reciente, qué fragmentos se usarán con menor probabilidad en un futuro próximo. Paginación y memoria virtual La memoria virtual usualmente (pero no necesariamente) es implementada usando paginación. En paginación, los bits menos significativos de la dirección de memoria virtual son preservados y usados directamente como los bits de orden menos significativos de la dirección de memoria física. Los bits más significativos son usados como una clave en una o más tablas de traducción de direcciones (llamadas tablas de paginación), para encontrar la parte restante de la dirección física buscada. El mecanismo de paginación, también recoge estadísticas de utilización de las partes de memoria virtual que están residentes en memoria real o física. Estas estadísticas ayudan al sistema operativo a decidir que se puede devolver a disco cuando el espacio de memoria principal está muy "achuchado". La paginación evita el problema de ajustar los pedazos de memoria de tamaños variables que han sufrido los esquemas de manejo de memoria anteriores. 04/12/2009 AGEKA
  6. 6. FUNDAMENTOS DE SISTEMAS OPERATIVOS MEMORIA VIRTUAL Tablas de Paginación. Cada página tiene un número que se utiliza como índice en la tabla de páginas, lo que da por resultado el número de marco correspondiente a esa página virtual. Algoritmos de Reemplazo de Paginas Algoritmo aleatorio.- Reemplaza aleatoriamente cualquier pagina de memoria principal, sin hacer ningún esfuerzo de predicción. Algoritmo de reemplazo de páginas óptimo.-Debe tener el menor índice de fallos de página de todos los algoritmos. Algoritmo de reemplazo de páginas según el uso no tan reciente.- Hace uso de los dos bits de estado que están asociados a cada página. Algoritmo de reemplazo FIFO.-“Primero en entrar, Primero en salir” Algoritmo de reemplazo de páginas de la segunda oportunidad Algoritmo de reemplazo de páginas del reloj.- Organiza las paginas en una lista circular. Algoritmo de reemplazo de páginas LRU.- Menor uso reciente(Least Recent Use). Aplicación Un programa de aplicación grande, podría mostrar un menú con muchas funciones. Al seleccionar una función del menú, se ejecutarían varias rutinas específicas de dicha función, pero no se referenciarían las rutinas de las funciones restantes. En un sistema de memoria virtual, la ejecución de la función seleccionada del menú, se soportaría trayendo el código y los datos para esa función a la memoria principal (si no estuviese ya allí). El resto podría o no sacarse del disco a memoria real. Mientras la memoria física fuese lo bastante grande para contener el código y datos de cualquier función elemental de nuestro menú, el tamaño total de la memoria física, podría ser mucho menor que el tamaño total de nuestro programa. 04/12/2009 AGEKA
  7. 7. FUNDAMENTOS DE SISTEMAS OPERATIVOS MEMORIA VIRTUAL INTEGRANTES. Andrea Llerena magi_lle@hotmail.com Amanda Jiménez m.a.n.d.ylove@hotmail.com Karen Paredes jogyss@hotmail.com Gabriela Chamorro gaby_glec29@hotmail.com Edith Oleas eyivonole_2@yahoo.es 04/12/2009 AGEKA

×