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.

Slides:



Advertisements
Presentaciones similares
REDES DE AREA LOCAL Interconexión de computadoras Sistemas distribuidos Red de computadoras Escala LAN (Local Área Network) – 10 m a 1 Km. MAN (Metropolitan.
Advertisements

Tabla de Contenido Concurrencia.
TEMA 1 Introducción a la Programación Concurrente
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
LENGUAJES PARALELOS Chang y Smith (1990) clasificación:
MAC OS.... CONCEPTOS GENERALES
Curso de Java Capitulo 1: Introducción a Java Profesor:
Sistema operativo Componentes de un sistema operativo
INTRODUCCIÓN A JAVA.
Estructura de un Sistema Operativo
Ing. Enrique Meneses. Son las instrucciones detalladas que controlan el funcionamiento de un sistema de computación. Funciones: 1. Administrar los recursos.
Computación PROGRAMACIÓN.
Servicios de red e Internet
Los servicios de red son la fundación de una red de trabajo en un ambiente de computadoras. Generalmente los servicios de red son instalados en uno o.
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Java Applets Ing. Martín Jiménez.
Temas Operaciones básicas Instalando el compilador
INICIALIZACION Y APAGADO
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Tema 1 Introducción a la programación (Lenguaje java).
Programación 1 Introducción
INTRODUCCIÓN A LA PROGRAMACIÓN
INSTALACIÓN Y MANTENIMIENTO DE SISTEMAS OPERATIVOS
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
PROGRAMACIÓN ORIENTADA A OBJETOS
Direccionamiento IP.
Primer Programa en JAVA
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
Java Mayra M. Méndez Anota.
Boletín N° Correo electrónico: INTRODUCCIÓN El Consejo de Informática, por este medio está dando.
Elemento Lógico (Software)
TRADUCTOR DE UN PROGRAMA
Ing. Karen Torrealba de Oblitas
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Introducción a la Programación. Lenguaje de Máquina.
INTRODUCCIÓN A LAS COMUNICACIONES DE DATOS José Estay A.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
Programación I MC José Andrés Vázquez Flores
TIPOS DE SOFTWARE Se denomina software a un programa, equipamiento lógico o soporte lógico necesario para hacer posible la realización de una tarea con.
Funcionalidad de la capa de Aplicación y la capa de Transporte. Capas superiores.
1.4 Traductor y Su estructura
Ejecución de un programa escrito en Java Java es un lenguaje que se ejecuta con un intérprete a diferencia de Pascal o C que se compilan para producir.
Curso de Java La tecnología Java
Introducción a los Sistemas Operativos
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Leonard Camacho. DCom  Tecnología propietaria de Microsoft.  Extiende el modelo COM de Microsoft.  La “D” es debido al uso de su versión DCE/RCP, conocida.
INTEGRANTES LINA JIMÉNEZ LOZANO ROSA ELENA REINA CARLOS VILLADIEGO MARIANO SEPULVEDA.
LENGUAJES DE PROGRAMACIÓN
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Arquitectura de Von Neumann
Ejecución de un programa escrito en Java Java es un lenguaje que se ejecuta con un intérprete a diferencia de Pascal o C que se compilan para producir.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
FUNDAMENTOS DE PROGRAMACION
COMPONENTES DEL SISTEMA OPERATIVO.
Sistemas Distribuidos
Algorit moAlgorit mo An á lisisAn á lisis Argumen toArgumen to Asignación Asociación Cometar ioCometar io Compilación Constan teConstan te Definición.
1 Ana Mercedes Cáceres Instructor: Raúl Aguilar Año 2006 [Parte I ]
Sistema operativo Unix
Explicación de los Temas del Segundo Período.
ARQUITECTURA DE SISTEMAS OPERATIVOS.
 Es un programa escrito en Java y que forma parte de los componentes de una página de Internet. Los Applets han sido usados para proporcionar funcionalidad.
Algoritmos y Programación III
PRINCIPIOS DE PROGRAMACIÓN
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Definición De Software Y Hardware
Diseño y Programación Orientados a Objetos1 Introducción a Java.
Fundamentos de Programación Unidad I Conceptos Básicos.
 DIANA GARCIA VALERIO. CONCEPTO DE FLUJO DE JAVA:  La información que necesita un programa para su función se obtiene mediante una entrada de datos.
El Sistema Operativo es el software básico necesario para el funcionamiento de cualquier ordenador Los Sistemas Operativos están en continua evolución.
Entorno de Trabajo e Introducción a Java Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 1.
Transcripción de la presentación:

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.

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

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.

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. Linda se basa en un modelo de programación de espacio de tuplas y proporciona una abstracción de transferencia de mensajes. En ambos casos, el usuario percibe un solo sistema unificado, y los detalles de la red y las maquinas que constituyen la máquina virtual no son visibles directamente.

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 Entrada y partición Cómputo 2 Cómputo 1 Tarea Salida y exhibición cómputo Diagrama lógico de una aplicación que se ejecuta en una máquina virtual VPM

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. El demonio de control se comunica con la consola de l usuario y se encarga de la comunicación y control de las tareas en su máquina. Cuando la PVM necesita enviar entradas a una tarea en particular, envía los datos al demonio pvmd del nodo destino, el cual a su vez los reenvía a la tarea apropiada. De forma similar una tarea tarea produce salidas enviando un mensaje a su pvmd, el cual a su vez reenvía el mensaje al pvmd de la consola, que entonces envía el mensaje a la tarea de salida de la aplicación.

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. Nodo 2 Nodo 1 PVMD PVMD Nodo 3 PVMD Entrada y partición PVMD Consola del usuario Salida y exhibición

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 Salida estándar Nodo Tarea 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

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 [ 0 ] Despachador NTPVM Salida estándar [1] [writefd] [writefd] [ 0 ] [1] Tarea 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.

Proyecto NTPVM Las tareas del NTPVM son procesos independientes agrupados en unidades llamadas cómputos . El despachador se encarga de crear y gestionar las tareas. En general, las tareas de un cómputo no tienen que residir en la misma máquina, y la especificación del proyecto se diseño pensando en esta extensión. 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. El despachador envía a su vez las salidas generadas por las tareas a su propia salida estándar en forma de paquetes. En las primeras partes del proyecto, las tareas envían datos ASCII y el despachador envuelve los datos en un paquete . Posteriormente, las tareas generaran los paquetes ellas mismas.

El programa muestra el archivo de encabezado ntpvm El programa muestra el archivo de encabezado ntpvm.h que contiene las definiciones de tipo pertinentes para el despachador. 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; 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

Los paquetes del despachador tienen el siguiente formato 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 Los primeros cuatro elementos de un paquete constituyen el encabezado del paquete, de longitud fija, que se almacena en una estructura de tipo task_packet_t. Si se supone que la porción de información del paquete no contiene más de MAX_PACK_SIZE bytes. El despachador mantiene información acerca de cada una de la tareas activas en un arreglo global tasks de tipo task_t. No permita que el despachador ejecute más de MAX_TASKS tareas simultaneas. El arreglo tasks se declara mediante tasks_t tasks[ MAX_TASKS ];