el

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.

Técnicas de la puesta en práctica

Evitar golpear

Toda la necesidad de las puestas en práctica de evitar un problema llamó el " que golpea el " de ;, donde la computadora pasa demasiada hora que mezcla bloques de memoria virtual entre la memoria verdadera y los discos, y por lo tanto aparece trabajar más lento. Un mejor diseño de programas de aplicación puede ayudar, pero la única curación es en última instancia instalar una memoria más verdadera. Para más información ver la paginación .

Memoria virtual paginada

Casi todas las puestas en práctica de la memoria virtual dividen el espacio de dirección virtual de un programa de aplicación en las páginas que una página es un bloque de direcciones contiguas de la memoria virtual. Las páginas son generalmente por lo menos los octetos 2K de tamaño, y los sistemas con las gamas de dirección virtual o las granes cantidades grandes de memoria verdadera (e. RAM ) utilizan generalmente tamaños de página más grandes.

Tablas de página

Casi todas las tablas de página del uso de las puestas en práctica para traducir las direcciones virtuales vistas por el programa de aplicación en las direcciones físicas (también designadas " addresses" verdadero;) utilizado por el hardware a las instrucciones de proceso. Cada entrada en un de tabla de páginas contiene: la dirección virtual que comienza de la página; cualquiera la dirección de memoria verdadera en la cual la página se almacena realmente o un indicador que la página está sostenida actual en un archivo de disco (si los archivos de disco de las aplicaciones del sistema para dejar usos utilizan las cantidades de memoria virtual que exceden memoria verdadera).

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.

Paginación

La paginación es el proceso de ahorrar las páginas inactivas de la memoria virtual al disco y de restaurarlas a la memoria verdadera cuando está requerida.

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.

Conversión de dirección dinámica

Cuando una CPU trae una instrucción situada en una dirección virtual particular o, mientras que ejecuta una instrucción, trae datos de una dirección virtual particular o almacena datos a una dirección virtual particular, la dirección virtual debe ser traducido a la dirección física correspondiente. Esto es hecha por un componente de hardware, a veces llamado una unidad de gerencia de memoria, que mira para arriba en el apropiado de tabla de páginas la dirección verdadera que corresponde a una dirección virtual y pasa la dirección verdadera a las piezas de la CPU que ejecutan instrucciones. Si las tablas de página indican que la página de la memoria virtual no está actual en memoria verdadera, el hardware levanta una interrupción (señal interna especial) de la avería de página que invoque el componente del supervisor que pagina del sistema operativo (véase abajo).

Supervisor que pagina

Esta parte del sistema operativo crea y maneja las tablas de página. Si el hardware dinámico de la conversión de dirección levanta una interrupción de la avería de página, el supervisor que pagina busca los archivos de página (en disco) para la página que contiene la dirección virtual required, la lee en memoria física verdadera, pone al día las tablas de página para reflejar la nueva localización de la dirección virtual y finalmente dice el mecanismo dinámico de la conversión de dirección comenzar la búsqueda otra vez. Toda la memoria física verdadera es generalmente ya funcionando y el supervisor que pagina debe primero ahorrar un área de la memoria física verdadera al disco y poner al día el de tabla de páginas para decir que las direcciones virtuales asociadas están no más en memoria física verdadera pero están ahorradas en disco. Los supervisores que paginan generalmente excepto y sobreescriben las áreas de la memoria física verdadera que han sido usado lo menos recientemente, porque éstas son probablemente las áreas que se utilizan lo menos a menudo. Tan cada vez que el hardware dinámico de la conversión de dirección empareja una dirección virtual con una dirección de memoria física verdadera, debe poner un reloj fechador en la entrada de tabla de páginas para esa dirección virtual.

Permanentemente páginas del residente

Todos los sistemas de memoria virtual tienen zonas de memoria que sean " down" fijado;, es decir no puede ser intercambiado hacia fuera al almacenaje secundario, por ejemplo:
Los mecanismos de la interrupción confían generalmente en un arsenal de indicadores a los tratantes para los varios tipos de la interrupción (terminación de la entrada-salida, acontecimiento del contador de tiempo, error del programa, avería de página, etc.), y es conveniente cuando la interrupción puede ser mantenida sin el intercambio en cualquier página.
Las tablas de página no son generalmente paginables.
Los almacenadores intermediarios de datos que están alcanzados fuera de la CPU, por ejemplo por los dispositivos periféricos que utilizan el acceso directo de memoria (acceso directo de memoria) o por los canales de entrada-salida generalmente tales dispositivos, y los autobuses a los cuales se atan, direcciones de memoria física del uso algo que memoria virtual tratan. Incluso en los autobuses con un IOMMU, que es una unidad de gerencia especial de memoria que puede traducir direcciones virtuales utilizó en un autobús de la entrada-salida a las direcciones físicas, la transferencia no puede ser parada si ocurre una avería de página, y recomenzado cuando se ha procesado la avería de página, pagina tan contener las localizaciones a las cuales o cuál un dispositivo periférico está transfiriendo de datos se precisan permanentemente o se precisan mientras que la transferencia está en curso.
Cuaesquiera otras áreas del núcleo o de aplicación, de que la operación sea muy medir el tiempo dependiente y no puede permitir la variación en el tiempo de reacción que la paginación causa.

Operación de Virtualreal
En el MVS, el Z/OS, y OSes similar, algunas piezas funcionadas con en el modo virtual=real, donde iguales de cada dirección virtual a una dirección verdadera. Ésos son:
Mecanismos de la interrupción,
supervisor que pagina y tablas de página,
¡todos los almacenadores intermediarios de datos tuvieron acceso por los canales de entrada-salida
los programas de aplicación que utilizan métodos no estándar de manejar la entrada-salida y por lo tanto proporcionan sus propios almacenadores intermediarios y comunican directo con los periférico (los programas que utilizan sus propias palabras de comando de canal .

Memoria virtual dividida en segmentos

Algunos sistemas, tales como los sistemas grandes de Burroughs, no utilizan la paginación para ejecutar memoria virtual. En lugar, utilizan la segmentación, para dividir el espacio de dirección virtual de un uso en segmentos variable-length. Una dirección virtual consiste en un número de segmento y una compensación dentro del segmento.

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.

Historia

En los años 40 y los años 50, antes del desarrollo de una memoria virtual, todos los programas más grandes tuvieron que contener la lógica para manejar almacenaje de dos niveles (primario y secundario, las analogías de hoy que son RAM y disco duro), por ejemplo el que sobreponía técnicas de . Los programas eran responsables de mover los recubrimientos hacia adelante y hacia atrás desde almacenaje secundario a primario.

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.

  • Zenithic
  • Outside World
    Random links:II cuerpo (Polonia) | Concurrencia (de informática) | Marszałek | Williamson Evers | Ron Randell

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">