Vous êtes sur la page 1sur 2

Programacin Concurrente y de Tiempo Real Grado en Ingeniera Informtica Asignacin de Prcticas Nmero 5

Se le plantean a continuacin un conjunto de ejercicios sencillos de programacin sobre herencia, interfaces y clases contenedoras, que debe resolver de forma individual como complemento a la segunda sesin prctica. Para cada uno, debe desarrollar un programa independiente que lo resuelva. Documente todo su cdigo con etiquetas (ser sometido a anlisis con javadoc). Si lo desea, puede tambin agrupar su cdigo en un paquete de clases, aunque no es obligatorio.

Ejercicios

1. Escriba un programa prodMat.java que multiplique matrices de ariedad compatible. Utilizando la tcnica de implementacin de la interfaz Runnable, escriba ahora una clase matConcurrente.java que "paralelice" para multiplicar concurrentemente matrices cuya dimensionalidad sea compatible. Escriba tambin un programa UsamatConcurrente.java que la utilice. 2. Utilizando los programas anteriores, vaya aumentado progresivamente la dimensionalidad de las matrices y comprueba dos parmetros: el pico % de CPU que en cada caso se requiere para realizar el producto -secuencial y concurrente- y el tiempo que se emplea para ello. Para esto ltimo, el mtodo System.currentTimeMillis() y las clases Date y DateFormat le sern de mucha ayuda. Intente trazar curvas % uso vs tamao de las matrices y tiempo de procesamiento vs tamano de las matrices. Redacte con todo ello -siguiendo las "Normas de Redaccin" publicadas en el Campus Virtual un documento llamado anlisis.pdf y exponga las conclusiones a las que llega sobre las ventajas e inconvenientes de usar hilos en el caso del producto matricial. 3. (Diseo Abierto) Los hilos son de mucha utilidad si queremos disear un programa servidor, que se encuentre a la espera de ofrecer un servicio a un potencial cliente. La estrategia bsica en estos casos consiste en activar un hilo que d servicio a una peticin cuando la recibe pasndole el trabajo, mientras el programa servidor principal queda a la espera de otra nueva peticin de

c Antonio Tomeu

trabajo. En nuestro caso el trabajo que los clientes pueden pedir al servidor debern cumplir con la siguiente interface: public public public public public public } interface Vect{ void escalarVector(double factorEscalado); double prodEscalarVector (Vector v); Vector sumVector (Vector v); double normaVector (Vector v); boolean ortogonalVector (Vector v);

Debe escribir una clase Vector.java que abstraiga el concepto de vector, y otra que implemente como usted considere oportuno la interfaz, llamada ImpVector.java; escriba tambin un servidor serVec.java que est a la espera de peticiones de servicio y que una vez que la recibe active un hilo que la procese. En esa ocasin, el servicio se pedir desde teclado pulsando la tecla "s", en cuyo momento el hilo servidor ofrecer una interfaz de usuario que demandar qu operacin se desea y, en su caso, leer los datos del vector que se quiera procesar. Para hacer los clculos, instance un objeto vector en su programa principal, y realice todas las operaciones demandadas sobre l. Si necesita alguna clase adicional, nmbrelas SerVec_x.java, donde x=1,2,3... segn las que necesite.

Procedimiento y Plazo de Entrega

Se ha habilitado una tarea de subida en Moodle que le permite subir cada chero que forma parte de los productos de la prctica de forma individual en el formato original. Para ello, suba el primer chero de la forma habitual, y luego siga la secuencia de etapas que el propio Moodle le ir marcando. Recuerde adems que: No debe hacer intentos de subida de borradores, versiones de prueba o esquemas de las soluciones. Moodle nicamente le permitir la subida de los cheros por una sola vez. El plazo de entrega de la prctica se encuentra jado en la tarea de subida del Campus Virtual. Entregas fuera de este plazo adicional no sern admitidas, salvo causa de fuerza mayor debidamente justicadas. Se recuerda que la entrega de todas las asignaciones de prcticas es obligatoria, y requisito indispensable para poder superar las prcticas de la asignatura, y por tanto a la asignatura en s misma.