Você está na página 1de 7

COMANDO GENERAL DEL EJERCITO ESCUELA MILITAR DE INGENIERIA BOLIVIA

TRABAJO PRACTICO TEMA: PROGRAMACIN PARALELA 1. INTRODUCCIN

El presente trabajo prctico fue diseado utilizando programacin paralela, desarrollado mediante el lenguaje de programacin java y empleando especficamente hilos, la carrera entre tres animales (caballo, lobo, conejo) donde el ganador es elegido de forma aleatoria. Mediante el presente trabajo se ha querido demostrar de forma grafica el empleo de lo que son los hilos y gracias al editor de textos netbeanIDE 7.0 se puede comprobar mediante el cdigo la ejecucin de los hilos y as comprender de mejor manera todo el proceso que ejecuta la maquina al compilar mencionado programa. 2. OBJETIVO GENERAL

Disear y exponer hilos.

un programa utilizando programacin paralela y empleo de

3. FUNDAMENTACIN TERICA Para realizar el presente programa hemos recurrido a las siguientes herramientas: 3.1 Programacin Paralela El termino PROGRAMACIN PARALELA se refiere al uso de varios procesadores trabajando en conjunto para dar solucin a una tarea en comn, el proceso que se lleva a cabo es que los procesadores se dividen el trabajo y cada procesador hace una porcin del problema al poder intercambiar datos por una red de interconexin o a travs de memoria.

La programacin paralela permite resolver problemas que no caben en un solo procesador y que no se resuelven en un tiempo razonable, se pueden ejecutar problemas con mayor complejidad ms rpidamente. 3.2 NetBeans NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programacin Java, es un producto libre y gratuito sin restricciones de uso. La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados mdulos. 3.3 NetBeans IDE El IDE NetBeans es un entorno de desarrollo integrado - una herramienta para programadores pensada para escribir, compilar, depurar y ejecutar programas. Est escrito en Java - pero puede servir para cualquier otro lenguaje de programacin. Existe adems un nmero importante de mdulos para extender el IDE NetBeans. 3.4 Modularidad Un mdulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como mdulo. Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole nuevos mdulos. Debido a que los mdulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fcilmente por otros desarrolladores de software.

3.5 Java Java es un lenguaje de programacin y la primera plataforma informtica creada por Sun Microsystems en 1995. Es la tecnologa subyacente que permite el uso de programas punteros, como herramientas, juegos y aplicaciones de negocios. Java se ejecuta en ms de 850 millones de ordenadores personales de todo el mundo y en miles de millones de dispositivos, como dispositivos mviles y aparatos de televisin. El lenguaje Java se cre con cinco objetivos principales: Debera usar el paradigma de la programacin orientada a objetos. Debera permitir la ejecucin de un mismo programa en mltiples sistemas operativos. Debera incluir por defecto soporte para trabajo en red. Debera disearse para ejecutar cdigo en sistemas remotos de forma segura. Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++. 3.6 Hilos Para hablar de hilos en Java primeramente se necesita entender lo que es un hilo. Un hilo es un proceso que se est ejecutando en un momento determinado en nuestro sistema operativo, como cualquier otra tarea, esto se realiza directamente en el procesador. Existen los llamados 'demonios' que son los procesos que define el sistema en s para poder funcionar y otros que llamaremos los hilos definidos por el usuario o por el programador, estos ltimos

