Você está na página 1de 14

® Derechos exclusivos de autoría y edición reservados para la Universidad del Valle de México.

Queda rigurosamente prohibida la reproducción total o parcial del contenido de esta obra, por
cualquier medio o procedimiento, así como su distribución, para otros fines ajenos al uso
exclusivo dentro de los programas de formación profesional que ofrece la UVM.
Presentación...............................................................................................3

Competencia ..............................................................................................4

Mapa de contenido ....................................................................................5

Metodología de trabajo .............................................................................6

Organización de la asignatura ............................................................8

Evaluación y acreditación del curso ...........................................................9

Requerimientos técnicos..........................................................................10

Recomendaciones ............................................................................10

Honestidad académica .............................................................................11

Referencias ...............................................................................................12
CONTENIDO
Básicas ..............................................................................................12

Sitios de interés ..................................................................................14


Presentación
La capacidad de procesamiento de las computadoras, así como los diferentes
paradigmas de programación, han permitido la existencia de los sistemas
paralelos y distribuidos dando lugar a la concurrencia, cuando hablamos de
programación concurrente nos referimos a varios procesos coexistiendo
entre sí, en varios procesadores al mismo tiempo, lo que requiere
comunicaciones seguras y capacidades de sincronización para la formación
de los resultados.

En este contexto, la programación concurrente permite atender diferentes


peticiones de procesamiento, almacenamiento o recuperación de
información y al mismo tiempo dar respuesta óptima a las demandas de las
aplicaciones actuales. Un diseño de aplicación concurrente debe definir
claramente lo que cada proceso debe hacer y en qué momento,
estableciendo límites de ejecución y prioridades, para lograr formas de
comunicación y dar solución a problemas que se presentan de manera

PRESENTACIÓN
concurrente.

En la presente asignatura revisarás las bases conceptuales que te permitirán


construir aplicaciones básicas basadas en el paradigma de programación
concurrente, así como analizar los procesos inherentes a dicho paradigma,
con el fin de desarrollar un tratamiento correcto soportado en el uso de
diversos lenguajes de programación y aplicaciones de los algoritmos
concurrentes en la resolución de problemas computacionales.

Universidad del Valle de México


Por siempre responsable de lo que se ha cultivado

3
Competencia
La asignatura Programación concurrente tiene como competencia:

Construir algoritmos basados en modelos, técnicas y herramientas que


respondan a problemas complejos y óptimos de abstracción de la
programación concurrente, con el fin de facilitar la implementación de
sistemas informáticos que permitan agilizar y potencializar la cadena de valor
de productos y servicios en la organización, en correspondencia con
estándares y protocolos de seguridad y calidad establecidos, con una actitud
de adaptación al cambio.

Resultados de aprendizaje
• Analizar las bases teóricas para la programación concurrente,
entendiendo el funcionamiento de los sistemas distribuidos y
paralelos, destacando la importancia de un correcto manejo de la
sección crítica.

COMPETENCIA Examinar los problemas más comunes asociados con la
programación concurrente y su relación con los principales modelos
de programación existentes.
• Identificar el funcionamiento de los mecanismos de sincronización,
el manejo de transacciones y los modelos de comunicación para la
programación concurrente.
• Aplicar los modelos de programación concurrente mediante
aplicaciones desarrolladas en diferentes lenguajes de programación
para el planteamiento y solución de problemas complejos.
• Implementar en un lenguaje de programación soluciones a
problemas clásicos de otras áreas del conocimiento mediante
algoritmos propuestos utilizando programación concurrente.

4
Mapa de contenido

5
Metodología de trabajo
La metodología de trabajo propone un modelo de aprendizaje activo y
constructivo en la que el estudiante aprende con el ejercicio de prácticas,
ejercicios auténticos, actividades y proyectos.

En las asignaturas se establecen estrategias de enseñanza que promueven la


autorregulación del aprendizaje, la aplicación práctica, la reflexión sobre lo
aprendido y el trabajo en equipo.

La estrategia central de las asignaturas puede ser alguna de las siguientes:

• Aprendizaje basado en problemas


• Método de casos
• Proyectos situados

