Está en la página 1de 6

ING.

Evelyn Lisseth Lpez


Curso: Sistemas Operativos

ANALISIS DE
SISTEMAS




QUE ES MEMORI VIRTUAL


Memoria virtual
La memoria virtual aparece unida a los sistemas operativos modernos.
Permite simular una RAM de mayor tamao que la que tienes instalada en
tu equipo.
Pero, veamos cmo se ejecuta un programa. Las aplicaciones y sus
datos, para poder ser usados por el procesador, tienen que pasar
del disco duro, que es donde se encuentra almacenado todo
cuando apagas al equipo, a la memoria RAM que puede ser
accedida de forma directa por el micro. Surge, por tanto la
necesidad de tener la mayor cantidad de esta, para poder hacer
funcionar de forma correcta el sistema.
La memoria RAM de una computadora, hace unos aos, era un elemento
muy caro. Si a esto unimos, que no todas las aplicaciones que se estn
ejecutando se usan a la vez, parece necesario un sistema que controle el
uso de la memoria.
Aunque la RAM era cara, los discos duros no lo eran tanto. Se poda
entonces usar el disco duro para simular que tenemos ms memoria. El
procedimiento era sencillo, se pasaba al disco las porciones de RAM que
no se usaban en un determinado momento.
La memoria virtual es una tcnica de gestin de la memoria que permite
que el sistema operativo disponga, tanto para el software de usuario como
para s mismo, de mayor cantidad de memoria que est disponible
fsicamente. La mayora de los ordenadores tienen cuatro tipos de
memoria: registros en la CPU, la memoria cach (tanto dentro como fuera
del CPU), la memoria RAM y el disco duro. En ese orden, van de menor
capacidad y mayor velocidad a mayor capacidad y menor velocidad.
Muchas aplicaciones requieren acceso a ms informacin (cdigo y
datos) que la que se puede mantener en memoria fsica. Esto es as sobre
todo cuando el sistema operativo permite mltiples procesos y
aplicaciones ejecutndose simultneamente. Una solucin al problema de
necesitar mayor cantidad de memoria de la que se posee consiste en que
las aplicaciones mantengan parte de su informacin en disco, movindola
a la memoria principal cuando sea necesario. Hay varias formas de hacer
esto.
Una opcin es que la aplicacin misma sea responsable de decidir qu
informacin ser guardada en cada sitio (segmentacin), y de traerla y
llevarla. La desventaja de esto, adems de la dificultad en el diseo e
implementacin del programa, es que es muy probable que los intereses
sobre la memoria de dos o varios programas generen conflictos entre s:
cada programador podra realizar su diseo teniendo en cuenta que es el
nico programa ejecutndose en el sistema. La alternativa es usar
memoria virtual, donde la combinacin entre hardware especial y
el sistema operativohace uso de la memoria principal y la secundaria para
hacer parecer que el ordenador tiene mucha ms memoria principal
(RAM) que la que realmente posee. Este mtodo es invisible a los procesos.
La cantidad de memoria mxima que se puede hacer ver que hay tiene
que ver con las caractersticas del procesador. Por ejemplo, en un sistema
de 32 bits, el mximo es 2
32
, lo que da 4096 Megabytes (4 Gigabytes). Todo
esto hace el trabajo del programador de aplicaciones mucho ms fcil, al
poder ignorar completamente la necesidad de mover datos entre los
distintos espacios de memoria.
Aunque la memoria virtual podra estar implementada por el software del
sistema operativo, en la prctica casi siempre se usa una combinacin de
hardware y software, dado el esfuerzo extra que implicara para el
procesador.

