Avances tecnolgicos de Java en Tiempo Real Gustavo Maldonado Rivera Perodo Enero-Marzo 2!" Avances tecnolgicos de Java en Tiempo Real El lengua#e Java e$iste desde principios de los a%os !&&'s( pero no )ue *asta el a%o de 2! cuando se introdu#o de manera o)icial la especi)icacin RTSJ para dotar a Java de las caractersticas necesarias para poder operar en sistemas en tiempo real+ Java se encuentra en constante desarrollo , maduracin , actualmente se implementa en muc*as aplicaciones comerciales e industriales con muc*o -$ito+ Java RTSJ dota a los programadores , dise%adores de un lengua#e )le$i.le( /ue permite crear desarrollos para este tipo de sistemas con gran velocidad( a*orrando de esta manera dinero , tiempo( al tiempo /ue se gana en porta.ilidad para di)erentes sistemas+ 0a evolucin de la especi)icacin comenz su andanza con un .orrador desde mediados del a%o 2 , continuamente *an sido lanzadas nuevas versiones de dic*a especi)icacin cada una introduciendo me#oras( /ue vuelven a Java en un lengua#e cada vez muc*o m1s co)ia.le para los entornos en tiempo real+ 2entro de las caractersticas principales /ue Java para entornos en tiempo real tenemos3 progrtamacin de tareas 4sc*eduling5( administracin de memoria4memor, sc*eduling5( sincronizacin 4s,nc*ronization5( mecanismo de eventos asncronos 4as,nc*ronous event *andling5( tra)erencia de control asncrona 4as,c*ronous trans)er o) control5 , acceso )sico a memoria 4p*,sical memor, access5+ Scheduling 6uando *a.lamos de tiempo real( tenemos /ue tener la seguridad de /ue las tareas se e#ecutar1n a tiempo , de manera predeci.le( para lo cual RTSJ introduce el concepto de o.#eto programa.le 4sc*edula.le o.#ect5+2ota de varios o.#etos para el mane#o de la programacin los cuales son( RealTimeT*read , sus su.clases , la As,ncEvent7andler , sus su.clases+ Tiempo de e#ecucin de los o.#etos signi)ica /ue el programador puede determinar por analisis del programa( prue.a del programa en implementaciones particulares o ama.as( los *ilos correspondientes para una e#ecucin completa antes de /ue la cadena de tiempo llegue a su )in+ Memory Management El recolector de .asura siempre *a sido considerado un o.st1culo para la programacin del tiempo real( ,a /ue introduce latencias considerado algo grandes+ El RTSJ provee una *o#a de direcciones( /ue provee una gran cantidad de e$tensiones de memoria( lo cual a,uda / eu el soporte para el mane#o de memoria no inter)iera con la capacidad de dotar capacidades de tiempo real+ Este o.#etivo es complementado asignando una u.icacin de los o.#etos )uera del recolector de .asura+ Synchronization Este t-rmino *ace re)erencia a la prioridad /ue de.e tener una tarea /ue tienen un uso m1s relevante /ue otros+ 0a prioridad m1s alta indica /ue la tarea o el *ilo tiene la categora de m1s elegi.le /ue otros+ En caso de /ue dos *ilos o tareas tengan la misma prioridad se seguir1 un es/uema de programacin 898:+ Asynchronous Event andling El mane#o de eventos asncronos comprende dos clases3 As,ncEven , As,ncEvent7andler+ ;n o.#eto As,nEvent representa algo /ue puede pasar , cuando esto ocurre pasa a ser un o.#eto de As,ncEvent7andler+ Asychronous Trans!er o! Control Muc*as veces el programador en tiempo real es en)rentado a ciertas situaciones donde el costo computacional de un algoritmo es mu, varia.le( por e#emplo( si e$iste un algoritmo iterativo cu,o tiempo de iteracin varia con respecto a la cantidad de iteraciones /ue se realizan+ El sistema antes de comenzar la iteracin( determina cu1nto tiempo re/uerir1 para e#ecutarse( para de esta manera trans)erir de manera asncrona el control dependiendo del tiempo calculado , asign1ndole una prioridad adecuada+ "hysical Memory Access El RTSJ de)ine clases /ue au$ilian al programador para /ue mediante cdigo tenga la capacidad de tener acceso directo a la memoria )sica+ Ra<Memro,Access de)ine m-todos /ue permiten al programador construir o.#etos /ue representen de manera directa direcciones )sicas en la memoria+ Conclusin Al analizar todos estas *erramientas /ue Java aporta para la programacin de sistemas en tiempo real( son realmente importantes( ,a /ue durante el estudio de esta materia( pro.a.lemente no e$ista otro lengua#e /ue sea tan )le$i.le , amiga.le para el desarrollo de este tipo de aplicaciones( sin em.argo sigue teniendo las desventa#as de ser un lengua#e interpretado , a pesar de los es)uerzos( el sistema de recoleccin de .asura( sigue siendo una gran impedimento por la gran latencia /ue sigue aportando( ,a /ue aun/ue separa esta )uncin del resto de la operacin del programa( sigue utilizando recursos del 6P;+ ;na de las consideraciones /ue se de.en tener so.re Java para tiempo real( es la gran )le$i.ilidad( a*orros de tiempo , dinero( as como la )acilidad para tener un control so.re el proceso de desarrollo de este tipo de aplicaciones+ Re!erencias =elliardi( R( =rosgol( 2i..le( P+( 7olmes( 2+ > ?ellings( A+ 42@5+ T*e Real-Time Speci)ication )or Java+ E+;+A+3 TimeS,s 6orp+