Materiales para la Unidad 11

Publicado: Lunes, 21 \21\UTC junio \21\UTC 2010 en 11. Concurrencia en Java
Presentación

Transcripción de la parte teórica de la unidad 11

Teoría

Ahora ya tenéis la base de la programación orientada a objetos. A partir de este nivel, simplemente debéis especializaros en lo que más os guste y dedicar tiempo y esfuerzo. La diferencia con respecto a otros lenguajes es que, con Java, ese tiempo/esfuerzo se reduce drásticamente.

Y para muestra, en los dos temas que quedan del módulo, veréis un par de ejemplos de lo sencillo que es abordar un problema, por específico que sea. Esto se debe a que, habitualmente, ya hay otras personas (cinco, quinientas, dos mil, un millón) que tienen esos mismos intereses y escriben código para solucionar ese problema o similares.

En el tema 11 veremos la gestión de procesos, en concreto, la concurrencia y sincronización entre procesos. Para que os hagáis una idea, un tema con este contenido utilizando el lenguaje C puede abordarse en aproximadamente un trimestre; sin embargo, nosotros emplearemos una quincena, es decir, seis veces menos tiempo en dar los mismos contenidos. Y además del ahorro de tiempo (que es importante), también hay una importante reducción del esfuerzo (que es, quizás, más importante). La complejidad de implementar la concurrencia en C es abismal, sin embargo, con Java es mucho más natural y se nos da gran cantidad de trabajo ya hecho.

Para el estudio de esta unidad, debéis leer el apartado 5.9 del material que venimos utilizando habitualmente y también el punto 6 de un nuevo documento que os he colgado en el Aula Virtual. Se trata del libro “Aprenda Java como si estuviera en primero” de Javier García de Jalón y otros autores, profesores de la Escuela Superior de Ingenieros de Navarra.

A continuación os haré una breve reseña sobre este tema.

Como ya sabéis, un ordenador tiene un único procesador por lo que únicamente pueden ejecutar una intrucción en un instante de tiempo. A medida que han avanzado los programas y, en concreto, los sistemas operativos, se ha visto la necesidad de poder ejecutar en paralelo varios programas, pero esto es incompatible con lo que hemos dicho anteriormente (un instante/una instrucción).

Los programadores comenzaron a estudiar técnicas para simular este efecto de multiejecución en un instante de tiempo y se llego a lo que hoy conocemos como sistemas operativos multitarea (la mayoría de los actuales). Obviamente es una emulación, por lo tanto consume recursos de nuestro sistema.

Así, actualmente no nos sorprendemos si estamos con nuestro ordenador escribiendo en este maravilloso blog 😉 mientras escuchamos el último éxito de nuestro grupo favorito. En este caso hay dos programas que parecen estar trabajando simultáneamente, el explorador web y el reproductor mp3. Pero esto no es posible, ya que únicamente tenemos un procesador, por lo que en realidad, se el sistema operativo está simulando esta multitarea.

Ahora ya tenemos procesadores de varios núcleos, pero siguen sin resolvernos el problema que abordamos en este tema. Imaginad el caso que tenemos un procesador de cuatro núcleos y necesitamos ejecutar cinco programas. Habrá un momento que siempre necesitaríamos más, por lo que la solución software es lo que necesitamos.

Pero además de esta ejecución de varias tareas (multitarea) también se ha creado la necesidad de ejecutar en un mismo programa varias tareas. Esto se consigue mediante el uso de hilos (threads en inglés). Es decir, además de poder escuchar nuestra música en el reproductor, también necesito (¡al mismo tiempo!) convertir esa música a otro formato para poder grabarme un cd de audio.

¡Y es que siempre pedimos más! Ahora bien, no nos quejemos de qué cosas más complicadas estamos estudiando. Esto nos lo pide el mercado (y vosotros mismos, apuesto a que sí).

Tanto la multitarea como el multihilo conllevan una serie de problemas, que vamos a ver muy por encima en este tema, como por ejemplo el problema del acceso a un trozo de código por parte de varios procesos (sección crítica). Pero esto lo veremos en una entrada del blog.

Hasta entonces, espero que disfrutéis de este tema.

Laboratorio

El laboratorio se visualiza mejor en alta definición (HD) y a pantalla completa.

También tienes la posibilidad de ver el video con subtítulos. Para ello, haz clic sobre el botón “Turn on Captions” (CC).

Undécima Práctica de Evaluación (PEV11)
Práctica de evaluación

La Undécima Práctica de Evaluación del módulo es una práctica dividida en dos partes.

  1. La primera parte trata la creación de un programa multihilo.

  2. La segunda parte trata la sincronización de hilos.

Tenéis una explicación exhaustiva en el enunciado de la prueba.

Recordad que para acceder a la evaluación cuatrimestral, la entrega de todas las PEVs es obligatoria (y cada una de ellas debe tener una nota superior a 2).

Sinopsis de la película "Ciberguerrilla"Documental

Mira el documental “Ciberguerrilla”. A continuación, comenta tus impresiones sobre lo que en él se dice en el foro del Aula Virtual.

Enlace al documental en Megavideo: http://www.megavideo.com/?v=J59XTFCT

Orientaciones didácticas

Las orientaciones didácticas de una unidad son un resumen (no más de un folio) con unas pequeñas pautas  que permiten al alumno hacerse una idea general de qué va a aprender en esa unidad – respecto a los contenidos teóricos – y cómo debe desarrollar la parte práctica.

En estas orientaciones también se incluye un registro organizado con los comentarios realizados por el alumnado durante el desarrollo de la unidad, que seguramente ayudarán a facilitar la comprensión de los conceptos teórico-prácticos.

Aquí tenéis las orientaciones didácticas de la unidad 11:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s