General information

Subject type: Mandatory

Coordinator: Rosa Herrero Antón

Trimester: Second term

Credits: 6

Teaching staff: 

Enric Sesa Nogueras

Teaching languages

  • Catalan

The classes are in Catalan. Most of the documentation (including practice and exam statements) is in English. 


Basic skills
  • B2_That students know how to apply their knowledge to their job or vocation in a professional way and have the skills they demonstrate by developing and defending arguments and solving problems within their area of ​​study

  • B5_That students have developed those learning skills necessary to undertake further studies with a high degree of autonomy

Specific skills
  • EFB5_Knowledge of the structure, organization, operation and interconnection of information systems, the fundamentals of their programming and their application for solving engineering problems

  • EIS1_Ability to develop, maintain and evaluate software services and systems that meet all user requirements and that behave reliably and efficiently, are affordable to develop and maintain and comply with quality standards, applying theories, principles, methods and software engineering practices

  • EIS4_Ability to identify and analyze problems and design, develop, implement, verify and document software solutions based on adequate knowledge of current theories, models and techniques

Transversal competences
  • T1_That students know a third language, which will be preferably English, with an adequate level of oral and written form, according to the needs of the graduates in each degree


In this subject, the most relevant concepts, problems and practices of concurrent programming are introduced from an eminently practical point of view.

This subject should be taken after passing the Operating Systems subject



1.- Fundamental concepts

  • Programs, processes, and threads
  • Parallelism Vs. concurrence
  • Architectures

2.- Implementation of processes and threads

  • Threads in Java: the Thread class and the Runnable interface
  • Life cycle of a thread

3.- Interference and the problem of the critical section

  • Interference
  • Mutual exclusion
  • Algorithms that guarantee mutual exclusion

4.- Tools

  • Test & Set
  • Traffic lights
  • Monitors

5.- Deadlock, safety & liveness

6.- Distributed systems

Evaluation system

The final grade of the subject (QF) will be calculated based on the grade of the laboratory practices (Pr, 50%) and a final exam (Ex, 50%)


QF = Ex and Ex <4

QF = 0.5· Ex + 0.5·Pr if Ex >= 4

Students with QF <5 will be able to take a resit exam that will replace the first Ex grade in the QF calculation. In case of having to take the resit exam, the final grades in the range [5, 7.5) will be rounded to 5. The final grades in the range [7.5, 10] will be rounded to 7.

Internships are not refundable. 

It is the student's responsibility to avoid plagiarism in all its forms. In the case of detecting plagiarism, regardless of its scope, in any assessment activity (including practices), article 8 of the assessment regulations will apply, which entails the automatic suspension of the subject without the possibility of recovery. In addition, the professor will communicate the situation to the Head of Studies so that he can take applicable measures in terms of disciplinary regime. In the context of this subject, plagiarism also means using and/or adapting code that has not been developed entirely individually (or within the group in the case of group activities). Facilitating code that results in plagiarism is also a form of plagiarism and will be treated in the same way. In summary, we can say that assessment activities must be solved in a strictly non-collaborative way (in the case of group activities, collaboration cannot go beyond the group itself). 




Ben-Ari, Mordechai. Principles of concurrent and distributed programming. 2006. Essex: Pearson, 2006. ISBN 9780321312839.

Palma Méndez, José Tomás et al ,. Concurrent programming. Madrid: International Thomson, 2003. ISBN 8497321847.


Magee, Jeff; Kramer, Jeff. Concurrency: state models & Java programs. 2nd ed. Chichester: John Wiley & sons, 2006. ISBN