Algo de culturilla:
http://www.sc.ehu.es/sbweb/fisica/c...irtual.htm
La Máquina Virtual Java (MVJ)
La Máquina Virtual Java es el núcleo del lenguaje de programación Java. De hecho, es imposible
ejecutar un programa Java sin ejecutar alguna implantación de la MVJ. En la MVJ se encuentra el
motor que en realidad ejecuta el programa Java y es la clave de muchas de las características
principales de Java, como la portabilidad, la eficiencia y la seguridad.
Siempre que se corre un programa Java, las instrucciones que lo componen no son ejecutadas
directamente por el hardware sobre el que subyace, sino que son pasadas a un elemento de software
intermedio, que es el encargado de que las instrucciones sean ejecutadas por el hardware. Es decir,
el código Java no se ejecuta directamente sobre un procesador físico, sino sobre un procesador
virtual Java, precisamente el software intermedio del que habíamos hablado anteriormente.
La representación de los códigos de instrucción Java (bytecode) es simbólica, en el sentido de que
los desplazamientos e índices dentro de los métodos no son constantes, sino que son cadenas de
caracteres o nombres simbólicos. Estos nombres son resueltos la primera vez que se ejecuta el
método, es decir, el nombre simbólico se busca dentro del archivo de clase (.class) y se determina
el valor numérico del desplazamiento. Este valor es guardado para aumentar la velocidad de futuros
accesos. Gracias a esto, es posible introducir un nuevo método o sobreescribir uno existente en
tiempo de ejecución, sin afectar o romper la estructura del código.
Sun utiliza el término "Máquina Virtual Java", para referirse a la especificación abstracta de una
máquina de software para ejecutar programas Java. La especificación de esta máquina virtual, define
elementos como el formato de los archivos de clases de Java (.class), así como la semántica de cada
una de las instrucciones que componen el conjunto de instrucciones de la máquina virtual. A las
implantaciones de esta especificación se les conocen como "Sistemas en Tiempo de Ejecución Java".
Ejemplos de Sistemas de tiempo de ejecución son el Navegador de Nestcape, el Explorador de Microsoft
y el programa Java (incluido en el JDK). Un sistema de tiempo de ejecución incluye típicamente:
Motor de ejecución. El procesador virtual que se encarga de ejecutar el código (bytecode), generado
por algún
compilador de Java o por algún ensamblador[3] del procesador virtual Java.
Manejador de memoria. Encargado de obtener memoria para las nuevas instancias de objetos, arreglos,
etcétera, y realizar tareas de recolección de basura.
Manejador de errores y excepciones. Encargado de generar, lanzar y atrapar excepciones.
Soporte de métodos nativos. Encargado de llamar métodos de C++ o funciones de C, desde métodos Java
y viceversa.
Interfaz multihilos. Encargada de proporcionar el soporte para hilos y monitores.
Cargador de clases. Su función es cargar dinámicamente las clases Java a partir de los archivos de
clase (.class).
Administrador de seguridad. Se encarga de asegurar que las clases cargadas sean seguras, así como
controlar el acceso a los recursos del sistema.
Saludos,
Enrique Cortés
Windows XP Pro 2600-SP1
ekort@hotmail.com
Reglas de conducta de los grupos de noticias:
http://support.microsoft.com/defaul...newsreglas
Leer las respuestas