Publicado el 28 de Marzo del 2019
2.918 visualizaciones desde el 28 de Marzo del 2019
529,4 KB
30 paginas
Creado hace 22a (04/10/2002)
Fundamentos de la
Máquina Virtual Java y el
Entorno .NET
Trabajo Práctico
Teoría y Aplicaciones de la
Informática 2
Nathalie M. Aquino Salvioni
Juan Carlos Frutos Acosta
Universidad Católica Nuestra Señora de la Asunción
Facultad de Ciencias y Tecnología
Ingeniería Informática
5to. Año – 10mo. Semestre.
Octubre – 2002
Índice
1. Introducción.................................................................................................................. 3
2. La Máquina Virtual Java – MVJ (Java Virtual Machine - JVM)................................. 4
2.1 Java ......................................................................................................................... 4
2.2 La Máquina Virtual Java ........................................................................................ 5
2.3 La Plataforma Java (Sistema en Tiempo de Ejecución)......................................... 6
2.3.1 Motor de Ejecución ......................................................................................... 7
2.3.2 El Conjunto de Instrucciones del Procesador Virtual...................................... 7
2.3.3 El Verificador de Java ..................................................................................... 8
2.3.4 Administrador de Memoria ............................................................................. 8
2.3.5 Administrador de Errores y Excepciones ........................................................ 9
2.3.6 Soporte para Métodos Nativos ........................................................................ 9
2.3.7 Interfaz de Hilos ............................................................................................ 10
2.3.8 Cargador de Clases ........................................................................................ 10
2.3.9 Arquitectura de Seguridad en Java ................................................................ 10
2.4 Arquitectura.......................................................................................................... 12
2.4.1 Registros ........................................................................................................ 12
2.4.2 Pila................................................................................................................. 13
2.4.3 Montículo de Colección de Desperdicios...................................................... 13
2.4.4 Área de Almacenamiento de Métodos........................................................... 13
2.4.5 Conjunto de Instrucciones de la JVM ........................................................... 13
2.5 Deficiencias de la MVJ......................................................................................... 14
3. El Entorno .NET......................................................................................................... 15
3.1 El lenguaje común en tiempo de ejecución (CLR)............................................... 16
3.1.1 Sistema de tipos común (CTS) ...................................................................... 17
3.1.1.1 Clasificación de tipos.............................................................................. 17
3.1.1.2 Definición de tipos ................................................................................. 18
3.1.1.3 Tipos Valor............................................................................................. 18
3.1.1.4 Tipos Referencia..................................................................................... 19
3.1.2 Metadatos ...................................................................................................... 19
3.1.2.1 Atributos ................................................................................................. 20
3.1.3 Sistema de ejecución ..................................................................................... 21
3.1.3.1 Lenguaje intermedio MSIL .................................................................... 21
3.1.3.2 Compilación JIT ..................................................................................... 21
3.1.3.3 Recolector de basura............................................................................... 23
3.1.3.4 Seguridad................................................................................................ 23
3.2 Librería de Clases Base (BCL)............................................................................. 25
3.3 Especificación del Lenguaje Común (CLS) ......................................................... 25
3.3.1 Código conforme con CLS............................................................................ 26
3.3.2 Herramientas conformes con CLS................................................................. 26
3.4 Lenguajes.............................................................................................................. 26
3.4.1 Opción de lenguaje ........................................................................................ 26
3.4.2 C# (C Sharp).................................................................................................. 27
4. Conclusiones............................................................................................................... 29
5. Bibliografía................................................................................................................. 30
2
1. Introducción
El presente trabajo trata sobre la Máquina Virtual Java y el Entorno .NET.
Se describe la arquitectura de la Máquina Virtual Java, que es parte medular de toda la
tecnología Java. Se hace énfasis en sus componentes principales, como el procesador
virtual Java, que se encarga de ejecutar los códigos de operación (bytecodes) generados
por los compiladores Java, el verificador de código, que junto con el cargador de clases
y el administrador de seguridad, se encargan de implementar los mecanismos empleados
para proporcionar seguridad a los usuarios de Java. Además se van viendo las
características del lenguaje Java y los puntos fuertes y débiles de la tecnología Java en
general.
En cuanto al Entorno .NET se analizan los componentes principales, el Lenguaje
Común en Tiempo de Ejecución (CLR), el Sistema Común de Tipos (CTS), el Lenguaje
Intermedio de Microsoft (MSIL), entre otros aspectos. También se dan unas
características del lenguaje C#.
3
2. La Máquina Virtual Java – MVJ (Java Virtual Machine
- JVM)
2.1 Java
Java es un lenguaje de programación de Sun Microsystems, que fue concebido bajo la
dirección de James Gosling y Bill Joy. Es un lenguaje de propósito general, de alto nivel, y
orientado a objetos puro, en el sentido de que no hay ninguna variable, función o constante que
no esté dentro de una clase.
Los tipos de programas más comunes que se pueden hacer con Java son los applets (se ejecutan
en el navegador de la máquina cliente) y las aplicaciones (programas que se ejecutan
directamente en la JVM). Otro tipo especial de programa se denomina servlet que es similar a
los applets pero se ejecutan en los servidores Java.
El lenguaje Java es a la vez compilado e interpretado. Con el compilador se convierte el código
fuente que reside en archivos cuya extensión es .java, a un conjunto de instrucciones que recibe
el nombre de bytecodes que se guardan en un archivo cuya extensión es .class. Estas
instrucciones son independientes del tipo de ordenador. El intérprete ejecuta cada una de estas
instrucciones en un ordenador específico (Windows, Macintosh, etcétera). Solamente es
necesario, por tanto, compilar una vez el programa, pero se interpreta cada vez que se ejecuta en
un ordenador. Esto se ilustra en la Figura 1. Actualmente, los intérpretes pueden ser
remplazados por la generación de código justo en el momento (Just in Time Code
Generation), como se explicará más adelante.
Figura 1. Java. Compilación – Interpretación.
El código que generan los compiladores del lenguaje Java no es específico de una máquina
física en particular, sino de una máquina virtual. Aún cuando existen múltiples implantaciones
de la Máquina Virtual Java, cada una específica de la plataforma sobre la cual subyace, existe
una única especificación de la máquina virtual, que proporciona una vista independiente del
hardware y del sistema operativo sobre el que se esté trabajando.
4
Se dice que el código Java es portable, debido a que es posible ejecutar el mismo archivo de
clase (.class), sobre una amplia variedad de arquitecturas de hardware y de software, sin
ninguna modificación.
Java es un lenguaje dinámico, debido a que las clases son cargadas en el momento en que son
necesitadas (dinámicamente), ya sea del sistema de archivos local o desde algún sitio de la red
mediante algún protocolo URL.
Java tiene la capacidad de aumentar su sistema de tipos de datos dinámicamente o en tiempo de
ejecución. Este "enlace tardío" (late-binding) significa que los programas sólo crecen al tamaño
estrictamente necesario, aumentando así la eficiencia del uso de los recursos.
Debido a que Java nació en la era post-Internet, fue diseñado con la idea de la seguridad y la
fiabilidad, por lo que se le integraron varias capas de seguridad para evitar que programas
maliciosos pudiesen causar daños en los sistemas, sobre los que se ejecuta la implantación de la
Máquina Virtual Java.
2.2 La Máquina Virtual Java
La Máquina Virtual Java es el entorno en el que se ejecutan los programas Java, su misión
principal es la de garantizar la portabilidad de las aplicaciones Java. Define esencialmente un
ordenador abstracto y especifica las instrucciones (bytecod
Comentarios de: Fundamentos de la Máquina Virtual Java y el Entorno .NET (0)
No hay comentarios