son procesos a los que el programador define un comportamiento e inicia en un momento especfico. En Java, el proceso que siempre se ejecuta es el llamado main que es a partir del cual se inicia prcticamente todo el comportamiento de nuestra aplicacin, y en ocasiones a la aplicacin le basta con este solo proceso para funcionar de manera adecuada, sin embargo, existen algunas aplicaciones que requieren ms de un proceso (o hilo) ejecutndose al mismo tiempo (multithreading), por ejemplo, se tiene una aplicacin de una tienda departamental de la cual se actualizan los precios y mercancas varias veces al da a travs de la red, se verifican los nuevos descuentos y dems pero que a su vez es la encargada de registrar las compras y todos movimientos que se realice con la mercanca dentro de la tienda, si se decide que dicha aplicacin trabajar de la manera simple y con un solo proceso (o hilo), el trabajo de la actualizacin de precios y mercancas debe de finalizar antes de que alguien pueda hacer algn movimiento con un producto dentro de la tienda, o viceversa, ya que la aplicacin no es capaz de mantener el proceso de actualizacin en segundo plano mientras se registra un movimiento. Si se toma este modelo mono-hilo el tiempo y dinero que se perder dentro de la tienda ser muchsimo mayor comparando con un modelo multi-hilo. En un modelo multi-hilo se pueden realizar todas las actualizaciones en segundo plano mientras se registra una o ms ventas o movimientos, cada proceso independiente del otro viviendo o ejecutndose al mismo tiempo dentro de la misma aplicacin. Al hablar de multi-hilo pudiera parecer que necesitamos ms de un procesador para realizar dichas tareas pero no es as, el procesador mismo junto con la mquina virtual de Java gestionan el flujo de trabajo y dan la impresin de que se puede ejecutar ms de algn proceso al mismo tiempo (aunque en trminos estrictos eso no es posible), de cualquier manera no ahondar en el funcionamiento del procesador, basta con entender que en Java, 2 o ms procesos pueden ejecutarse al mismo tiempo dentro de una misma aplicacin y para ello son necesarios los Threads o hilos.

Ahora que ya entendemos lo que son los hilos pasaremos a una definicin un poco ms especfica de Java. En Java un hilo o Thread puede ser 2 cosas: Una instancia de la clase java.lang.Thread. Un proceso en ejecucin.

Una instancia de la clase java.lang.Thread, no es ms que cualquier otro objeto, con variables y mtodos predefinidos. Un proceso en ejecucin es un proceso individual que realiza una tarea o trabajo, tiene su propia pila de informacin independiente a la de la aplicacin principal. Es necesario entender que el comportamiento de los hilos o threads vara de acuerdo a la mquina virtual, incluso el concepto ms importante a entender con los hilos en Java es que... "Cuando se trata de hilos, muy pocas cosas est garantizadas" Por ello se debe ser cautelosos al momento de interpretar el comportamiento de un hilo. Pasemos al cdigo. Crear un hilo (Thread):: Un hilo o proceso en Java comienza con una instancia de la clase java.lang.Thread, si analizamos la estructura de dicha clase podremos encontrar bastantes mtodos que nos ayudan a controlar el comportamiento de los hilos, desde crear un hilo, iniciarlo, pausar su ejecucin, etc. Aquellos mtodos que siempre tenemos que tener presentes con respecto a los hilos son: start() yield()

sleep() run()

La accin sucede dentro del mtodo run(), digamos que el cdigo que se encuentra dentro de dicho mtodo es el trabajo por hacer, por lo tanto, si queremos realizar diversas operaciones cada una simultnea pero de manera independiente, tendremos varias clases, cada una con su respectivo mtodo run(). Dentro del mtodo run() puede haber llamados a otros mtodos como en cualquier otro mtodo comn, pero la pila de ejecucin del nuevo proceso siempre comenzar a partir de la llamada al mtodo run(). 4. Conclusiones Minimiza el tiempo de ejecucin de programas. En la programacin en paralelo los programas se ejecutan a la vez en varios procesadores, mientras que en la programacin secuencial las instrucciones se realizan de una en una. La programacin paralela se puede realizar mediante dos mtodos: o El uso de hilos (threads), donde la memoria es compartida por todos los hilos. o El uso de distintos procesos, esta forma de hacer un programa radica en el uso de distintos procesos que interactan entre s mediante el uso de seales, esto quiere decir que se envan informacin los unos a los otros. Muchas instrucciones se ejecutan simultneamente (aparentemente). Se desconoce el orden de ejecucin de los programas o procesos.

BIBLIOGRAFA Pginas web:

http://ldp-roberto.blogspot.com/2010/11/que-es-la-programacion-paralela-lab.html http://www.cplusplus.com/forum/general/21818/ http://stackoverflow.com/questions/266168/simple-example-of-threading-in-c http://codebase.eu/tutorial/posix-threads-c/ https://gist.github.com/dannluciano/1305513 http://132.248.6.163/website/sites/default/files/intr-paralelismo-I.pdf http://ldp-roberto.blogspot.com/2010/11/que-es-la-programacion-paralela-lab.html http://webserver.dmt.upm.es/zope/DMT/Members/hermanns/docencia-ycursos/introduccion-programacion-paralela/introduccion-a-la-programacionparalela

Você também pode gostar