Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Actividad 4.

Proyecto integrador etapa 1

Elementos y
funcionalidades de la
programación concurrente.

Aplicación de la programación
concurrente (sección crítica y
exclusión mutua).

Solución de un problema de
análisis numérico.

Introducción

Esta actividad consiste en aplicar los conocimientos adquiridos a lo largo del curso y
retomar lo aprendido en cada una de las actividades realizadas, lo que garantiza la
transversalidad de los contenidos revisados para fortalecer el desarrollo de competencias
y lograr el fin de formación planteado.

Página 2 de 8
Objetivo

El objetivo del Proyecto es aplicar de manera conveniente los modelos y técnicas de la


programación concurrente, comenzando con la solución de problemas clásicos lo que
permite conocer y dominar este paradigma de implementación de software.
Posteriormente se abre la posibilidad de aplicar estos conocimientos en un problema bien
delimitado, concreto y que conceda habilidades para utilizar lo aprendido en materias
subsiguientes y en otros ámbitos de conocimiento.

¿Qué hacer?

1. A partir de la revisión de los materiales sugeridos y actividades realizadas hasta el


momento, sigue la siguiente estructura y desarrolla en equipo de tres personas los
apartados que se indican para esta etapa de tu Proyecto integrador:

Etapa 1 del Proyecto integrador

Introducción

I. Identificación y análisis de la programación concurrente


1.1 Identificación de las primitivas de PVM (Parallel Virtual Machine) en C
1.2 Determinación de la funcionalidad de PVM (Parallel Virtual Machine) en Java

II. Identificar las funcionalidades de la programación concurrente


2.1 Reporte de las corridas y prueba del programa con librerías PVM

Página 3 de 8
Etapa 1. Elementos y funcionalidades de la programación concurrente

Introducción

El presente trabajo tiene la finalidad de aplicar los conocimientos que hemos tenido a lo
largo del curso, veremos la características de la programación paralela, estaremos
abordando los temas con el lenguaje Java, veremos los hilos aplicados en algunos
ejemplos, tambien entenderemos los distintos métodos de los hilos que existen, así como
los estados. En la práctica estaremos haciendo una comparativa de la programación
paralela vs programación secuencial.

I. Identificación y análisis de la librería PVM


1.1 Identificación de las primitivas de PVM en C
• Identificación de la librería PVM como máquina virtual paralela
• Identificación de las primitivas en C para lograr compilar y correr un programa en
Java en un ambiente paralelo.

PVM ( Paralel Virtual Machine) es una herramienta diseñada para solucionar una gran cantidad
de problemas asociados con la programación paralela. Para ellos, nos va a crear una nueva
abstracción que es la máquina paralela virtual, empleando los recursos computacionales libres
de todas las máquinas de la red.

Con esto podemos obtener mayor velocidad de procesamiento al ejecutar diferentes hilos de
manera simultánea por lo que se obtiene el resultado en menor tiempo.

La clase Thread es la que encapsula el control necesario sobre los hilos de ejecución. Es la única
forma de controlar el comportamiento de los hilos y para ello se sirve de varios métodos del clase
como currentThread(), currentThread y sleep( long ), tambien tiene métodos de instancia como
start(), run(), stop(), suspend(), resume(), setPriority(), getPriority(), setName(), getName)

Estados de un hilo en ejecución.

Durante su ciclo de vida, se peude encontrar en diferentes estados, a continuación se explican.

Página 4 de 8
New: Crea un hilo de ejecución, pero no se arranca, en este caso el sistema aún no ha destinado
algún recurso.

Start: Crea los recursos del sistema necesarios para que el hilo pueda jecutarse e incorpora a la
lista de procesos disponibles para la ejecución y llama al método run() en este momento se
encuentra en estado ejecutable y no en ejecución. En este estado todas las instrucciones que se
encuentren dentro del bloque para método run() se ejecutan secuencialme

Parado: El hilo de ejecución entra en este estado cuado alguien llama los métodos suspend(),
sleep(), cuando el hilo esta bloqueado por un procesos de entrada / salida o cuando utiliza su
método wait() para esperar una condición.

Muerto: un hilo de ejecución se puede morir de dos formas: por causas naturales o por que lo
maten con un stop(). Un hilo muere normlamente cuando conlcuye de forma habutial su métod
run().

1.2 Determinación de la funcionalidad de PVM en Java

• Realizar un programa que verifique la comunicación entre el cliente y el servidor, por


ejemplo, el más simple HolaMundo.c, para verificar la funcionalidad entre los
nodos.

Página 5 de 8
II. Identificar las funcionalidades de la programación concurrente

2.1 Elaborar un programa en C que sume los números dado un rango de números
positivos dados mediante la línea de comandos:
- Primero. Realiza el programa usando un enfoque secuencial (sin paralelismo)
observando su comportamiento

Página 6 de 8
- Segundo. Realiza el programa en el lado del máster (amo) con las primitivas para
la comunicación en PVM y además tener como captura la línea de órdenes.

-
- Por último, se debe realizar el programa en el lado del esclavo (slave) con las
primitivas propias de PVM, recibiendo los parámetros.

-
- Opcionalmente se puede usar el visor de PVM, “xpvm” para verificar el rendimiento
(se sugiere usar números grandes de rango).
- Documentar las corridas, pruebas y funcionalidades del programa antes
mencionado.

Página 7 de 8
Conclusiones Etapa I

1.
• Esta actividad fue muy interesante, por que pude observar la diferencias al utilizar
la programacion paralela y secuencial, tambien observe que es muy interesante la
forma en la que te ayuda y que es altamente escalable, sin embargo, tambien tiene
sus desventajas, por lo que se debe tener cuidado al utilizarla, debido a que nos
puede dar diferentes errores por lo que debemos aplicar algunas estrategias para
disminuir este tipo de impactos.
2.
• Durante la elaboración de esta actividad pude ampliar mis conocimientos ante la
programación paralela y secuencial, el como funcionan y se manejan, y el que tan
detallada puede resultar, me ayuda tambien a comprender mas a fondo su
ejecución y proceso.
3.
• En la programación paralela, se hace uso de varias computadoras para poder
resolver una tarea en común o acelarar un proceso. Es por eso que cada
computadora trabaja independientemente resolviendo una porción de la tarea.
Los procesos pueden intercambiar información y datos.
Podemos concluir que la programación paralela es un modelo que se ocupa para
escribir programas simultaneamente en distintas computadoras. Esto con la
finalidad de concluir las tareas con más rapidez.

Referencias
• Tutorial de Java - Hilos y Multihilo. (s. f.). Recuperado 25 de septiembre de 2022, de
http://dis.um.es/%7Ebmoros/Tutorial/parte10/cap10-1.html
• Moltó, R., Alonso, J., Alvarruiz, F., Blanquer, I., Guerrero, D., Ibáñez, J. y Ramos, E. (2018).
Ejercicios de programación paralela con OpenMP y MPI [Versión electrónica]. Recuperado
de https://elibro.net/es/ereader/uvm/57462
• Jorba, E. y Suppi, R. (2004). Administración Avanzada GNU Linux Haga clic para ver más
opciones [Archivo PDF]. Recuperado de
https://libros.metabiblioteca.org/bitstream/001/425/1/871.pdf

Página 8 de 8

También podría gustarte