Programación Concurrente - A4
Programación Concurrente - A4
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
¿Qué hacer?
Introducción
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.
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)
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().
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