RepúblicaBolivariana de Venezuela
Ministerio del PoderPopular para la EducaciónSuperior
Sede Barcelona
Sistemas Operativos II SecciónSV
Profesor: Bachiller:
Ramón Aray Betancourt Edgar C.I: 25.245.689
Barcelona, 25 de marzo de 2017
Índice
Portada…………………………………….Pág.
Introducción……………………………….Pág.
Desarrollo………………………………… Pág.
Operaciónbásica
Detalles
Paginación y memoria virtual
Conclusión………………………………..Pág.
Bibliografía………………………………..Pág.
Anexos…………………………………….Pág.
Introducción
La memoria es uno de los principales recursos de la computadora, la cual debe de
administrarse con mucho cuidado. Aunque actualmente la mayoría de
los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual
manera las aplicaciones actuales tienen también altos requerimientos de memoria,
lo que sigue generando escasez de memoria en los sistemas multitarea y/o
multiusuario.
La parte del sistema operativo que administra la memoria se
llama administrador de memoria y su labor consiste en llevar un registro de las
partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar
espacio en memoria a los procesos cuando éstos la necesiten y liberándola
cuando terminen, así como administrar el intercambio entre la memoria principal y
el disco en los casos en los que la memoria principal no le pueda dar capacidad a
todos los procesos que tienen necesidad de ella.
Los sistemas de administración de memoria se pueden clasificar en dos tipos: los
que desplazan los procesos de la memoria principal al disco y viceversa durante la
ejecución y los que no.
El propósito principal de una computadora es el de ejecutar programas, estos
programas, junto con la información que accesan deben de estar en la memoria
principal (al menos parcialmente) durante la ejecución.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener
varios procesos a la vez en la memoria principal, para lo cual dispone de varias
opciones de administración tanto del procesador como de la memoria.
La selección de uno de ellos depende principalmente del diseño del hardware para
el sistema. A continuación se observarán los puntos correspondientes a la
administración de la memoria.
La memoria virtual es una técnica de gestión 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 físicamente. La
mayoría 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 más información (código y datos) que la
que se puede mantener en memoria física. Esto es así sobre todo cuando el
sistema operativo permite múltiples procesos y aplicaciones ejecutándose
simultáneamente. Una solución al problema de necesitar mayor cantidad de
memoria de la que se posee consiste en que las aplicaciones mantengan parte de
su información en disco, moviéndola a la memoria principal cuando sea necesario.
Hay varias formas de hacer esto.
Una opción es que la aplicación misma sea responsable de decidir qué
información será guardada en cada sitio (segmentación), y de traerla y llevarla. La
desventaja de esto, además de la dificultad en el diseño e implementación del
programa, es que es muy probable que los intereses sobre la memoria de dos o
varios programas generen conflictos entre sí: cada programador podría realizar su
diseño teniendo en cuenta que es el único programa ejecutándose en el sistema.
La alternativa es usar memoria virtual, donde la combinación entre
hardware especial y el sistema operativo hace uso de la memoria principal y la
secundaria para hacer parecer que el ordenador tiene mucha más memoria
principal (RAM) que la que realmente posee. Este método es invisible a los
procesos. La cantidad de memoria máxima que se puede hacer ver que hay tiene
que ver con las características del procesador. Por ejemplo, en un sistema de 32
bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el
trabajo del programador de aplicaciones mucho más fácil, al poder ignorar
completamente la necesidad de mover datos entre los distintos espacios de
memoria.
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).
 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 "ilusión" permite que los programas se ejecuten sin tener en cuenta