METODOLOGÍA • Aprendizaje basado en la investigación

de trabajo • Aprendizaje colaborativo


En lo que respecta a las actividades de aprendizaje, éstas pueden ser de
carácter personal o colaborativo, asimismo, algunas se desarrollan en línea y
otras corresponden al estudio independiente como en cualquier otro
programa universitario.

El estudiante realizará actividades que serán evaluadas por el tutor, y


actividades automatizadas que la plataforma devolverá calificadas de forma
inmediata.

Las actividades que se proponen implican:

• Revisión exhaustiva de materiales de texto, audio, video,


interactivos, entre otros
• Participación activa en los foros y herramientas de trabajo
colaborativo
• Entrega oportuna de ejercicios y tareas, ya que tienen una fecha de
vencimiento

6
En todas las asignaturas resulta indispensable desarrollar un Proyecto
integrador. Éste tiene como propósito vincular lo aprendido con la realidad
concreta mediante la investigación, el análisis y la definición de una propuesta
frente a un problema relacionado con su temática.

Además, entre las actividades propuestas encontrarás: participación en foros


METODOLOGÍA de trabajo, redacción de trabajos, envío de tareas o ejercicios, evaluaciones
de trabajo automatizadas, proyectos de investigación y sistematización de evidencias.

El tutor apoya en el proceso formativo a través de las herramientas de


comunicación y aprendizaje disponibles en la plataforma. El tiempo máximo
de respuesta es de 24 horas a través del foro para dudas generales o del correo
de la plataforma para cuestionamientos académicos.

7
Organización de la asignatura
ORGANIZACIÓN DE LA ASIGNATURA
UNIDAD SUBTEMAS SESIÓN ACTIVIDAD PONDERACIÓN
Foro de presentación N/A
N/A N/A S1
Foro de diagnóstico N/A

1.1 Terminología de concurrencia Actividad 1.


UNIDAD 1. 0.5
1.2 Multitarea Mapa mental
ABSTRACCIÓN DE LA
1.3 Multiprogramación S2
PROGRAMACIÓN
1.4 Sistemas paralelos y distribuidos Actividad 2.
CONCURRENTE 0.5
1.5 El problema de la sección crítica Cuadro comparativo
2.1 Condición de carrera (race condition)
UNIDAD 2. 2.2 Inter bloqueo (deadlock) Actividad 3.
MODELADO DE 2.3 Lógica temporal para la especificación
Reporte de 1.0
PROGRAMAS y prueba de correctud
investigación
CONCURRENTES 2.4 Autómatas finitos (Sistemas de S3
Transiciones Rotuladas LTS)
Actividad 4.
N/A N/A Proyecto integrador 2.0
Etapa 1
UNIDAD 3.
3.1 Sincronización Actividad 5.
MODELOS PARA 0.5
3.2 Candados Mapa mental
PROGRAMACIÓN
3.3 Transacciones
CONCURRENTE Y S4
3.4 Semáforos
ALGORITMOS PARA EL Actividad 6.
3.5 Monitores
PROBLEMA DE SECCIÓN Proyecto integrador 2.0
3.6 Modelos de comunicación
CRÍTICA Etapa 2
4.1 Concurrencia
UNIDAD 4. Actividad 7.
4.2 Erlang 0.5
GESTIÓN Ejercicios
4.3 Cilk
CONCURRENCIA EN LOS
4.4 OpenMP S5
LENGUAJES DE
4.5 Herramientas automáticas para la Actividad 8.
PROGRAMACIÓN 0.5
detección de problemas de concurrencia Cuadro comparativo
N/A
N/A
5.1 Aplicaciones numéricas Actividad 9.
UNIDAD 5. 5.2 Aplicaciones gráficas (computación S6 Proyecto integrador 2.0
APLICACIONES DE gráfica y procesamiento de imágenes) Etapa 3
ALGORITMOS 5.3 Redes neuronales
CONCURRENTES 5.4 Algoritmos genéticos Actividad 10.
0.5
5.5 Sistemas de tiempo real Automatizada
S7
N/A N/A Retroalimentación N/A

TOTAL 10

8
Evaluación y acreditación del curso

