memory-management - sistemas - en cual de las capas se generan cada una de las direcciones físicas y lógicas
Diferencia entre el direccionamiento físico y el concepto de direccionamiento virtual (2)
Esta es una nueva presentación, porque no recibo ninguna respuesta de superuser.com. Perdón por el malentendido.
Necesito saber la diferencia entre el direccionamiento físico y el concepto de direccionamiento virtual en los sistemas integrados.
¿Por qué el concepto de direccionamiento virtual se implementa en sistemas integrados?
¿Cuál es la ventaja del direccionamiento virtual sobre un sistema con un concepto de direccionamiento físico en sistemas integrados?
¿Cómo se hace la asignación entre el direccionamiento virtual y el direccionamiento físico en sistemas integrados?
Por favor, explique el concepto anterior con algunos ejemplos simples en alguna arquitectura simple.
El VAX (dirección virtual eXtented por Digital Equipment Corp que se convirtió en Compaq, que se convirtió en HP) es un muy buen ejemplo de un sistema de hardware embebido virtual. Era una mini computadora de 32 bits que tenía un sistema operativo llamado VMS o Virtual Memory Systems. Dave Cutler fue uno de los principales arquitectos de los sistemas y mucho más tarde escribió Kernal para Windows NT. Él es una muy buena lectura para esto y otras cosas. El Vax tenía un hardware especial para el control del espacio virtual y el control del acceso al código de operación para la seguridad a través del hardware ... muy seguro. Este sistema fue o es el abuelo de la PC del día modfern en el nivel Kernal. El primer BSOD que vi en WNT 3.51 pude leer porque provenía del volcado de emergencia utilizado en VMS para detener el sistema cuando era inestable. Por el camino Mira el nombre VMS y WNT y encontrarás las siguientes letras en el alhabet de VMS que hace que el término WNT. Esto no fue un accidente. tal vez un golpe en DEC por dejarlo ir.
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 memoria de aplicaciones van a una tabla de páginas, 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 permite la paginación , donde la 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 particular, en un sistema de paginación física, a) todos los programas deben compilarse para cargarse en diferentes direcciones de memoria 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 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.