Checking date: 25/04/2024

Course: 2024/2025

Systems Architecture II
Bachelor in Telematics Engineering (Plan: 447 - Estudio: 215)

Coordinating teacher: ESTEVEZ AYRES, IRIA MANUELA

Department assigned to the subject: Telematic Engineering Department

Type: Compulsory
ECTS Credits: 6.0 ECTS


Requirements (Subjects that are assumed to be known)
Systems programming Systems Architecture I
The goal of the course is to enable students to acquire knowledge relative to the fundamental concepts of software systems at the level of the operating system and fundamental concepts on distributed systems. In order to achieve this goal, the student must acquire the following knowledge: - To know the basic structure of an operating system. - To know the software structure based on processes. - To know the mechanisms of communication between processes. - To know the software structure based on threads and the characteristics of multi-threaded (or multi-threaded) applications. - To know the concurrency management mechanisms. - To know memory management mechanisms. - To know the architecture of a distributed system. - To know the basic mechanisms of communication in distributed systems. - To know the typical architecture of a communications middleware and its fundamental components. The specific capacities that will be acquired by the student upon successful completion of the course will be: - To use the basic mechanisms that an operating system offers to support application execution. - To use the concurrency management mechanisms and memory management mechanisms. - To design and implement multi-threaded applications both centralised and distributed and their basic synchronization mechanisms. - To use communication models in distributed systems based on message passing. - To model and deploy a distributed system.
Skills and learning outcomes
Description of contents: programme
1. Architecture of a software system: centralized and distributed - Fundamental concepts of a distributed system. - Software and hardware aspects 2. The operating system 2.1 Functionality and basic services 2.2 Multiprogramming: processes. 2.3 Inter Process communication mechanisms 2.4 Threads and synchronization 2.5 Memory management. 3. Distributed systems models, algorithms and software 3.1 Distributed system models 3.2 Algorithms for distributed synchronization, election, and transactions 3.3 Consensus algorithms 3.4 Middleware models and distributed programming
Learning activities and methodology
The activities will be the following: - Lectures: study and explanation of the main concepts of the subject through the use of oral presentations by the lecturer and discussions of the main problems and the solutions proposed in the literature. - Exercise classes: sessions where real problems will be presented to the students. The students will analyse these problems and they will propose suitable solutions. - Labs: concrete small scale problems will be presented to the students. They have to propose solutions based on the concepts explained in the lectures and exercise classes and, with the supervision of the lab teacher, they have to implement their solutions.
Assessment System
  • % end-of-term-examination 35
  • % of continuous assessment (assigments, laboratory, practicals...) 65

Calendar of Continuous assessment

Extraordinary call: regulations
Basic Bibliography
  • 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.
Additional Bibliography
  • 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.

The course syllabus may change due academic events or other reasons.