La evaluación es de carácter formativo, es decir, lo relevante es el aprendizaje


demostrado a lo largo del ciclo escolar.

Se evalúa la calidad de las actividades y el cumplimiento de los requerimientos


de acuerdo a las instrucciones proporcionadas y estándares definidos que se
hacen del conocimiento del estudiante antes de la evaluación. Cada una de
las actividades tienen una ponderación propia, por lo que resulta relevante
llevar a cabo todas ellas.

EVALUACIÓN Y
ACREDITACIÓN
de la asignatura

9
Requerimientos técnicos

Para cursar esta asignatura son necesarios los siguientes recursos:

• Computadora o tableta electrónica con acceso a internet


• Paquetería de software para manejo de texto, presentaciones
electrónicas, hojas de cálculo
• Software para visualizar y escuchar recursos de audio, video e
interactivos
• Correo electrónico
• Claves de acceso al pórtico y la plataforma de enseñanza en línea
Blackboard
REQUERIMIENTOS
técnicos Recomendaciones

Para obtener excelentes resultados de aprendizaje y acreditar la


asignatura es recomendable que el estudiante realice lo siguiente:

• Reflexionar en torno a los temas planteados y establecer las


relaciones existentes con su práctica profesional cotidiana
• Aplicar los conocimientos teóricos, contextuales y técnicos
adquiridos en actividades prácticas que deben desarrollarse para
concretar el módulo
• Comunicarse con el docente en caso de dudas y sugerencia

10
Honestidad académica

En la Universidad del Valle de México tipificamos las faltas en leves, graves y


muy graves. El plagio está considerado en forma explícita dentro de las faltas
muy graves en el Reglamento Académico de Estudiantes de Educación
Superior.

Se consideran faltas graves:

HONESTIDAD Efectuar actos de deshonestidad o cualquier tipo de engaño académico como


académica prestar o recibir ayuda fraudulenta en la presentación de exámenes, plagio de
trabajos parciales o finales, suplantación en exámenes o cualquier acto que
implique una violación a la reglamentación académica.
Los casos muy graves son presentados ante una Comisión de Honor y Justicia
del Campus que evalúa y determina las sanciones correspondientes.

11
Referencias

Básicas
Academia Usero Estepona Videos Educativos (Productor). (06 de Marzo de 2015).
Lectores y escritores con locks Concurrencia Java [Archivo de video].
Recuperado de https://www.youtube.com/watch?v=Pq7w9gxcuWA

Arduino G., Alfonzo, P. L. (2018). Técnicas de control de concurrencia en base de


datos: implementación en un sistema de gestión [Archivo PDF]. Recuperado de
http://sedici.unlp.edu.ar/bitstream/handle/10915/73561/Documento_compl
eto.pdf-PDFA.pdf?sequence=1&isAllowed=y

Brito, M., Felizardo, K., Souza, P. y Souza, S. (2012). Concurrent software testing: A
systematic review [Archivo PDF]. Recuperado de
https://www.researchgate.net/publication/264403935_concurrent_software
_testing_a_sistematic_review

Burden R., Faires D. y Burden, A. (2017). Análisis numérico (10ª edic.) [ Archivo PDF].
Recuperado de

REFERENCIAS https://www.academia.edu/40157817/AN%C3%81LISIS_NUM%C3%89RICO_
Richard_Burden_10ma_edici%C3%B3n

Cecilia, J.M. , (Productor). (09 de Octubre de 2013). Programación Paralela -


Definición de Paralelismo [Archivo de video]. Recuperado de
https://www.youtube.com/watch?v=QgvzDdFpARM

Cerón, C. (2007). Programación Concurrente [Archivo PDF]. Recuperado de


http://mceron.cs.buap.mx/cap1_dis.pdf

Cuenca, J. (s.f.). Programación en el Supercomputador Ben Arabi Programación con


OpenMP [Archivo PDF]. Recuperado de
http://www.ditec.um.es/~javiercm/curso_psba/sesion_03_openmp/PSBA_O
penMP.pdf

Drake, J. y Barros L. (s.f.). Programación Concurrente [Archivo PDF]. Recuperado de