Operacin bsica
Cuando se usa memoria virtual, o cuando una direccin es leda 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 direccin real de memoria (la direccin de memoria fsica).
una indicacin de que la direccin de memoria deseada no se
encuentra en memoria principal (llamado excepcin 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
deba y sigue ejecutando normalmente. En el segundo caso, el sistema
operativo es invocado para manejar la situacin y permitir que el
programa siga ejecutando o aborte segn sea el caso. La memoria irreal
es una tcnica para proporcionar la simulacin de un espacio de memoria
mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite
que los programas se ejecuten sin tener en cuenta el tamao exacto de la
memoria fsica.
La ilusin de la memoria virtual est soportada por el mecanismo de
traduccin de memoria, junto con una gran cantidad de almacenamiento
rpido en disco duro. As en cualquier momento el espacio de direcciones
virtual hace un seguimiento de tal forma que una pequea parte de l,
est en memoria fsica y el resto almacenado en el disco, y puede ser
referenciado fcilmente.
Debido a que slo la parte de memoria virtual que est almacenada en la
memoria principal es accesible a la CPU, segn un programa va
ejecutndose, 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 paginacin).
La memoria virtual ha llegado a ser un componente esencial de la mayora
de los sistemas operativos actuales. Y como en un instante dado, en la
memoria slo se tienen unos pocos fragmentos de un proceso dado, se
pueden mantener ms procesos en la memoria. Es ms, 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 cmo gestionar
este esquema.
La memoria virtual tambin simplifica la carga del programa para su
ejecucin, llamada reubicacin, este procedimiento permite que el mismo
programa se ejecute en cualquier posicin de la memoria fsica.
En un estado estable, prcticamente toda la memoria principal estar
ocupada con fragmentos de procesos, por lo que el procesador y el S.O
tendrn 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 hiperpaginacin: donde
el procesador consume ms tiempo intercambiando fragmentos que
ejecutando instrucciones de usuario. Para evitarlo el sistema operativo
intenta adivinar, en funcin de la historia reciente, qu fragmentos se
usarn con menor probabilidad en un futuro prximo (vase algoritmos de
reemplazo de pginas).
Los argumentos anteriores se basan en el principio de cercana de
referencias o principio de localidad que afirma que las referencias a los
datos y el programa dentro de un proceso tienden a agruparse. Por lo
tanto, es vlida la suposicin de que, durante cortos perodos de tiempo,
se necesitarn slo unos pocos fragmentos de un proceso.
Una manera de confirmar el principio de cercana es considerar el
rendimiento de un proceso en un entorno de memoria virtual.
El principio de cercana sugiere que los esquemas de memoria virtual
pueden funcionar. Para que la memoria virtual sea prctica y efectiva, se
necesitan dos ingredientes. Primero, tiene que existir un soporte de
hardware y, en segundo lugar, el S.O debe incluir un software para
gestionar el movimiento de pginas o segmentos entre memoria
secundaria y memoria principal.
Justo despus de obtener la direccin fsica, y antes de consultar el dato
en memoria principal, se busca en memoria-cache. Si est entre los datos
recientemente usados, la bsqueda tendr xito, pero si falla, la memoria
virtual consultar la memoria principal , en el peor de los casos, el disco
(swapping).
Detalles
La traduccin de las direcciones virtuales a reales es implementada por
una Unidad de Manejo de Memoria (MMU). El sistema operativo es el
responsable de decidir qu partes de la memoria del programa es
mantenida en memoria fsica. Adems mantiene las tablas de traduccin
de direcciones (si se usa paginacin la tabla se denomina tabla de
paginacin), que proveen las relaciones entre direcciones virtuales y fsicas,
para uso de la MMU. Finalmente, cuando una excepcin de memoria
virtual ocurre, el sistema operativo es responsable de ubicar un rea de
memoria fsica para guardar la informacin faltante, trayendo la
informacin desde el disco, actualizando las tablas de traduccin y
finalmente continuando la ejecucin del programa que dio la excepcin
de memoria virtual desde la instruccin que caus el fallo.
En la mayora de las computadoras, las tablas de traduccin de
direcciones de memoria se encuentran en memoria fsica. Esto implica que
una referencia a una direccin virtual de memoria necesitar una o dos
referencias para encontrar la entrada en la tabla de traduccin, y una
ms para completar el acceso a esa direccin.
Para acelerar el desempeo de este sistema, la mayora de las Unidades
Centrales de Proceso (CPU) incluyen una MMU en el mismo chip, y
mantienen una tabla de las traducciones de direcciones virtuales a reales
usadas recientemente, llamada Translation Lookaside Buffer (TLB). El uso de
este buffer hace que no se requieran referencias de memoria adicionales,
por lo que se ahorra tiempo al traducir.
En algunos procesadores, esto es realizado enteramente por el hardware.
En otros, se necesita de la asistencia del sistema operativo: se levanta una
excepcin, y en ella el sistema operativo reemplaza una de las entradas
del TLB con una entrada de la tabla de traduccin, y la instruccin que
hizo la referencia original a memoria es reejecutada.
El hardware que tiene soporte para memoria virtual, la mayora de la veces
tambin permite proteccin de memoria. La MMU puede tener la
habilidad de variar su forma de operacin de acuerdo al tipo de
referencia a memoria (para leer, escribir, o ejecutar), as como el modo en
que se encontraba el CPU en el momento de hacer la referencia a
memoria. Esto permite al sistema operativo proteger su propio cdigo y
datos (como las tablas de traduccin usadas para memoria virtual) de
corromperse por una aplicacin, y de proteger a las aplicaciones que
podran causar problemas entre s.
PaginacinLa memoria virtual usualmente (pero no necesariamente) es
implementada usando paginacin. En paginacin, los bits menos
significativos de la direccin de memoria virtual son preservados y usados
directamente como los bits de orden menos significativos de la direccin
de memoria fsica. Los bits ms significativos son usados como una clave en
una o ms tablas de traduccin de direcciones (llamadas tablas de
paginacin), para encontrar la parte restante de la direccin fsica
buscada. y memoria virtual.

También podría gustarte