Encabezado Facultad de Ciencias
Presentación

Ciencias de la Computación (plan 2013) 2025-1

Octavo Semestre, Computación Concurrente

Grupo 7104, 40 lugares.
Profesor Manuel Alcántara Juárez lu mi 17 a 18:30
Ayudante Ricchy Alain Pérez Chevanier ma ju 16 a 17
Ayud. Lab. Ángel Renato Zamudio Malagón vi 16 a 18 Taller de Lenguajes de Programación
 

Inicio de clase: 5 de Agosto de 2024

Fin de clase: 22 de Noviembre 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, el 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

  • En la calificación 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ón asíncrona entre alumnos y el grupo de profesores se utilizará Google Classroom.

  • La rúbrica de Actividad Opcional constará de la realización de al menos 40 preguntas creadas en socrative que hagan referencia a los temás y conceptos vistos en la clase organizadas por tema. Se realizará una primera entrega a medidados del curso y la segunda parte seria al finalizar las clases. Se deben considerar varios tipos de preguntas.

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. Construcción de Registros
    • Registros Safe, Regular y Atomicos
    • De Single-Reader a Multi-Reader
    • De Safe a Regular
    • Registro Single-Reader/Single-Writer Atómico
  5. Monitores
    • Espera Ocupada y Bloqueo
    • Variables Condicionales
    • El Problema del Despertar Perdido
    • El Problema del Despertar Ficticio
    • Candado Reentrante
  6. 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
  7. Barreras
    • Barreras como forma de sincronización
    • Barrera para dos procesos
    • Barreras para N hilos
    • Barreras reutilizables
  8. 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.