https://www.ctr.unican.es/asignaturas/procodis_3_II/Doc/Procodis_3_02.pd
f

DuarteCorporation Tutoriales (Productor). (05 de Julio de 2015). Tutorial de Thread


en Lenguaje C (Hilos en Lenguaje C) [Archivo de video]. Recuperado de
https://www.youtube.com/watch?v=8D3CtQWB6DI

12
Empieza a Programar (Java). (Productor). (15 de Octubre de 2015). Bloque J
Concurrente 3.3: Interbloqueos y Estrategia Buffer [Archivo de video].
Recuperado de https://www.youtube.com/watch?v=v-
Y2ctd0oJA&ab_channel=EmpiezaAProgramar

Guillén, M. (Productor). (28 de Octubre de 2014). Desarrollo de Aplicaciones


Distribuidas I – Conceptos [Archivo de video]. Recuperado de
https://www.youtube.com/watch?v=0siwMCBVejE

Jorba, E. y Suppi, R. (2004). Administración Avanzada GNU Linux [Archivo PDF].


Recuperado de
https://libros.metabiblioteca.org/bitstream/001/425/1/871.pdf

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?page=12

Muñoz, F., Argente, E., Espinosa, A, Galdaméz, P., García-Fornes, A, De Juan, R. y


Sendra, J. (2013). Concurrencia y sistemas distribuidos [Versión electrónica].
Recuperado de https://elibro.net/es/ereader/uvm/57365?page=183

Pavón, J. (2015). Programación Concurrente con Java. Diseño de Sistemas


REFERENCIAS Operativos [Archivo PDF]. Recuperado de
http://grasia.fdi.ucm.es/jpavon/docencia/dso/programacionconcurrentejava.
pdf

Restrepo, F. (s.f.). Programación concurrente [Página web]. Recuperado de


http://ferestrepoca.github.io/paradigmas-de-
programacion/progconcurrente/concurrente_teoria/index.html

(S.A.) (s.f.). Ficheros y bases de datos [Archivo PDF]. Recuperado de


https://www.fdi.ucm.es/profesor/fernan/DBD/apuntestema07.pdf

(S.A.) (s.f.). Concurrencia entre procesos. Tema 3. Sistemas operativos [Archivo PDF].
Recuperado de http://www3.uji.es/~redondo/so/capitulo3_IS11.pdf

Sáenz, J. (Productor). (18 de Octubre de 2015). Monitores y Semáforos en java


[Archivo de video]. Recuperado de
https://www.youtube.com/watch?v=_IU3Vfjpt8A

Sánchez, J. (2020). Guía de uso de Online GDB, compilador y depurador en línea


[Archivo PDF].

Santamaría, R. (2018). Java Threads,Sistemas Distribuidos [Arhivo PDF]. Recuperado


de http://vis.usal.es/rodrigo/documentos/sisdis/seminarios/javaThread.pdf

13
Seminario Earlyadopters (2012). Procesos e Hilos en C [Archivo PDF]. Recuperado de
https://www.um.es/earlyadopters/actividades/a3/PCD_Activity3_Session1.p
df

Sendoya, D., (Productor). (06 de Enero de 2015). 34 L8 Condiciones de carrera


[Archivo de video]. Recuperado de
https://www.youtube.com/watch?v=bxSpNpmmfXo

Software Quality Research Lab (2012). Static Analysis Tools for Concurrency [Archivo
Web]. Recuperado de http://www.sqrlab.ca/blog/2012/03/02/static-analysis-
tools-for-concurrency/

Tanenbaum, A. (2006). Sistemas Operativos Modernos [Versión electrónica].


Recuperado de https://elibro.net/es/ereader/uvm/39531

Universidad Politécnica de Valencia (Productor). (23 de Octubre de 2017). Qué es la


programación concurrente [Archivo de video]. Recuperado de
https://www.youtube.com/watch?v=bnYf3-SlrY4&t=36s

Sitios de interés

Biblioteca digital Universidad del Valle de México. Recuperado de

REFERENCIAS http://www.bibliotecas.uvmnet.edu/

14

Você também pode gostar