Programacion Concurrente
Programacion Concurrente
REG-ES
REV01
REV01
INGENIERÍA EN INFORMÁTICA
PROGRAMACIÓN
CONCURRENTE
Directorio
II de 42
Página Legal.
Participantes
Participantes
ISBN-----------------
III de 42
ÍNDICE
INTRODUCCIÓN ............................................................................................................................................ 5
PROGRAMA DE ESTUDIOS .......................................................................................................................... 6
FICHA TÉCNICA ............................................................................................................................................. 7
DESARROLLO DE LAS PRÁCTICAS O PROYECTOS .................................................................................... 9
INSTRUMENTOS DE EVALUACIÓN............................................................................................................. 33
GLOSARIO ................................................................................................................................................... 39
BIBLIOGRAFÍA ............................................................................................................................................ 43
IV de 42
INTRODUCCIÓN
La asignatura de Programación Concurrente aborda los temas necesarios para que los
estudiantes aprendan la forma de programar aplicaciones que utilicen recursos
compartidos. Estos recursos compartidos deben ser utilizados por hilos o procesos que
trabajan en forma secuencial o paralela. En la asignatura el alumno aprenderá cuán
importante es el concepto de concurrencia en sistemas multi-programados o multitareas y
desarrollará las capacidades necesarias para resolver problemas que puedan paralelizarse
considerando siempre el control hilos que compiten por los mismo recursos, es decir, el
control de la concurrencia.
5 de 42
PROGRAMA DE ESTUDIO
DATOS GENERALES
N
N OM
OMBRE
BRE DEL
DEL PROGRAMA
PROGRAMA EDUCATIVO:
EDUCATIVO: INGENIERÍA EN INFORMÁTICA
OBJETIVO
Formar ingenieros competentes en la implementación y administración de soluciones de negocios ó para la investigación basadas en computadora, con una amplia visión de la ciencia y las nuevas tecnologías
OBJETIVO DEL
DEL PROGRAMA
PROGRAMA EDUCATIVO:
EDUCATIVO:
de la información, bajo el modelo de educación basado en competencias.
NOM
NOMBRE
BRE DE
DE LA
LA ASIGNATURA:
ASIGNATURA: PROGRAMACIÓN CONCURRENTE
CLAVE
CLAVE DE
DE LA
LA ASIGNATURA:
ASIGNATURA: REG-ES
OBJETIVO
OBJETIVO DE
DE LA
LA ASIGNATURA:
ASIGNATURA:
Practicar las técnicas de control de concurrencia de procesos e hilos, en ambientes computacionales donde existan condiciones de competencia por recursos compartidos, a través del diseño de programas
eficaces para garantizar su sincronización.
TOTAL
TOTAL HRS.
HRS. DEL
DEL CUATRIM
CUATRIMESTRE:
ESTRE: 120
FECHA
FECHA DE
DE EMISIÓN:
EMISIÓN: 28 de junio del 2011
UNIVERSIDADES
UNIVERSIDADES PARTICIPANTES:
PARTICIPANTES: UNIVERSIDAD POLITÉCNICA DEL VALLE DE MÉXICO
CONTENIDOS
CONTENIDOS PARA
PARA LA
LA FORMACIÓN
FORMACIÓN ESTRATEGIA
ESTRATEGIA DE
DE APRENDIZAJE
APRENDIZAJE EVALUACIÓN
EVALUACIÓN
ESPACIO
ESPACIO
TECNICAS
TECNICAS SUGERIDAS
SUGERIDAS MOVILIDAD
MOVILIDAD FORMATIVA
FORMATIVA TOTAL
TOTAL DE
DE HORAS
HORAS
EDUCATIVO
EDUCATIVO
OBSERVACIÓN
OBSERVACIÓN
MATERIALES
MATERIALES EQUIPOS
EQUIPOS TEÓRICA
TEÓRICA PRÁCTICA
PRÁCTICA
UNIDADES
UNIDADES DE
DE APRENDIZAJE
APRENDIZAJE RESULTADOS
RESULTADOS DE
DE APRENDIZAJE
APRENDIZAJE EVIDENCIAS
EVIDENCIAS
PARA
PARA LA
LA PARA
PARA EL
EL REQUERIDOS
REQUERIDOS REQUERIDOS
REQUERI DOS
PROY
PROYECTO
ECTO PRÁCTI
PRÁCTICA
CA
ENSEÑANZA
ENSEÑANZA APRENDIZAJE
APRENDIZAJE AULA
AULA LABORATORIO
LABORATORIO OTRO
OTRO NO
NO TÉCNICA
TÉCNICA INSTRUMENTO
INSTRUMENTO TO
TOTA
TALL DDEE HHOORRAS
AS
Presencial
Presencial NO
NO Presencial
Presencial Presencial
Presencial
(PROF
(PROFESOR)
ESOR) (A
(ALUM
LUMN
NO)
O) Presencial
Presencial
Pizarrón, diapositivas,
manuales de
Al término de la unidad el alumno será capaz de: Rúbrica para la
Exposición sobre el Participación en clase programación, Interface
*Fundamentar el concepto de programación EP: Reporte por escrito sobre el elaboración de
concepto de aportando ejemplos que X X
Programable de Computadora Investigación
concurrente a través de ejemplos para la resolución concepto de programación 2 1 2 1 documentos sobre 6
programación impliquen el concepto de Aplicaciones, entorno de multinúcleo, proyector. documental
de problemas que requieran más de un proceso concurrente actividades de
concurrente. programación concurrente. desarrollo para
haciendo uso de recursos compartidos. aprendizaje
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Rúbrica para la
Al término de la unidad el alumno será capaz de: EP: Documento donde explique programación, Interface
Comparación entre proceso e elaboración de
*Explicar la diferencia entre proceso e hilo desde el claramente, con elementos Exposición de proceso e Programable de Investigación
Principios de la programación concurrente hilo, destacando sus X X Computadora, proyector. 2 1 2 1 documentos sobre 6
punto de vista técnico para conocer los escenarios técnicos la diferencia entre hilo y sus diferencias. Aplicaciones, entorno de documental
similitudes y diferencias. actividades de
adecuados para cada uno. proceso e hilo. desarrollo para
aprendizaje
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Debate sobre casos prácticos
Al término de la unidad el alumno será capaz de: programación, Interface
ED: Explica de manera verbal la Expone los conceptos de donde se aplique la
*Fundamentar la diferencia entre concurrencia y Programable de Rúbrica para
diferencia entre los conceptos concurrencia y concurrencia y el paralelismo, X X Computadora, proyector. 2 0 2 0 Exposición 4
paralelismo destacando los aspectos técnicos de Aplicaciones, entorno de exposición de temas
de concurencia y paralelismo. paralelismo. indicando la diferencia entre
cada una para conocer en qué casos se aplican. desarrollo para
ambos.
programación
concurrente.
Pizarrón, diapositivas,
Al término de la unidad el alumno será capaz de: Exposición de las manuales de
ED: Explica de manera verbal en
*Explicar los conceptos de concurrencia y condiciones de Exposición de las condiciones programación, Interface
que consisten las condiciones
condiciones de competencia en problemas de competancia en de competancia en Programable de Rúbrica para
de competencia y su relación X X Computadora, proyector. 4 2 4 1 Exposición 11
sincronización a través de ejemplos para determinar problemas de problemas de sincronización Aplicaciones, entorno de exposición de temas.
con la programación
cómo resolver los problemas de competencia por sincronización entre entre procesos o hilos. desarrollo para
concurrente.
recursos compartidos. procesos o hilos. programación
concurrente.
Pizarrón, diapositivas,
manuales de
Al término de la unidad el alumno será capaz de: EP: Reporte por escrito sobre la Presentar y explicar ante Diseñar la solución a los programación, Interface
Sincronización de procesos
*Resolver problemas que presenten exclusión propuesta de solución a el grupo una serie de problemas presentados, Programable de Lista de cotejo para
X X Computadora, proyector. 4 2 4 1 Exposición y debate 11
mutua diseñando algoritmos eficaces para la problemas de sincronización problemas que requieren utilizando exclusión mutua. Aplicaciones, entorno de exposición y debate
sincronización de procesos. utilizando exclusión mutua. exclusión mutua. Trabajo en equipo. desarrollo para
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Presentar los problemas Resolver en equipo los
Al término de la unidad el alumno será capaz de: programación, Interface
de sincronización de problemas presentados Computadoras con
*Resolver problemas clásicos de concurrencia EP: Código de programas de Programable de Rúbrica para diseño
procesos para el análisis utilizando los conceptos de X X procesadores 4 0 4 2 Análisis de casos 10
desarrollando programas para implementar la sincronización de procesos. Aplicaciones, entorno de de programas.
por parte de los concurrencia, condiciones de multinúcelo, proyector.
sincronización adecuada. desarrollo para
alumnos. competencia y sección crítica.
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Al término de la unidad el alumno será capaz de:
Elaboración de programas programación, Interface
*Desarrollar soluciones de problemas de Computadoras con Rúbrica para la
EP: Programas donde se utilice Exposición del modelo concurrentes que sigan el Programable de
sincronización utilizando el modelo Fork-Join para X X procesadores 3 1 3 1 Análisis de casos. elaboración de 8
el concepto de reducción. Fork-Join. modelo Fork-Join. Trabajo en Aplicaciones, entorno de
problemas que requieren grandes cantidades de multinúcelo, proyector. programas.
equipo. desarrollo para
tiempo de cómputo.
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Al término de la unidad el alumno será capaz de: Análisis de programas programación, Interface
EP: Código de programas Desarrollar programas con Computadoras con Rúbrica para la
*Proponer soluciones a problemas de recursos con secciones críticas, Programable de
División de tareas para proceso en hilos deonde se definan secciones regiones protegidas. Trabajo X X procesadores 3 1 3 1 Análisis de casos. elaboración de 8
compartidos utilizando secciones críticas para evitar en colaboración con el Aplicaciones, entorno de
críticas. en equipo. multinúcelo, proyector. programas.
los problemas de acceso a recursos compartidos. grupo. desarrollo para
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Exposición del concepto Desarrollar programas con programación, Interface
Al término de la unidad el alumno será capaz de: EP: Código de programas donde Computadoras con Rúbrica para la
de semáforo y del control semáforos para controlar la Programable de
*Desarrollar aplicaciones utilizando semáforos para se utilicen semáforos para la X X procesadores 3 1 3 1 Análisis de casos. elaboración de 8
de sincronización concurrencia entre hilos. Aplicaciones, entorno de
problemas de uso de recursos compartidos. sincronización entre hilos. multinúcelo, proyector. programas.
utilizando esta técnica. Trabajo en equipo. desarrollo para
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Al término de la unidad el alumno será capaz de:
Exposición de cómputo programación, Interface
*Explicar las características del paralelismo en los Exposición sobre el cómputo Computadoras con
paralelo en Programable de Rúbrica para
procesadores multi-núcleo por medio de casos EC: Reporte por escrito. paralelo y aplicaciones en X X procesadores 2 1 2 1 Exposición 6
procesadores Aplicaciones, entorno de exposición de temas
prácticos para conocer las ventajas que esta procesadores multinúcleo. multinúcelo, proyector.
multinúcleo. desarrollo para
tecnología nos ofrece.
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Al término de la unidad, el alumno será capaz de: Debate sobre la Ejercicios de programación programación, Interface
EP: Código de programas donde Computadoras con Rúbrica para la
Cómputo paralelo *Programar aplicaciones con descomposición descomposición con descomposición funcional Programable de
se realice descomposición X X procesadores 2 1 2 1 Análisis de casos. elaboración de 6
funcional y descomposición de datos para resolver funcional y de datos, así para los hilos de una Aplicaciones, entorno de
funcional y de datos. multinúcelo, proyector. programas.
problemas con paralelismo. como sus aplicaciones. aplicación. desarrollo para
programación
concurrente.
Pizarrón, diapositivas,
manuales de
Al término de la unidad el alumno será capaz de: programación, Interface
Exponer una breve Exposición de los tipos de Computadoras con
*Fundamentar los diferentes tipos de cómputo ED: Reporte de investigación Programable de Investigación Rúbrica para reportes
introducción de los tipos cómputo paralelo. Trabajo en X X procesadores 2 0 2 0 4
paralelo a través de ejemplos para conocer cuál es el sobre los tipos de paralelismo Aplicaciones, entorno de documental de investigación
de cómputo paralelo. equipo. multinúcelo, proyector.
más adecuado para cada tipo de problema. desarrollo para
programación
concurrente.
Pizarrón, diapositivas,
Debate sobre el número manuales de
Debate sobre el número de
Al término de la unidad el alumno será capaz de: de hilos adecuado para programación, Interface
hilos adecuado para alguna Computadoras con Rúbrica para la
*Determinar el número de hilos adecuado en alguna aplicación Programable de
EP: Código de programas aplicación concurrente. X X procesadores 4 1 4 1 Análisis de casos. elaboración de 10
programas concurrentes a través del análisis de concurrente. Considerar Aplicaciones, entorno de
Considerar la planificación del multinúcelo, proyector. programas.
rendimiento, para lograr la eficacia en su ejecución. la planificación del desarrollo para
sistema operativo.
sistema operativo. programación
concurrente.
Pizarrón, diapositivas,
manuales de
Al término de la unidad: el alumno será capaz de: Explicación de la Investigación sobre el trabajo programación, Interface
Cómputo paralelo en procesadores multinúcleo EP: Código de programas Computadoras con Rúbrica para la
*Programar hilos con comunicación entre ellos, para reducción en problemas colaborativo entre hilos X X
Programable de
aplicando el modelo Fork-Join y procesadores 4 1 4 1 Análisis de casos. elaboración de 10
desarrollar trabajo colaborativo y obtener un de programación usando el concepto de Aplicaciones, entorno de
el concepto de reducción. multinúcelo, proyector. programas.
resultado único. multihilo. Reducción. desarrollo para
programación
concurrente.
6 de 42
Pizarrón, diapositivas,
Al término de la unidad, el alumno será capaz de: manuales de
*Desarrollar programas que resuelvan problemas Mostrar como se programación, Interface
EP: Programas que utilicen Computadoras con Rúbrica para la
mediante cómputo paralelo en procesadores elaboran los programas Programar aplicaciones en Programable de
todos los núcleos de un X X procesadores 4 2 4 2 Análisis de casos. elaboración de 12
multinúcleo para obtener un mejor rendimiento en paralelos para ejecución paralelo. Trabajo en equipo. Aplicaciones, entorno de
procesador multinúcleo. multinúcelo, proyector. programas.
problemas que requieren grandes cantidades de en multiples núcleos. desarrollo para
cómputo. programación
concurrente.
FICHA TÉCNICA
GESTIÓ
GESTIÓN DE PROYECTOS DE TECNOLOGÍ
TECNOLOGÍA
Cómputo paralelo 6 2 6 2
Cómputo paralelo en
12 4 12 4
procesadores multi-núcleo
Total de horas por cuatrimestre: 120
Total de horas por semana: 8
Créditos: 8
7 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD 1
Nombre de la Unidad de
1. Principios de la programación concurrente.
Aprendizaje:
8 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD2
Nombre de la Unidad de
1. Principios de la programación concurrente.
Aprendizaje:
Nombre de la práctica o
Concepto y características de Proceso e Hilo.
proyecto:
Requerimientos (Material
Pizarrón, diapositivas, manuales de programación, computadoras.
o equipo):
Actividades a desarrollar:
1. El alumno analiza los conceptos de proceso e hilo.
2. El alumno explica las características de un hilo y como se puede crear a partir de un proceso.
Para ello deberá exponer algunos ejemplos de código.
EP: Códigos de los programas de ejemplo donde se muestre como generar hilos.
EC: Reporte por escrito sobre el funcionamiento de los programas.
EA: Actitud, responsabilidad, asistencia y puntualidad.
9 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD3
Nombre de la Unidad de
1. Principios de la programación concurrente.
Aprendizaje:
Nombre de la práctica o
Problemas que requieren de programación concurrente para su solución.
proyecto:
Actividades a desarrollar:
1. Los alumnos trabajarán en equipo para seleccionar un problema de programación en el
que se requiera aplicar control de concurrencia.
2. Cada equipo presentará las conclusiones del problema analizado en un debate con los
demás equipos.
3. Cada equipo elaborará un reporte por escrito.
Evidencias a las que contribuye el desarrollo de la actividad:
EC: Reporte por escrito sobre en análisis del problema de control de concurrencia.
ED: Participación en el debate.
EA: Actitud, responsabilidad, asistencia y puntualidad.
10 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD4
Nombre de la Unidad de
1. Principios de la programación concurrente.
Aprendizaje:
Nombre de la práctica o
Cómputo paralelo y programación concurrente.
proyecto:
Actividades a desarrollar:
1. Analizar en equipos las características de las aplicaciones con control de concurrencia y
programación paralela seleccionadas para esta actividad, destacando los lenguajes de
programación en que están desarrolladas, los recursos adicionales utilizados, la plataforma en
que funciona y requerimientos para su implantación.
2. El alumno realzará una exposición de los ejemplos analizados y destacará las diferencias y
coincidencias entre el cómputo paralelo y la programación concurrente.
11 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD 1
Nombre de la Unidad de
2. Sincronización de procesos.
Aprendizaje:
Nombre de la práctica o
Condiciones de competencia
proyecto:
Requerimientos (Material
Pizarrón, diapositivas.
o equipo):
Actividades a desarrollar:
1. El profesor que son las condiciones de competencia entre procesos.
2. El alumno investiga y expone 2 ejemplos de donde existan condiciones de competencia
entre procesos o hilos.
3. Debate sobre las aplicaciones de la programación concurrente.
4. El alumno expone de manera verbal los resultados obtenidos en esta actividad.
Evidencias a las que contribuye el desarrollo de la actividad:
12 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD2
Nombre de la Unidad de
2. Sincronización de procesos.
Aprendizaje:
Nombre de la práctica o
Concepto y características de Proceso e Hilo.
proyecto:
Requerimientos (Material
Pizarrón, diapositivas, manuales de programación, computadoras.
o equipo):
Actividades a desarrollar:
1. El profesor expone ejemplos de problemas de sincronización entre procesos que requieren
exclusión mutua.
2. El alumno desarrolla el programa para solucionar el problema del “Directorio Spooler”, el
cual es un problema clásico de sincronización entre procesos.
Evidencias a las que contribuye el desarrollo de la actividad:
EP: Códigos de los programas de ejemplo donde se muestre como generar hilos.
EC: Explicación de manera verbal, sobre el funcionamiento de los programas.
EA: Actitud, responsabilidad, asistencia y puntualidad.
13 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD3
Nombre de la Unidad de
2. Sincronización de procesos.
Aprendizaje:
Nombre de la práctica o
Bloques de código restringido por secciones críticas.
proyecto:
Actividades a desarrollar:
1. El profesor explica el concepto de sección crítica en la sincronización entre procesos.
2. El alumno elabora programas con segmentos de código protegido con secciones
críticas.
3. El alumno expone los resultados de sus programas.
Evidencias a las que contribuye el desarrollo de la actividad:
14 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
ACTIVIDAD4
Nombre de la Unidad de
2. Sincronización de procesos.
Aprendizaje:
Nombre de la práctica o
Cómputo paralelo y programación concurrente.
proyecto:
Actividades a desarrollar:
1. El profesor explica los problemas de control de concurrencia clásicos.
2. El alumno desarrolla una investigación sobre los problemas de concurrencia más
conocidos o importantes.
3. El alumno elabora un reporte de la investigación realizada.
15 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 1
Nombre de la Unidad de
3. División de tareas para proceso en hilos
Aprendizaje:
Nombre de la práctica o
Desarrollo de programas del lado del servidor.
proyecto:
16 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 2
Nombre de la Unidad de
3. División de tareas para proceso en hilos
Aprendizaje:
Nombre de la práctica o
Aceleración en la ejecución de programas.
proyecto:
17 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 3
Nombre de la Unidad de
3. División de tareas para proceso en hilos
Aprendizaje:
Nombre de la práctica o
Repartición de carga de trabajo.
proyecto:
18 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 4
Nombre de la Unidad de
3. División de tareas para proceso en hilos
Aprendizaje:
Nombre de la práctica o
Problema de los Filósofos Comensales
proyecto:
19 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 5
Nombre de la Unidad de
3. División de tareas para proceso en hilos
Aprendizaje:
Nombre de la práctica o
Control de acceso de Hilos a recursos compartidos.
proyecto:
20 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 6
Nombre de la Unidad de
3. División de tareas para proceso en hilos
Aprendizaje:
Nombre de la práctica o
Semáforos.
proyecto:
21 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 1
Nombre de la Unidad de
4. Cómputo paralelo
Aprendizaje:
Nombre de la práctica o
Características del cómputo paralelo
proyecto:
EP: Ensayo
EA: Actitud, responsabilidad, asistencia y puntualidad.
22 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 2
Nombre de la Unidad de
4. Cómputo paralelo
Aprendizaje:
Nombre de la práctica o Análisis de problemas que pueden ser solucionados por medio de cómputo
proyecto: paralelo.
23 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 3
Nombre de la Unidad de
4. Cómputo paralelo
Aprendizaje:
Nombre de la práctica o
Descomposición funcional y de datos.
proyecto:
24 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 4
Nombre de la Unidad de
4. Cómputo paralelo
Aprendizaje:
Nombre de la práctica o
Análisis de rendimiento
proyecto:
EP: Reporte.
EA: Participación, trabajo en equipo.
EA: Actitud, responsabilidad, asistencia y puntualidad.
25 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 5
Nombre de la Unidad de
4. Cómputo paralelo
Aprendizaje:
Nombre de la práctica o
Tipos de paralelismo
proyecto:
26 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 1
Nombre de la Unidad de
5. Cómputo paralelo en procesadores multi-núcleo
Aprendizaje:
Nombre de la práctica o
Optimización de la tasa de trabajos en procesadores multi-núcleo
proyecto:
27 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 2
Nombre de la Unidad de
5. Cómputo paralelo en procesadores multi-núcleo
Aprendizaje:
Nombre de la práctica o
Análisis de rendimiento
proyecto:
28 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 3
Nombre de la Unidad de
5. Cómputo paralelo en procesadores multi-núcleo
Aprendizaje:
Nombre de la práctica o
Trabajo colaborativo entre hilos
proyecto:
29 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 4
Nombre de la Unidad de
5. Cómputo paralelo en procesadores multi-núcleo
Aprendizaje:
Nombre de la práctica o
Resolución de problema mediante técnicas de paralelismo
proyecto:
30 de 42
DESARROLLO DE LA ACTIVIDAD DE APRENDIZAJE
PRÁCTICA 5
Nombre de la Unidad de
5. Cómputo paralelo en procesadores multi-núcleo
Aprendizaje:
31 de 42
32 de 42
CUESTIONARIOGUIA
CUESTIONARIOGUIA Logotipo de
la
(Cuestionario) Universidad
1. ¿Qué es la concurrencia?
3. ¿Qué es hilo?
33 de 42
Logotipo de
LISTA DE COTEJO PARA CUESTIONARIO la
Universidad
NOMBRE DE LA ASIGNATURA:
ASIGNATURA: PROGRAMACIÓN CONCURRENTE
DATOS GENERALES
Nombre(s) del alumno(s) y/o Equipo: Firma del alumno(s):
10%
10% Responsabilidad. Entrego el reporte en tiempo y forma.
Desarrollo
80%
80% a. Solución correcta de los reactivos (cada reactivo vale 8%)
100.% CALIFICACIÓN:
34 de 42
Logotipo de
LISTA DE COTEJO PARA ELABORACION DE REPORTE / INFORME / ACTA la
Universidad
NOMBRE DE LA ASIGNATURAPROGRAMACIÓN
ASIGNATURAPROGRAMACIÓN CONCURRENTE
DATOS GENERALES
Asignatura:PROGRAMACION
Asignatura:PROGRAMACION CONCURRENTE Periodo cuatrimestral:
INSTRUCCIONES
Revisar los documentos o actividades que se solicitan y marque en los apartados “SI” cuando la evidencia a evaluar se cumple; en caso contrario marque “NO”.
En la columna “OBSERVACIONES” ocúpela cuando tenga que hacer comentarios referentes a lo observado.
El Reporte incluye los archivos electrónicos de diseño de vistas para web.
30%
30% Evaluación conceptual. Descripción correcta de conceptos.
Contenidos
10%
10% b. Ideas claras y comprensibles.
10%
10% c. Capacidad organizativa.
10%
10% c. Coherencia, precisión y sencillez en la redacción.
Formato.
Formato.
5%
a. Se apega a los requisitos solicitados.
5% b. Diseño (Visualización).
100.% CALIFICACIÓN:
35 de 42
Logotipo de
LISTA DE COTEJO PARA REVISIÓN DE PROGRAMAS la
Universidad
NOMBRE DE LA ASIGNATURA:
ASIGNATURA: PROGRAMACIÓN CONCURRENTE
INSTRUCCIONES
Revisar los documentos o actividades que se solicitan y marque en los apartados “SI” cuando la evidencia a evaluar se cumple; en caso contrario marque “NO”.
En la columna “OBSERVACIONES” ocúpela cuando tenga que hacer comentarios referentes a lo observado.
10%
10% Limpieza de código.
código Código alineado correctamente.
40%
40% Funcionamiento. Programas funcionando correctamente, sin errores.
Exposición.
Exposición
5% a. Utiliza las diapositivas como apoyo, no lectura total.
b. Desarrollo del tema fundamentado y con una secuencia
5% estructurada.
c. Organización de los integrantes del equipo.
5% d. Expresión no verbal (gestos, miradas y lenguaje corporal).
5% Preparación de la exposición. Dominio del tema. Habla con seguridad.
CALIFICACIÓN:
36 de 42
Logotipo de
GUIA DE OBSERVACIÓN PARA EXPOSICIONES INDIVIDUALES/EQUIPO la
Universidad
NOMBRE DE LA ASIGNATURA:
ASIGNATURA: PROGRAMACIÓN CONCURRENTE
INSTRUCCIONES
Revisar los documentos o actividades que se solicitan y marque en los apartados “SI” cuando la evidencia a evaluar se cumple; en caso contrario marque “NO”.
En la columna “OBSERVACIONES” ocúpela cuando tenga que hacer comentarios referentes a lo observado.
Esquema de diapositiva.
diapositiva Colores y tamaño de letra apropiada. Sin saturar
10% las diapositivas de texto.
Exposición.
Exposición
10%
10% a. Utiliza las diapositivas como apoyo, no lectura total.
b. Desarrollo del tema fundamentado y con una secuencia
15%
15% estructurada.
5% c. Organización de los integrantes del equipo.
5% d. Expresión no verbal (gestos, miradas y lenguaje corporal).
37 de 42
100.% CALIFICACIÓN:
GLOSARIO
A
Amdahl,
Amdahl, Ley.
Ley.Modelo matemático que describe la relación entre la aceleración de un
algoritmo paralelo y su equivalente en serie.
Asincrónico,
Asincrónico, proceso.
proceso Proceso que se ejecuta en segundo plano.
ASP.
ASP (Active Server Pages) Páginas activas de servidor, son programas desarrollados en
lenguajes .NET, es decir, C#, Visual Basic, J# o C++ y que agregan funcionalidad a un sitio
web del lado del servidor.
C
Clase.
Clase Es un contenedor de uno o más datos y las operaciones sobre ellos
(funciones/métodos).
Dijkstra,
Dijkstra, Edsger Wybe.
Wybe.Investigador holandés y profesor en Ciencias Computacionales.
Estudió Física en la universidad de Linden. Propuso, entre muchas cosas, el uso de
semáforos binarios para la sincronización de procesos.
38 de 42
Espera ocupada.Espera
ocupada. de un proceso o hilo para poder entrar en una región crítica. Esta
espera se hace comprobando continuamente el estado de la variable que controla la
entrada a la región crítica, de ahí su nombre de “espera ocupada”.
Estado de proceso.Estado
proceso. en que puede estar un proceso en un determinado instante: en
ejecución, listo o bloqueado.
Exclusión mutua.Técnica
mutua. de programación utilizada para que un proceso impida que otro
entre la sección crítica, cuando el primero está ahí.
Herencia.
Herencia. Propiedad,
P en los lenguajes orientados a objetos, que permite que los objetos
sean creados a partir de otros ya existentes.
Hilo. Programa en ejecución que comparte el segmento de código, en memoria, con más
hilos o con el proceso que lo generó.
J
Java. Lenguaje de programación orientado a objetos creado por la empresa Sun
MicroSystems en los inicios de los años 90s. Tiene una sintaxis parecida a C y C++ y cuenta
con un modelo de objetos simplificado con respecto a otros lenguajes con el mismo
paradigma de programación.
Lenguaje C.
M
Memoria compartida. Arquitectura que se utiliza en el diseño actual de procesadores multi-
núcleo. Los chips contienen dos o más procesadores que se comunican y comparten datos
entre sí a través de un esquema de memoria compartida, lo cual es transparente al usuario.
Método. Porción de código asociado a una clase y que representa las acciones que puede
realizar un objeto definido de esa clase.
N
.NET. Proyecto de tecnología computacional que incluye un framework robusto, lo cual
permite el desarrollo de software de manera transparente a las redes. Contiene los
lenguajes de programación C#, Visual Basic, C++ y J#.
39 de 42
Objeto.
Objeto Instancia de clase. Es una unidad de código que contiene tres características
fundamentales: identidad, comportamiento y estado.
ODBC. Es un estándar para el acceso de bases de datos desde aplicaciones. Las siglas
quieren decir “Conectividad abierta de bases de datos”.
MPI.
MPI Interface de paso de mensajes, por sus iniciales en inglés, Message Passing
Interface.
OpenMP. Interfaz Programable de Aplicaciones para cómputo paralelo, desarrollada por Sun
Microsystems par los lenguajes C y Fortran.
P
Paso de mensajes. Técnica utilizada en programación para realizar la sincronización de
procesos concurrentes.
Polimorfismo.Capacidad
Polimorfismo. que tienen los objetos de una clase de responder al mismo
mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto
polimórfico puede contener valores de diferentes tipos durante la ejecución del programa.
Procesador multi-
multi-núcleo.
Región crítica.
Semáforo binario.
40 de 42
Sobrecarga. Es una característica de la programación orientada a objetos, que permite tener
dos o más métodos con el mismo nombre pero con funcionalidad distinta.
Socket.
Socket Es una conexión entre un cliente y un servidor para entablar comunicación. Utiliza
una serie de protocolos de comunicación entre los más importantes, TCP o UDP. Se
conforman por una dirección IP y un número de puerto.
U
URI. Identificador Uniforme de Recursos.
W
Web. Sistema de documentos interconectados por medio de enlaces de hipertexto que se
encuentran en Internet.
www. (Wolrd Wide Web). Sistema propuesto por Tim Barnes Lee para el acceso a
documentos en Internet. Está compuesto por el URI (identificador uniforme de recursos), el
hipertexto y el lenguaje HTML.
Web 2.0.
2.0 Este término fue utilizado por primera vez por Tim O’Reilly en el 2004 para
referirse a una segunda generación de web basada en comunidades de usuarios y una
gama especial deservicios, como las redes sociales, blogs, etc. que fomentan la
colaboración y el intercambio ágil de información entre los usuarios.
Web semántica. Es una nueva concepción de la web actual en la que se añade el trabajo
con metadatos. Éstos describen el contenido, el significado y la relación entre los datos.
X
XML. Son las siglas de Extensible Markup Language y es un lenguaje extensible de
etiquetas desarrollado por World Wide Web Consortium. Permite definir la gramática de
lenguajes específicos.
XMLHTTPRequest..
XMLHTTPRequest (Extensible Markup Language / Hypertext Transfer Protocol), es una
interfaz que se utiliza en peticiones HTTP y HTTPS a servidores WEB, de manera asincrónica,
y permite cargar, a solicitud del usuario, de manera inmediata, los resultados de las
peticiones al servidor.
41 de 42
BIBLIOGRAFÍA
Básica
TÍTULO: Programaciónconcurrente
AUTOR: José Tomás Palma Méndez
EDITORIAL O REFERENCIA: Thomson Paraninfo
Complementaria
TÍTULO: Sistemas operativos modernos
AUTOR: Andrew Tanenbaum
EDITORIAL O REFERENCIA: Prentice Hall
TÍTULO: Java a fondo
AUTOR: Sznajdleder, Pablo
EDITORIAL O REFERENCIA: Alfaomega
42 de 42