Última actualización: 09/06/2021


Curso Académico: 2021/2022

Arquitectura de Sistemas II
(13423)
Titulación: Grado en Ingeniería Telemática (215)


Coordinador/a: ESTEVEZ AYRES, IRIA MANUELA

Departamento asignado a la asignatura: Departamento de Ingeniería Telemática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
Programación de sistemas Arquitectura de Sistemas I
Objetivos
El objetivo de este curso es la adquisición de los fundamentos básicos relativos al campo de los sistemas software fundamentalmente a nivel de sistema operativo y con nociones básicas de sistemas distribuidos. Para lograr este objetivo principal, se deberán adquirir una serie de conocimientos y capacidades. Los conocimientos adquiridos al cursar esta asignatura son: - Conocer la estructura básica de un sistema operativo. - Conocer la estructura software basada en procesos. - Conocer los mecanismos de comunicación entre procesos. - Conocer la estructura software basada en hebras y las características de las aplicaciones multi-hilo (o multi-hebra). - Conocer los mecanismos de gestión de la concurrencia. - Conocer los mecanismos de gestión de memoria. - Conocer la arquitectura de un sistema distribuido. - Conocer los mecanismos básicos de comunicación en sistemas distribuidos - Conocer la arquitectura típica de un middleware de comunicaciones y sus componentes fundamentales. Las capacidades específicas que se adquirirán son: - Utilizar los mecanismos básicos que ofrece un sistema operativo para la ejecución de aplicaciones. - Utilizar los mecanismos básicos de comunicación entre procesos. - Diseñar e implementar aplicaciones multi-hilo centralizadas y distribuidas en red y mecanismos básicos de sincronización. - Utilizar modelos de comunicación en sistemas distribuidos mediante paso de mensajes. - Modelar y desplegar un sistema distribuido.
Competencias y resultados del aprendizaje
Descripción de contenidos: Programa
1. Arquitectura de un sistema software: centralizado y distribuido - Definiciones y conceptos básicos de un sistema distribuido - Aspectos software y hardware 2. El sistema operativo - Funcionalidad y servicios básicos. - Multiprogramación con procesos. - Mecanismos de comunicación entre procesos. - Hebras y sincronización. - Gestión de la memoria. 3. Sistemas distribuidos: modelos, algoritmos y software - Modelos de sistemas distribuidos. - Sincronización distribuida y transacciones. - Consenso. - Modelos de middleware y programación distribuida.
Actividades formativas, metodología a utilizar y régimen de tutorías
Las actividades que se llevan a cabo en la impartición de la asignatura son: - CLASES MAGISTRALES. Presentación por parte del profesorado de los principales conceptos a modo de resumen. Se fomentan en este tipo de sesiones tanto la interactividad como la discusión de los principales problemas planteados. - CLASES DE EJERCICIOS PRÁCTICOS: Sesiones en las que se plantean problemas reales y se permite al alumnado su análisis así como el planteamiento de posibles soluciones. - LABORATORIOS DE PROGRAMACIÓN: Se describe una funcionalidad basada en los conceptos teóricos cubiertos tanto en las sesiones magistrales como de problemas y, con la supervisión del profesorado, se procede a su implementación. Estas sesiones suponen un trabajo adicional del alumnado durante un período de varios días en los que tiene la posibilidad de, por varios canales, consultar sus dudas conceptuales con el profesorado.
Sistema de evaluación
  • Peso porcentual del Examen Final 0
  • Peso porcentual del resto de la evaluación 100
Calendario de Evaluación Continua
Bibliografía básica
  • A. Silberschatz, P. Galvin. Operating System Concepts.. Wiley. 7ª edición..
  • B. Kernighan, D. Ritchie. The C Programming Language. Prentice Hall. 1998
  • Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farrell. Pthreads Programming. O'Reilley. 1996
  • G. F. Coulouris, J. Dollimore, T. Kindberg.. Distributed Systems. Concepts and Design. Adisson Wesley. 4th ed., June 2012. ISBN 0201-61918-0..
  • M. Kerrisk. The Linux Programming Interface. No Starch Press. 2013
  • R. Love.. Linux System Programming. O'Reilley.. 2013.
Bibliografía complementaria
  • A.S. Tanenbaum, M. Van Steel. Distributed Systems.. Prentice-Hall..
  • Brian W. Kernighan. The UNIX programming environment. Prentice Hall.
  • Brian W. Kernighan, Dennis M. Ritchie. The C programming language. Prentice Hall, 1989.
  • David Butenhof. Programming with POSIX threads. Addison Wesley.
  • Gregorio Fernández. Conceptos básicos de arquitectura y sistemas operativos: Curso de Ordenadores. Madrid, Sistemas y Servicios de Comunicación..
  • S. Oaks, H. Wong. Java Threads.. O`Reilly.

El programa de la asignatura y la planificación semanal podrían sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.