l este artículo está sobre el término de la computadora. Para la demostración de juego de TBN, ver la memoria virtual (demostración de juego) .
La memoria virtual es una técnica del sistema de la computadora que da a programa de aplicación la impresión que tiene memoria de funcionamiento contigua, mientras que de hecho se hace fragmentos físicamente y el puede desbordamiento de incluso encendido al almacenamiento en discos. Los sistemas que utilizan esta técnica hacen la programación de usos grandes más fácil y utilizan la memoria física verdadera (e. RAM ) más eficientemente que ésos sin memoria virtual.
Observar ese " memory" virtual; no es apenas el " usar la espacio de disco para extender el size" de la memoria física;. La memoria que extiende es una consecuencia normal del de usar técnicas de la memoria virtual, pero se puede hacer por otros medios tales como recubrimientos o del intercambio los programas y sus datos totalmente hacia fuera al disco mientras que son inactivas. La definición " memory" virtual; se basa en el engaño de los programas en que piensan ellos están utilizando los bloques grandes de direcciones contiguas.
Todas las técnicas de fines generales de la memoria virtual del uso de los sistemas operativos de la computadora del moderno para los usos ordinarios, tales como procesadores de textos, hojas de balance, jugadores de multimedias, contabilidad, sistemas operativos del etc. más viejos, tales como DOS de los años 80, o de muchos sistemas operativos de la unidad central de los años 60, no tenían ninguna funcionalidad de la memoria virtual.
El encajó los sistemas y otros sistemas informáticos especial que requieren tiempo de reacción muy rápido, muy constante no utilizan generalmente memoria virtual.
Los sistemas pueden tener uno de tabla de páginas para el sistema entero o un de tabla de páginas separado para cada uso. Si hay solamente uno, diversos usos que sean que funciona con al mismo tiempo la parte de un solo espacio de dirección virtual, es decir utilizan diversas partes de una sola gama de direcciones virtuales. Los sistemas que utilizan las tablas de página múltiples proporcionan espacios de dirección virtual múltiples - los usos concurrentes piensan que están utilizando la misma gama de addressses virtuales, pero sus tablas de página separadas vuelven a dirigir a diversas direcciones verdaderas.
La mayoría de los sistemas de memoria virtual permiten a programas utilizar las gamas de dirección virtual que en total exceden la cantidad de memoria verdadera (e. Para hacer esto utilizan archivos de disco para ahorrar las páginas de la memoria virtual que no están actual - active, y para restaurarlas a la memoria verdadera cuando son necesarios. Las páginas no se restauran necesario a las mismas direcciones verdaderas de las cuales fueron ahorradas - los usos son conscientes solamente de direcciones virtuales. La memoria verdadera a la cual se restaura una página contiene generalmente otra página de la memoria virtual que se ha utilizado recientemente, y que se debe por lo tanto ahorrar al disco.
Por supuesto la memoria todavía se trata físicamente con un solo número (llamado el absoluto o el dirección linear de ). Para obtenerla, el procesador mira para arriba el número de segmento en una tabla de segmento para encontrar un descriptor del segmento. El descriptor del segmento contiene una bandera que indica si el segmento está presente en de memoria principal y, si es, la dirección en de memoria principal del principio del segmento (dirección de la base del segmento) y de la longitud del segmento. Se comprueba si la compensación dentro del segmento es menos que la longitud del segmento y, si no es, de una interrupción está generada. Si un segmento no está presente en de memoria principal, la interrupción de hardware se levanta al sistema operativo, que puede intentar leer el segmento en de memoria principal, o al intercambiar adentro . El sistema operativo pudo tener que quitar otros segmentos (intercambio hacia fuera del ) de memoria principal para hacer el sitio en de memoria principal para que el segmento sea leído adentro.
Notablemente, el Intel 80286 apoyó esquema similar de la segmentación como opción, pero era inusitado por la mayoría de los sistemas operativos.
Es posible combinar la segmentación y la paginación, dividiendo generalmente cada segmento en las páginas. En los sistemas que los combinan, tales como Multics y el IBM System/38 y las máquinas del sistema i de IBM, la memoria virtual se ejecuta generalmente con la paginación, con la segmentación usada para proporcionar la protección de memoria. Con el Intel 80386 y procesadores posteriores IA-32, los segmentos residen en un espacio de dirección paginado linear de 32 bits, así que los segmentos se pueden mover en y de ese espacio de dirección linear, y de las páginas en que el espacio de dirección linear se puede mover dentro y fuera de memoria principal, proporcionando dos niveles de memoria virtual; sin embargo, pocos eventualmente los sistemas operativos hacen tan. En lugar, utilizan solamente la paginación.
La diferencia entre las puestas en práctica de la memoria virtual usar las páginas y los segmentos con está no sólo sobre la división de la memoria con tamaños fijos y variables, respectivamente. En algunos sistemas, e. Multics, o máquinas primeras posteriores System/38 y, la segmentación era realmente visible a los procesos del usuario, como parte de la semántica de un modelo de memoria. Es decir en vez de un proceso apenas que tenía una memoria que parecía un solo vector grande de octetos o de palabras, era estructurada. Esto es diferente de usar las páginas, que no cambia el modelo visible al proceso. Esto tenía consecuencias importantes.
El segmento no era apenas un " página con un length" variable;, o una manera simple alargar el espacio de dirección (como en el Intel 80286 ). En Multics, la segmentación era un mecanismo muy de gran alcance que fue utilizado para proporcionar un modelo de un solo nivel de la memoria virtual, en el cual no había diferenciación entre el " memory" de proceso; y " system" del archivo; - un espacio de dirección activo de los procesos consistió solamente una lista de segmentos (archivos) que fueron trazados en su espacio de dirección potencial, código y los datos. No es igual que la función posterior de Mmap en Unix, porque los indicadores del inter-archivo no trabajan al trazar archivos en lugares semi-arbitrarios. Multics tenía tal modo de dirección incorporado a la mayoría de las instrucciones. Es decir podría realizar referencias vueltas a poner del inter-segmento, así eliminando la necesidad de una máquina para hacer chorizos totalmente.
La razón principal de introducir memoria virtual era por lo tanto no simplemente ampliar una memoria primaria, pero hacer la extensión tal como fácil de utilizar para los programadores como sea posible.
Muchos sistemas tenían ya la capacidad de dividir la memoria entre los programas múltiples (requeridos para la multiprogramación y el multiprocesamiento ), con tal que por ejemplo al lado del " registers" bajo y de los límites; en los modelos tempranos PDP-10, sin el abastecimiento de memoria virtual. Que dio a cada uso un espacio de dirección privada que comenzaba en una dirección de 0, con una dirección en el espacio de dirección privada que era comprobado contra un registro de los límites para cerciorarse de lo está dentro de la sección de la memoria asignada el uso y, si es, a tener el contenido del registro bajo correspondiente que es agregado a él para dar una dirección en de memoria principal. Ésta es una forma simple de la segmentación sin memoria virtual.
La memoria virtual fue desarrollada en aproximadamente 1959-1962, en la universidad de Manchester para la computadora del atlas, terminada en 1962. Sin embargo, el Fritz-Rudolf Güntsch, uno de los informáticos pioneros de Alemania y más adelante el revelador de la unidad central de Telefunken TR 440, las demandas haber inventado el concepto en 1957 en sus eines de Logischer Entwurf del de la disertación doctoral digitalen el mit de Rechengerätes mehreren el asynchron laufenden el automatischem Schnellspeicherbetrieb (concepto del und de Trommeln de la lógica del de un dispositivo computacional de Digitaces con el almacenaje de tambor asincrónico múltiple y el modo rápido automático de la memoria).
En 1961, el Burroughs lanzó el B5000, la primera computadora comercial con memoria virtual. Utilizó la segmentación algo que la paginación .
Como muchas tecnologías en la historia de la computación, la memoria virtual no fue aceptada sin desafío. Antes de que podría ser ejecutada en los sistemas operativos de corriente, muchos modelos, experimentos, y teorías tuvieron que ser desarrollados para superar los problemas numerosos. La conversión de dirección dinámica requirieron haber especializado, costoso, y duro construir el hardware, por otra parte retrasó inicialmente levemente el acceso a la memoria.
| Random links: | II cuerpo (Polonia) | Concurrencia (de informática) | Marszałek | Williamson Evers | Ron Randell |