el tamaño exacto de la memoria física.
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 física 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.
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 hiper
paginació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 (véase algoritmos de reemplazo de páginas).
Los argumentos anteriores se basan en el principio de cercanía 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 válida la suposición de
que, durante cortos períodos de tiempo, se necesitarán sólo unos pocos
fragmentos de un proceso.
Una manera de confirmar el principio de cercanía es considerar el rendimiento de
un proceso en un entorno de memoria virtual.
El principio de cercanía sugiere que los esquemas de memoria virtual pueden
funcionar. Para que la memoria virtual sea práctica 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 páginas o
segmentos entre memoria secundaria y memoria principal.
Justo después de obtener la dirección física, y antes de consultar el dato en
memoria principal, se busca en memoria-cache. Si está entre los datos
recientemente usados, la búsqueda tendrá éxito, pero si falla, la memoria virtual
consultará la memoria principal ó, en el peor de los casos, el disco (swapping).
Detalles
La traducción 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
física. Además mantiene las tablas de traducción de direcciones (si se
usa paginación la tabla se denomina tabla de paginación), que proveen las
relaciones entre direcciones virtuales y físicas, para uso de la MMU. Finalmente,
cuando una excepción de memoria virtual ocurre, el sistema operativo es
responsable de ubicar un área de memoria física para guardar la información
faltante, trayendo la información desde el disco, actualizando las tablas de
traducción y finalmente continuando la ejecución del programa que dio la
excepción de memoria virtual desde la instrucción que causó el fallo.
En la mayoría de las computadoras, las tablas de traducción de direcciones de
memoria se encuentran en memoria física. Esto implica que una referencia a una
dirección virtual de memoria necesitará una o dos referencias para encontrar la
entrada en la tabla de traducción, y una más para completar el acceso a esa
dirección.
Para acelerar el desempeño de este sistema, la mayoría 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
excepción, y en ella el sistema operativo reemplaza una de las entradas del TLB
con una entrada de la tabla de traducción, y la instrucción que hizo la referencia
original a memoria es re-ejecutada.
El hardware que tiene soporte para memoria virtual, la mayoría de las veces
también permite protección de memoria. La MMU puede tener la habilidad de
variar su forma de operación 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 código y datos (como las tablas de traducción usadas para
memoria virtual) de corromperse por una aplicación, y de proteger a las
aplicaciones que podrían causar problemas entre sí.
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.
Conclusión
Para concluir se entiende que:
 En la memoria principal son ejecutados los programas y procesos de una
computadora y es el espacio real que existe en memoria para que se ejecuten los
procesos.
 La memoria virtual es aquella que le ofrece a las aplicaciones la ilusión de que
están solas en el sistema y que pueden usar el espacio de direcciones completo.
 Las direcciones de memoria son de tres tipos: físicas, lógicas y lineales.
 El objetivo del intercambio es dar cabida a la ejecución de más aplicaciones de las
que pueden residir simultáneamente en la memoria del sistema.
 Las asignación consiste en determinar cuál espacio vacío en la memoria principal
es el más indicado para ser asignado a un proceso.
 Las estrategias más comunes para asignar espacios vacíos (huecos) son: primer
ajuste, mejor ajuste, peor ajuste.
 La fragmentación es la memoria que queda desperdiciada al usar los métodos de
gestión de memoria tal como la asignación.
 La fragmentación puede ser interna o externa.
 La paginación es una técnica de gestión de memoria en la cual el espacio de
memoria se divide en secciones físicas de igual tamaño llamadas marcos de
página, las cuales sirven como unidad de almacenamiento de información.
 La segmentación es un esquema de manejo de memoria mediante el cual la
estructura del programa refleja su división lógica; llevándose a cabo una
agrupación lógica de la información en bloques de tamaño variable denominados
segmentos.
Bibliografía
https://es.wikipedia.org/wiki/Memoria_virtual
Anexos
Cómo la memoria virtual se mapea a la memoria física.

Más contenido relacionado

PPTX
Tipos de memoria
PPTX
Tipos de memoria
PPTX
Memoria virtual
PPTX
MEMORIA VIRTUAL
PPTX
Tipos de memoria
PPTX
Memoria virtual
PPTX
Presentación de Memorias
PPTX
Memoria de una computadora
Tipos de memoria
Tipos de memoria
Memoria virtual
MEMORIA VIRTUAL
Tipos de memoria
Memoria virtual
Presentación de Memorias
Memoria de una computadora

La actualidad más candente (20)

