La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Maquina Virtual La máquina virtual de Java o JVM es un entorno de ejecución para aplicaciones de Java, cuya finalidad es la de adaptar los programas Java.

Presentaciones similares


Presentación del tema: "Maquina Virtual La máquina virtual de Java o JVM es un entorno de ejecución para aplicaciones de Java, cuya finalidad es la de adaptar los programas Java."— Transcripción de la presentación:

1 Maquina Virtual La máquina virtual de Java o JVM es un entorno de ejecución para aplicaciones de Java, cuya finalidad es la de adaptar los programas Java compilados a las características del sistema operativo donde se van a ejecutar.

2 Proceso de compilación y ejecución de aplicaciones Java Código Fuente Byte Codes VM (linux) VM (linux) S.O. Linux VM (Windows) VM (Windows) S.O. Windows VM (otro) VM (otro) Otro S.O..java.class Compilación Ejecusión

3 Todo programa Java está organizado en clases, éstas se codifican en archivos de texto con extensión.java. Cada archivo de código fuente. Java puede contener una o varias clases, aunque lo normal es que haya un archivo por clase. Cuando se compila un.java se genera uno o varios archivos.class de código binario (uno por cada clase) denominados bytecodes, que son independientes de la arquitectura. Dicha independencia supone que los bytecodes no pueden ser ejecutados directamente por ningún sistema operativo, es durante la fase de ejecución cuando los archivos.class se someten a un proceso de interpretación, consistente en traducir los bytecodes a código ejecutable por el sistema operativo para el que ha sido diseñada.

4 Los sistemas de programación como PVM (Máquina virtual paralela) y Linda se valen de grupos de máquinas heterogéneas interconectadas para proporcionar un entorno de computación paralela Estos sistemas permiten a los usuarios resolver problemas de gran tamaño en redes de estaciones de trabajo creando la ilusión de una sola máquina paralela.

5 La unidad básica de cómputo en PVM se llama tarea (task) y es análoga a un proceso de UNIX. Un programa PVM invoca funciones de biblioteca PVM para crear tareas. Las tareas que cooperan ya sea mediante comunicación o sincronización se organizan en grupos llamados cómputos (computation). Pvm maneja comunicación directa, difusión y barreras dentro de un cómputo Tarea cómputo Cómputo 2 Cómputo 1 Salida y exhibición Entrada y partición

6 Para ejecutar una aplicación PVM, lo primero que debe hacer el usuario es designar el conjunto de máquinas o nodo que constituyen la máquina virtual y luego inicia el demonio de control de PVM, pvmd, en cada uno de estos nodos El demonio de control se comunica con la consola de usuario y se encarga de la comunicación y control de las tareas en su máquina.

7 En la siguiente figura se muestra cómo se establece la correspondencia entre una aplicación y la máquina virtual. Las tareas que constituyen un cómputo lógico no necesariamente se asignan al mismo nodo; podrían distribuirse entre todos los nodos de la máquina virtual. PVMD Nodo 1 Nodo 2 Nodo 3 Entrada y partición Salida y exhibición Consola del usuario

8 La máquina virtual no muy paralela (NTPVM) Es un despachador que posee muchas de las características de un demonio de control PVM, pvmd. El despachador NTPVM se encarga de crear y controlar tareas, como se muestra en la siguiente figura Entrada estándar Despachador NTPVM Tarea Salida estándar Nodo El despachador recibe solicitudes a través de su entrada estándar y responde a través de su salida estándar. (Posteriormente, la entrada y la salida estándar se pueden redirigir a puertos de comunicación de la red.) El despachador podría recibir una solicitud pidiéndole crear una tarea o enviar de nuevo datos a una tarea que esta bajo su control

9 Una tarea no es más que un proceso que ejecuta un programa especificado. Cada tarea se identifica mediante un ID de cómputo y un ID de tarea. Cuando el despachador recibe una solicitud para crear una tarea con un ID de cómputo y un ID de cómputo y un ID de tarea determinados, crea un par de entubamientos y bifurca un hijo para ejecutar la tarea. Entrada estándar Despachador NTPVM Tarea Salida estándar [writefd] En la figura se muestra la capa de comunicación entre una tarea y su despachador. El entubamiento que lleva la comunicación a la tarea hija se etiqueta con writefd en el extremo del despachador. El hijo redirige su entrada estándar a este entubamiento. De forma similar, el entubamiento que lleva la comunicación del hijo al despachador se rotula con readfd en el extremo del despachador. El hijo redirige su salida estándar a este entubamiento. [ 0 ] [writefd] [1] [ 0 ]

10 El despachador se comunica con el mundo exterior leyendo los paquetes de su entrada estándar y escribiendo paquetes a una salida estándar. El despachador podría recibir un paquete indicándole que debe crear una tarea nueva, o un paquete de datos destinado a una tarea que ésta bajo su control. El despachador envía a su vez las salidas generadas por las tareas a su propia salida estándar en forma de paquetes.

11 Typedef enum ptype {START_TASK, DATA, BROADCAST, DONE, TERMINATE, BARRIER} packet_t; Typedef struct { int comp_id; int task_id; packet_t type; int length; } task_packet_t; Typedef struct { int comp_id; /* ID de computo para la tarea */ int task_id; /* ID de tarea para la tarea */ int writedf; /* contiene fd de despachador hijo */ int readfd; /* contiene fd de hijo despachador */ int total_packs_sent; int total_bytes_sent; int total_packs_recv; pid_t task_pid /* ID de proceso de la tarea bifurcada */ int barrier; /* número de barrera o -1 si no está en la barrera */ int end_of_input /* true si ya no hay entradas en la barrera */ } task_t; #define MAX_PACK_SIZE 1024 #define MAX_TASKS 10 Typedef enum ptype {START_TASK, DATA, BROADCAST, DONE, TERMINATE, BARRIER} packet_t; Typedef struct { int comp_id; int task_id; packet_t type; int length; } task_packet_t; Typedef struct { int comp_id; /* ID de computo para la tarea */ int task_id; /* ID de tarea para la tarea */ int writedf; /* contiene fd de despachador hijo */ int readfd; /* contiene fd de hijo despachador */ int total_packs_sent; int total_bytes_sent; int total_packs_recv; pid_t task_pid /* ID de proceso de la tarea bifurcada */ int barrier; /* número de barrera o -1 si no está en la barrera */ int end_of_input /* true si ya no hay entradas en la barrera */ } task_t; #define MAX_PACK_SIZE 1024 #define MAX_TASKS 10

12 Un ID de cómputo Un ID de tarea Un tipo de paquete La longitud de la información del paquete La Información del paquete Un ID de cómputo Un ID de tarea Un tipo de paquete La longitud de la información del paquete La Información del paquete


Descargar ppt "Maquina Virtual La máquina virtual de Java o JVM es un entorno de ejecución para aplicaciones de Java, cuya finalidad es la de adaptar los programas Java."

Presentaciones similares


Anuncios Google