El direccionamiento físico significa que su programa realmente conoce el diseño real de la RAM. Cuando accede a una variable en la dirección 0x8746b3, allí está realmente almacenada en los chips de RAM físicos.
Con el direccionamiento virtual, todos los accesos a la memoria de la aplicación van a una tabla de página, que luego se asigna de la dirección virtual a la física. Entonces, cada aplicación tiene su propio espacio de direcciones "privado", y ningún programa puede leer o escribir en la memoria de otro programa. Esto se llama segmentación .
El direccionamiento virtual tiene muchos beneficios. Protege a los programas contra choques entre sí mediante una mala manipulación del puntero, etc. Debido a que cada programa tiene su propio conjunto de memoria virtual, ningún programa puede leer los datos de otra persona, esto es tanto una seguridad como un plus de seguridad. La memoria virtual también habilita paginación, donde la memoria RAM física de un programa puede almacenarse en un disco (o, ahora, un flash más lento) cuando no se usa, y luego volver a llamar cuando una aplicación intenta acceder a la página. Además, dado que solo un programa puede residir en una página física física, en un sistema de paginación física, a) todos los programas se deben compilar para cargar en direcciones de memoria diferentes o b) cada programa debe usar código independiente de posición, o c) algunos conjuntos de programas no pueden ejecutarse simultáneamente.
El mapeo físico virtual se puede hacer en software (con soporte de hardware para las trampas de memoria) o en hardware puro. A veces, incluso las tablas de páginas están en un conjunto especial de memoria de hardware. No sé de sobra qué sistema embebido hace qué, pero cada computadora de escritorio tiene un TLB de hardware (traducción Lookaside Buffer, básicamente un caché para las asignaciones virtual-físicas) y algunos ahora tienen unidades avanzadas de asignación de memoria que ayudan con máquinas virtuales y similares.
Las únicas desventajas de la memoria virtual son la complejidad añadida en la implementación del hardware y un rendimiento más lento.
No está bien publicar duplicados solo porque todavía no ha recibido las respuestas. –
bien. Se eliminó la misma publicación anterior. –