PPTX
Diapositivas mrt
PPTX
Diapositivas de la memoria rom
PPTX
Tipos de Memoria
PDF
Memoria
PPSX
TIPOS DE MEMORIA
PPTX
Memorias ram y rom
PPTX
Tipos de memoria
PPT
Practica 2 power point memoria rom y ram
PPT
Memorias sistemas operativos ii
PPTX
Memorias ram , rom y cache
PPTX
Memoria de la computadora
PPTX
Memorias ram y rom
PPTX
MEMORIAS DE UN COMPUTADOR
PPTX
PRACTICA DE MEMORIA RAM ROM
DOC
Memoria De Acceso Aleatorio
DOC
Memoria De Acceso Aleatorio
PPTX
Memoria ram y rom practica 3 informatica
PPTX
Presentacion ricardo
PDF
BOARD, ALIMENTACIÓN, PUERTOS, BUSES, OVERCLOKING, GPUS Y ALGO MÁS
PPTX
Memorias ram y rom
Diapositivas mrt
Diapositivas de la memoria rom
Tipos de Memoria
Memoria
TIPOS DE MEMORIA
Memorias ram y rom
Tipos de memoria
Practica 2 power point memoria rom y ram
Memorias sistemas operativos ii
Memorias ram , rom y cache
Memoria de la computadora
Memorias ram y rom
MEMORIAS DE UN COMPUTADOR
PRACTICA DE MEMORIA RAM ROM
Memoria De Acceso Aleatorio
Memoria De Acceso Aleatorio
Memoria ram y rom practica 3 informatica
Presentacion ricardo
BOARD, ALIMENTACIÓN, PUERTOS, BUSES, OVERCLOKING, GPUS Y ALGO MÁS
Memorias ram y rom
Publicidad

Destacado (20)

PPTX
Tipos de Memorias en informatica
PPTX
Redes wan
DOCX
Sistemas operativos distribuidos
PDF
Procesamiento de datos
PDF
Evolución de los procesadores cisc
PDF
Homemade Ubicomp at Reboot 11
PDF
Building Installations in Five Days (and a bit) at Ignite London 4
PPTX
Florall
PDF
Theory from Practice: Stories and Takeaways from Hacker Camps
PDF
Browser Extensions for Web Hackers
PPTX
Promoting Scholarship with Services, Programs and Publishing
PDF
Manual barmesa
PPTX
Economia popular y solidaria
PPTX
Презентація Руху сприяння територіальній обороні України
PDF
ÐDaM and Equally presentation at the EDCon conference
PDF
EVOLUCIÓN DE LOS PROCESADORES CISC
PPTX
ELECTIVA II REDES WAN
PPTX
Memoria virtual
PPTX
Memorias ram y rom
PPTX
Leyes de conjunto
Tipos de Memorias en informatica
Redes wan
Sistemas operativos distribuidos
Procesamiento de datos
Evolución de los procesadores cisc
Homemade Ubicomp at Reboot 11
Building Installations in Five Days (and a bit) at Ignite London 4
Florall
Theory from Practice: Stories and Takeaways from Hacker Camps
Browser Extensions for Web Hackers
Promoting Scholarship with Services, Programs and Publishing
Manual barmesa
Economia popular y solidaria
Презентація Руху сприяння територіальній обороні України
ÐDaM and Equally presentation at the EDCon conference
EVOLUCIÓN DE LOS PROCESADORES CISC
ELECTIVA II REDES WAN
Memoria virtual
Memorias ram y rom
Leyes de conjunto
Publicidad

Similar a Memoria virtual (20)

PPTX
Memoria Virtual
 
PDF
Memoria Virtual
PPTX
Trabajo memoria virtual
DOCX
Administración de memoria
PPTX
memoria virtual
PPTX
Memoria virtual
PPTX
Presentación arquitectura de computadoras.pptx
PPTX
Presentación capitulo #3.pptx, sobre ciberseguridad
PPTX
Administración de memoria
RTF
Memoria virtual
PDF
Memoria en los SO
PPTX
Memoria virtual y paginacion
PPTX
tercera unidad :3
PPTX
Estructuras de hardware y de control.
PPTX
Unidad 3 memoria_real
PPTX
Memoria virtual
PPT
Memoria virtual
PPT
Memoria virtual
PPT
Memoria virtual
PPT
Memoria virtual
Memoria Virtual
 
Memoria Virtual
Trabajo memoria virtual
Administración de memoria
memoria virtual
Memoria virtual
Presentación arquitectura de computadoras.pptx
Presentación capitulo #3.pptx, sobre ciberseguridad
Administración de memoria
Memoria virtual
Memoria en los SO
Memoria virtual y paginacion
tercera unidad :3
Estructuras de hardware y de control.
Unidad 3 memoria_real
Memoria virtual
Memoria virtual
Memoria virtual
Memoria virtual
Memoria virtual

