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.
Excel para principiantes: Aprenda a utilizar Excel 2016, incluyendo una introducción a fórmulas, funciones, gráficos, cuadros, macros, modelado, informes, estadísticas, Excel Power Query y más
Lean Seis Sigma: La guía definitiva sobre Lean Seis Sigma, Lean Enterprise y Lean Manufacturing, con herramientas para incrementar la eficiencia y la satisfacción del cliente
Inteligencia artificial: Lo que usted necesita saber sobre el aprendizaje automático, robótica, aprendizaje profundo, Internet de las cosas, redes neuronales, y nuestro futuro
ChatGPT Ganar Dinero Desde Casa Nunca fue tan Fácil Las 7 mejores fuentes de ingresos pasivos con Inteligencia Artificial (IA): libros, redes sociales, marketing digital, programación...
Lean: La Guía Fundamental para Lean Startup, Lean Six Sigma, Lean Analytics, Lean Enterprise, Lean Manufacturing, Scrum, Gestión Agile de Proyectos y Kanban