Encabezado Facultad de Ciencias
Presentación

Ciencias de la Computación (plan 2013) 2024-2

Octavo Semestre, Computación Concurrente

Grupo 7100, 40 lugares. 23 alumnos.
Profesor Manuel Alcántara Juárez lu mi 16 a 17:30 P210
Ayudante Ángel Renato Zamudio Malagón ma ju 15 a 16 P210
Ayud. Lab. Ricchy Alain Pérez Chevanier lu 12 a 14 Laboratorio de Ciencias de la Computación 2
 

Inicio de clase: 29 de Enero de 2024

Fin de clase: 24 de Mayo de 2024

Objetivo General

“Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” [Rob Pike]

El objetivo general del curso es proporcionar a los estudiantes una comprensión profunda de los fundamentos teóricos y prácticos de la concurrencia en el ambito de la computación. Se capacitará a los estudiantes para que puedan diseñar, implementar y gestionar de manera efectiva sistemas y aplicaciones concurrentes, aprovechando al máximo los beneficios de la concurrencia y garantizando la correcta coordinación y sincronización de tareas concurrentes en entornos de computación modernos.

Durante el curso, los estudiantes explorarán conceptos clave, como la concurrencia, la paralelismo, la comunicación y la sincronización, y adquirirán habilidades prácticas para identificar y solucionar problemas inherentes a la programación concurrente. Se familiarizarán con modelos de programación concurrente, como hilos, procesos, calendarización y eventos, y aprenderán a utilizar técnicas y herramientas para asegurar la consistencia para evitar condiciones de carrera y gestionar eficientemente los recursos compartidos

Prerequisitos

  • Introducción a las Ciencias de la Computación

  • Estructuras de Datos

  • Modelado y Programación

  • Sistemas Operativos

  • Y ... mucha perseverancia, entusiasmo y ganas de aprender.

Herramientas

Evaluación

  • Exámenes: 30%

  • Tareas: 35%

  • Laboratorio: 35%

  • Actividad Opcional: 10%

Reglas

  • Las sesiones de teoría se podrían transmitir via Zoom y poner a disposición de la case en el sitio del curso, si la mayoría de los alumnos estan de acuerdo con ello.
  • En la calificaciónn final a partir de 0,5 se redondeará al entero superior próximo siempre y cuando sea una calificación aprobatoria [>= 6,0]. Por ejemplo, si el alumno obtiene un promedio de 7, 5 su calificación final será 8.0. En cambio, si es 5,9 se quedará en 5,0.

  • El NP solo se considerará si el alumno no ha realizado NINGUNA entrega, o por petición escrita del interesado siempre que haya obtenido un promedio mayor o igual que 7

  • No hay reposiciones ni examen final.

  • Para la comunicaciónn asincrona entre alumnos y el grupo de profesores se utilizará Google Classroom.

  • La rúbrica de Actividad Opcional y constará de un artículo que argumente la veracidad/falsedad de una hipótesis planteada por medio de la experimentación. La planteación del experimento es parte fundamental del árticulo aunque no se evaluará con rigor científico. La hipótesis a argumentar es libre y de cualquier tema.

Temario

  1. Introducción
    • ¿Porqué utilizar Concurrencia?
    • Concurrencia vs Paralelismo
    • Ley de Amhdal
    • Conceptos Básicos
  2. El problema de la Exclusión Mutua
    • Sincronización
    • Definición de Candados
    • Algoritmo de Peterson
    • Algoritmo del Filtro
    • Algoritmo del Panadero
  3. Consenso
    • Cotas Inferiores en Registros
    • Operaciones Atómicas
    • El problema del consenso
    • Consenso multivaluado vs Consenso Binario
    • Universalidad del Consenso
  4. Monitores
    • Espera Ocupada y Bloqueo
    • Variables Condicionales
    • El Problema del Despertar Perdido
    • El Problema del Despertar Ficticio
    • Candado Reentrante
  5. Sincronización con Objetos Concurrentes
    • El concepto de un Semáforo
    • Problema del Productor-Consumidor
    • Problema Priority Scheduling
    • Problema de los Lectores Escritores
    • Buffer compartido
  6. Barreras
    • Barreras como forma de sincronización
    • Barrera para dos procesos
    • Barreras para N hilos
    • Barreras reutilizables
  7. Temas selectos
    • Algoritmos de exclusión tolerantes a fallas de paro
    • Transacciones en memoria compartida

Más información

Para más información de las reglas de entrega y bibliografīa consultar el Syllabus que se encuentra en la sección Trabajo de Clase -> Recursos del sitio de google classroom.

 


Hecho en México, todos los derechos reservados 2011-2016. Esta página puede ser reproducida con fines no lucrativos, siempre y cuando no se mutile, se cite la fuente completa y su dirección electrónica. De otra forma requiere permiso previo por escrito de la Institución.
Sitio web administrado por la Coordinación de los Servicios de Cómputo de la Facultad de Ciencias. ¿Dudas?, ¿comentarios?. Escribenos. Aviso de privacidad.