Último (20)

PPT
acero-estructural.ppt acero acero jjshsdkdgfh
PDF
2. Gestión del alcance gestion de proyetos.pdf
PDF
SESION 9 seguridad IZAJE DE CARGAS.pdf ingenieria
PDF
La 5ª Edición del Manual de Ingeniería de Sistemas ( SEH5E ) como base d...
PDF
MODULO 1 Base Legal Nacional y sus aplicaciones.pdf
PPTX
TRABAJOS DE ALTO RIESGO ELEC - LOTO.pptx
PDF
PPT ProChile 2019 beneficios de la construccion con madera
PDF
Precomisionado de equipos introduccion.pdf
PDF
UD3 -Producción, distribución del aire MA.pdf
PDF
experto-gestion-calidad-seguridad-procesos-quimicos-industriales-gu.pdf
PPTX
EQUIPOS DE PROTECCION PERSONAL - LEY LABORAL.pptx
PDF
SESION 10 SEGURIDAD EN TRABAJOS CON ELECTRICIDAD.pdf
PPTX
Expo petroelo 2do ciclo.psssssssssssssptx
PPTX
Instalaciones Electricas.pptx cables electricos
PDF
Reglamento del minsa y rne para hospitales
PDF
Presentacion_Resolver_CEM_Hospitales_v2.pdf
PDF
BROCHURE SERVICIOS CONSULTORIA ISOTEMPO 2025
PPTX
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
PPTX
PPT PE 7 ASOCIACIONES HUAMANGA_TALLER DE SENSIBILIZACIÓN_20.04.025.pptx
PDF
FUNCION CUADRATICA FUNCIONES RAIZ CUADRADA
acero-estructural.ppt acero acero jjshsdkdgfh
2. Gestión del alcance gestion de proyetos.pdf
SESION 9 seguridad IZAJE DE CARGAS.pdf ingenieria
La 5ª Edición del Manual de Ingeniería de Sistemas ( SEH5E ) como base d...
MODULO 1 Base Legal Nacional y sus aplicaciones.pdf
TRABAJOS DE ALTO RIESGO ELEC - LOTO.pptx
PPT ProChile 2019 beneficios de la construccion con madera
Precomisionado de equipos introduccion.pdf
UD3 -Producción, distribución del aire MA.pdf
experto-gestion-calidad-seguridad-procesos-quimicos-industriales-gu.pdf
EQUIPOS DE PROTECCION PERSONAL - LEY LABORAL.pptx
SESION 10 SEGURIDAD EN TRABAJOS CON ELECTRICIDAD.pdf
Expo petroelo 2do ciclo.psssssssssssssptx
Instalaciones Electricas.pptx cables electricos
Reglamento del minsa y rne para hospitales
Presentacion_Resolver_CEM_Hospitales_v2.pdf
BROCHURE SERVICIOS CONSULTORIA ISOTEMPO 2025
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
PPT PE 7 ASOCIACIONES HUAMANGA_TALLER DE SENSIBILIZACIÓN_20.04.025.pptx
FUNCION CUADRATICA FUNCIONES RAIZ CUADRADA

