Tareas 2º – Programación de Servicios y Procesos – DAM e-learning resueltas

Hola a todos, hoy os dejo las tareas de programación de servicios y procesos de 2º de DAM de e-learning.

Esta es una recopilación de todas las tareas de programación de servicios y procesos de 2º de DAM que he realizado en mi canal de Youtube.

Pueden haber diferentes tareas según la región o instituto. Si quieres que agregue alguna tarea, contacta conmigo.

Contáctanos

Los enlaces de descarga contienen adfly, para saltar la publicidad, os dejo este video explicando como se hace.

Tarea 1

Ejercicio 1) Se compone de 3 partes:

  • Primera parte: implementa una aplicación que ordena un
    conjunto indeterminado de números que recibe a través de su entrada estándar; y muestra el resultado de la ordenación en su salida estándar. La aplicación se llamará ‘ordenarNumeros’.
  • Segunda parte: implementa una aplicación, llamada
    ‘aleatorios’, que genere al menos 40 números aleatorios
    (entre 0 y 100), y que los escriba en su salida estándar.
  • Tercera parte: Realiza un pequeño manual (tipo “¿Cómo se hace?” o “HowTo”), utilizando un editor de textos (tipo word o writer) en el que indiques, con pequeñas explicaciones y capturas, cómo has probado la ejecución de las aplicaciones que has implementado en este ejercicio. Entre las pruebas que hayas realizado, debes incluir una prueba en la que utilizando el operador “|” (tubería) redirijas la salida de la aplicación ‘aleatorios’ a la entrada de la aplicación ‘ordenarNumeros’.

Ejercicio 2) Se compone de 3 partes:

  • Primera parte: implementa una aplicación que escriba en un fichero indicado por el usuario conjuntos de letras generadas de forma aleatoria (sin sentido real). Escribiendo cada conjunto de letras en una línea distinta. El número de conjuntos de letras a generar por el proceso, también será dado por el usuario en el momento de su ejecución. Esta aplicación se llamará “lenguaje” y como ejemplo, podrá ser invocada así:

java -jar lenguaje 40miFicheroDeLenguaje.txt

Indicando que se generarán 40 palabras del lenguaje y serán guardadas en miFicheroDeLenguaje.txt

  • Segunda parte: implementa una aplicación, llamada ‘colaborar’, que lance al menos 10 instancias de la aplicación “lenguaje”. Haciendo que todas ellas, colaboren en generar un gran fichero de palabras. Cada instancia generará un número creciente de palabras de 10, 20, 30, … Por supuesto, cada proceso seguirá escribiendo su palabra en una línea independiente de las otras. Es decir, si lanzamos 10 instancias de “lenguaje”, al final, debemos tener en el chero 10 + 20 + 30 + … + 100 = 550 líneas.
  • Tercera parte: Realiza un pequeño manual (tipo “¿Cómo se hace?” o “HowTo”), utilizando un editor de textos (tipo word o writer) en el que indiques, con pequeñas explicaciones y capturas, cómo has probado la ejecución de las aplicaciones que has implementado en este ejercicio.

Aquí puedes descargar el ejemplo completo.

Tarea 2

Ejercicio 1

De igual manera a lo visto en el tema, ahora te proponemos un ejercicio del tipo productor-consumidor que mediante un hilo productor almacene datos (15 caracteres) en un búfer compartido, de donde los debe recoger un hilo consumidor (consume 15 caracteres). La capacidad del búfer ahora es de 6 caracteres, de manera que el consumidor podrá estar cogiendo caracteres del búfer siempre que éste no esté vacío. El productor sólo podrá poner caracteres en el búfer, cuando esté vacío o haya espacio.

Te mostramos una posible salida del programa que debes realizar.

Ejercicio 2

De igual manera a lo visto en el tema, ahora te proponemos que resuelvas el clásico problema denominado “La cena de los filósofos” utilizando la clase Semaphore del paquete java.util.concurrent . El problema es el siguiente: Cinco filósofos se sientan alrededor de una mesa y pasan su vida comiendo y pensando. Cada filósofo tiene un plato de arroz chino y un palillo a la izquierda de su plato. Cuando un filósofo quiere comer arroz, cogerá los dos palillos de cada lado del plato y comerá. El problema es el siguiente: establecer un ritual (algoritmo) que permita comer a los filósofos. El algoritmo debe satisfacer la exclusión mutua (dos filósofos no pueden emplear el mismo palillo a la vez), además de evitar el interbloqueo y la inanición.

Te mostramos una posible salida del programa que debes
realizar.

Aquí puedes descargar el ejemplo completo.

Tarea 3

La tarea de la unidad esta dividida en 2 actividades.

Actividad 3.1. El objetivo del ejercicio es crear una aplicación cliente/servidor
que se comunique por el puerto 2000 y realice lo siguiente:

El servidor debe generar un número secreto de forma aleatoria entre el 0 al
100. El objetivo de cliente es solicitarle al usuario un número y enviarlo al
servidor hasta que adivine el número secreto. Para ello, el servidor para cada
número que le envía el cliente le indicará si es menor, mayor o es el número
secreto del servidor.

Actividad 3.2.

El objetivo del ejercicio es crear una aplicación cliente/servidor que permita el envío de ficheros al cliente. Para ello, el cliente se conectará al servidor por el puerto 1500 y le solicitará el nombre de un fichero del servidor.
Si el fichero existe, el servidor, le enviará el fichero al cliente y éste lo mostrará por pantalla. Si el fichero no existe, el servidor le enviará al cliente un mensaje de error. Una vez que el cliente ha mostrado el fichero se finalizará la conexión.

Aquí puedes descargar el ejemplo completo.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *