Presentación

Contenidos

1. Profesorado y web

2. Contexto

2.1. Tipo

  • Optativa para Grado en Ingeniería Informática (especialidad de Ingeniería de Computadores).
  • (No presencial) Optativa para titulaciones Plan 2001: II, ITIS, ITIG.

2.2. Créditos

  • 6 presenciales (3 teoría + 3 prácticas)
  • 15 sesiones de teoría (1 semanal durante un cuatrimestre) de 2 h cada una.
  • 15 sesiones prácticas (1 semanal durante un cuatrimestre) de 2 h cada una.

3. Horarios

  • Teoría: Martes 15:00-17:00
  • Prácticas: Martes 17:00-19:00

4. Evaluación

  • La asignatura consta de dos bloques:
    • Teoría
    • Prácticas.
  • Cada uno de ellos tiene un peso del 50% en la nota final.

4.1. Evaluación de la teoría

  • Elegir uno de los dos tipos de evaluación:
    Evaluación continua :
    • Asistencia al 80% de las sesiones de teoría.
    • Realizar las actividades requeridas.
    Evaluación final :
    • Examen de teoría el día asignado por la Universidad.
    • Para promediar teoría y prácticas es necesario obtener como mínimo un 4 en ambos bloques.

4.2. Evaluación de las prácticas

  • Elegir uno de los dos tipos de evaluación:
    Evaluación continua :
    • Asistencia al 80% de las prácticas.
    • Entrega del código y la memoria de los ejercicios prácticos realizados en clase a la semana siguiente de la sesión correspondiente.
    Evaluación final :
    • Examen de prácticas en la última sesión de prácticas con el ordenador.
    • Entrega, ése mismo día, del código y la memoria de los ejercicios prácticos realizados en casa.
    • Para promediar teoría y prácticas es necesario obtener como mínimo un 4 en ambos bloques.

4.3. Segundo período de evaluación

  • Solo se llevará a cabo una evaluación final.

4.4. Sistema de evaluación que se aplicará en la convocatoria de diciembre

  • Se realizará un examen de teoría y uno de prácticas.
  • Para promediar teoría y prácticas es necesario obtener como mínimo un 4 en ambos bloques.

4.5. Actividades evaluables de teoría

  • Asistencia obligatoria como mínimo al 80% de las sesiones (12 sesiones).
  • Presentaciones durante el mes de diciembre de uno de los trabajos propuestos.
  • Se debe elegir el trabajo y el día de presentación.
  • Las presentaciones se realizarán individualmente y tendrán una duración de 10 minutos.
  • Se debe entregar la presentación en formato digital (preferiblemente en PDF). Las entregas se realizan siempre en (y sólo en) http://pracdlsi.dlsi.ua.es en las fechas allí publicadas. Puedes entregar tantas veces como quieras, sólo se corregirá la última entrega.
  • Reparto Notas Teoría:
    • Presentación: 3.5 puntos máximo.
    • Trabajos semanales: 1.5 puntos máximo. Estos trabajos se corresponden con preguntas que encontrareis en los temas de teoría y se entregan adjuntos a una tutoria hasta una semana después de finalizado el tema correspondiente.

4.6. Actividades evaluables de prácticas

  • Las prácticas consistirán en 12 sesiones obligatorias propuestas en UA-Cloud. Además, se puede realizar una práctica opcional propuesta para subir nota.
  • Las entregas se realizan siempre en (y sólo en) http://pracdlsi.dlsi.ua.es en las fechas allí publicadas. Puedes entregar tantas veces como quieras, sólo se corregirá la última entrega.
  • Estas entregas constarán del código fuente y de un documento (PDF) que será la "Memoria de la Práctica".
  • Las prácticas serán individuales.
  • Reparto de las notas de prácticas:
    • Asistencia al 80% sesiones prácticas: 1 punto
    • Memoria Prácticas: 3.5 puntos max.
    • Practica opcional: 0.5 puntos max.

5. Temario

5.1. Tema 1: Conceptos fundamentales

  • Concepto de Programación Concurrente
  • Beneficios de la Programación Concurrente
  • Concurrencia y arquitecturas hardware
  • Especificación de ejecución concurrente
  • Características de los sistemas concurrentes
  • Problemas inherentes a la programación concurrente

5.2. Tema 2: Procesos vs. hilos

  • Procesos
  • Procesos en Unix/C
  • Hilos
  • Hilos en Java y en Unix/C

5.3. Tema 3: Primeras aproximaciones al problema de la programación concurrente

  • Tipos de sincronización y su solución
  • La espera ocupada para exclusión mutua
  • Algoritmos de Dekker, Peterson, Hyman, Eisengerg-McGuire y Lamport

5.4. Tema 4: Semáforos

  • Definición
  • Resolución de problemas usando semáforos
  • Implementación de semáforos
  • Inconvenientes de los semáforos

5.5. Tema 5: Sincronización con Java

  • Exclusión mutua en Java
  • Sincronización en Java
  • Uso de synchronized
  • Resolución de problemas clásicos
  • Semáforos binario y general

5.6. Tema 6: Monitores

  • Comparativa entre Semáforos y Monitores
  • Concepto y Funcionamiento
  • Sincronización con monitores
  • Implementación de monitores en Posix

6. Bibliografía

  • Principios y algoritmos de concurrencia: Ricardo Galli. Ebook. 2015
  • Programación concurrente: José Tomás Palma Méndez y otros. Editorial Thomson. Ed. 2003
  • UNIX, programación avanzada: Francisco M. Márquez, Editorial Ra-Ma, 2004
  • UNIX, programación práctica. Guía para la Concurrencia, la Comunicación y los Multihilos: Kay A. Robbins, Steven Robbins. Editorial Prentice Hall Hispanoamericana, 1997.

7. Consejos

  • La asignatura no es difícil pero sí tiene muchos conceptos nuevos; estudia día a día.

    Para que te sirva como referencia… por cada hora de clase deberías dedicarle alrededor de hora y media de estudio en casa.

  • Dispondréis con suficiente antelación de las transparencias empleadas en clase de teoría para facilitaros el seguimiento de las mismas.

Created: 2023-12-15 vie 13:32

Validate