Memoria virtual

  • 1. RepúblicaBolivariana de Venezuela Ministerio del PoderPopular para la EducaciónSuperior Sede Barcelona Sistemas Operativos II SecciónSV Profesor: Bachiller: Ramón Aray Betancourt Edgar C.I: 25.245.689 Barcelona, 25 de marzo de 2017
  • 2. Índice Portada…………………………………….Pág. Introducción……………………………….Pág. Desarrollo………………………………… Pág. Operaciónbásica Detalles Paginación y memoria virtual Conclusión………………………………..Pág. Bibliografía………………………………..Pág. Anexos…………………………………….Pág.
  • 3. Introducción La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los que no. El propósito principal de una computadora es el de ejecutar programas, estos programas, junto con la información que accesan deben de estar en la memoria principal (al menos parcialmente) durante la ejecución. Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administración tanto del procesador como de la memoria. La selección de uno de ellos depende principalmente del diseño del hardware para el sistema. A continuación se observarán los puntos correspondientes a la administración de la memoria.
  • 4. La memoria virtual es una técnica de gestión 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 físicamente. La mayoría 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 más información (código y datos) que la que se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea necesario. Hay varias formas de hacer esto. Una opción es que la aplicación misma sea responsable de decidir qué información será guardada en cada sitio (segmentación), y de traerla y llevarla. La desventaja de esto, además de la dificultad en el diseño e implementación del programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre sí: cada programador podría realizar su diseño teniendo en cuenta que es el único programa ejecutándose en el sistema. La alternativa es usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos. La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria. 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).  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
  • 5. 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 "ilusión" permite que los programas se ejecuten sin tener en cuenta el tamaño exacto de la memoria física. 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 física 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. 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 hiper paginació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 (véase algoritmos de reemplazo de páginas). Los argumentos anteriores se basan en el principio de cercanía 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 válida la suposición de que, durante cortos períodos de tiempo, se necesitarán sólo unos pocos fragmentos de un proceso. Una manera de confirmar el principio de cercanía es considerar el rendimiento de un proceso en un entorno de memoria virtual.
  • 6. El principio de cercanía sugiere que los esquemas de memoria virtual pueden funcionar. Para que la memoria virtual sea práctica 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 páginas o segmentos entre memoria secundaria y memoria principal. Justo después de obtener la dirección física, y antes de consultar el dato en memoria principal, se busca en memoria-cache. Si está entre los datos recientemente usados, la búsqueda tendrá éxito, pero si falla, la memoria virtual consultará la memoria principal ó, en el peor de los casos, el disco (swapping). Detalles La traducción 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 física. Además mantiene las tablas de traducción de direcciones (si se usa paginación la tabla se denomina tabla de paginación), que proveen las relaciones entre direcciones virtuales y físicas, para uso de la MMU. Finalmente, cuando una excepción de memoria virtual ocurre, el sistema operativo es responsable de ubicar un área de memoria física para guardar la información faltante, trayendo la información desde el disco, actualizando las tablas de traducción y finalmente continuando la ejecución del programa que dio la excepción de memoria virtual desde la instrucción que causó el fallo. En la mayoría de las computadoras, las tablas de traducción de direcciones de memoria se encuentran en memoria física. Esto implica que una referencia a una dirección virtual de memoria necesitará una o dos referencias para encontrar la entrada en la tabla de traducción, y una más para completar el acceso a esa dirección. Para acelerar el desempeño de este sistema, la mayoría 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 excepción, y en ella el sistema operativo reemplaza una de las entradas del TLB con una entrada de la tabla de traducción, y la instrucción que hizo la referencia original a memoria es re-ejecutada. El hardware que tiene soporte para memoria virtual, la mayoría de las veces también permite protección de memoria. La MMU puede tener la habilidad de variar su forma de operación 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
  • 7. momento de hacer la referencia a memoria. Esto permite al sistema operativo proteger su propio código y datos (como las tablas de traducción usadas para memoria virtual) de corromperse por una aplicación, y de proteger a las aplicaciones que podrían causar problemas entre sí. 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.
  • 8. Conclusión Para concluir se entiende que:  En la memoria principal son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.  La memoria virtual es aquella que le ofrece a las aplicaciones la ilusión de que están solas en el sistema y que pueden usar el espacio de direcciones completo.  Las direcciones de memoria son de tres tipos: físicas, lógicas y lineales.  El objetivo del intercambio es dar cabida a la ejecución de más aplicaciones de las que pueden residir simultáneamente en la memoria del sistema.  Las asignación consiste en determinar cuál espacio vacío en la memoria principal es el más indicado para ser asignado a un proceso.  Las estrategias más comunes para asignar espacios vacíos (huecos) son: primer ajuste, mejor ajuste, peor ajuste.  La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria tal como la asignación.  La fragmentación puede ser interna o externa.  La paginación es una técnica de gestión de memoria en la cual el espacio de memoria se divide en secciones físicas de igual tamaño llamadas marcos de página, las cuales sirven como unidad de almacenamiento de información.  La segmentación es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica; llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos.
  • 10. Anexos Cómo la memoria virtual se mapea a la memoria física.