B8562 - SISTEMI CONCORRENTI E PARALLELI M

Academic Year 2025/2026

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Computer Engineering (cod. 6719)

Learning outcomes

At the end of the course, the student has an in-depth understanding of:
a) the organization of concurrent and parallel computing systems, in relation to the characteristics of the hardware used, with particular focus on multiprocessor architectures, multicomputers, and high-performance computing (HPC) systems;
b) the features and internal structure of operating systems that support the execution of concurrent and parallel applications;
c) the models and tools for process synchronization in both the shared memory model and the message-passing model;
d) the methodologies and programming languages for designing concurrent applications;
e) the methodologies and programming languages for designing parallel applications on high-performance computing (HPC) systems, with particular reference to the MIMD architectural model.

In particular, the student is able to solve synchronization problems among concurrent/parallel activities in both the shared memory and message-passing models, develop concurrent programs using high-level languages based on both shared variables and message passing, develop parallel programs on HPC systems—especially within the MIMD architectural model—and evaluate their performance.

Course contents

1.Operating Systems Complement

Virtualization:

  • Hardware virtualization: objectives and solutions

  • Implementation of virtual machine monitors: virtualization and paravirtualization

  • Analysis and experimentation of technologies: the case of Xen

  • Virtualization as support for cloud computing

Protection and Security:

  • Review on protection: models, policies, and mechanisms

  • Multilevel security

  • Reference Monitor and trusted systems

3. Concurrent Programming

  • Introduction and definitions

  • Non-sequential processes

  • Types of interaction

  • Architectures and languages for concurrent programming

4. Shared Memory Model

Review of:

  • Mutual exclusion

  • Semaphores

  • Monitors

  • Condition variables

Use of concurrent programming languages in the shared memory model: the pthreads library

5. Message Passing Model

  • Key aspects

  • Review of channels and primitives

  • Communication primitives

  • Guarded commands

  • Rendezvous and remote procedure call

Use of concurrent languages in the message-passing model: Go, Ada

6. Concurrent Systems Based on the Shared Memory Model

  • Characteristics and issues

  • Implementation of thread management and synchronization mechanisms within the kernel of a single-processor system

  • Extension to the multiprocessor case: Shared-core SMP model, Loosely-coupled model

7. Concurrent Systems Based on Distributed Memory

  • Characteristics and issues

  • Distributed applications: centralized and decentralized approaches. Scalability and fault tolerance

  • Algorithms for synchronization in distributed systems: logical clocks, distributed mutual exclusion, election algorithms

8. Parallel Systems

  • Architectures for parallel computing. HPC systems

  • Parallel programming models: shared memory and distributed memory

  • Development of parallel applications: the MPI and OpenMP libraries

  • Introduction to GPGPU and the CUDA library

Readings/Bibliography

  • G.R.Andrews: "Foundations of Multithreaded, Parallel and Distributed Programming", Addison-Wesley
  • Peter Pacheco, An Introduction to Parallel Programming, Morgan Kauffmann, 2011
  • P.Ancilotti, M.Boari: 'Programmazione concorrente e distribuita', McGraw-Hill
  • P.Ancilotti, M.Boari A.Ciampolini,G.Lipari: ' Sistemi Operativi', seconda edizione, McGraw-Hill
  • S. Tanenbaum: 'I Moderni Sistemi Operarivi', Jackson Libri
  • A.Silberschatz, P.Galvin, G.Gagne: 'Applied Operating System Concepts' I edizione, John Wiley & Son, Inc.

Teaching methods

Lectures will be integrated with laboratory activities that will take place in the laboratories of the School of Engineering and Architecture.

In consideration of the teaching methods adopted, the attendance of this course requires the prior participation of all students in the training modules 1 and 2 on safety in the study places [https://elearning-sicurezza.unibo.it/], in e-learning mode.


Assessment methods

The exam consists of two mandatory parts:

  • Laboratory test: development of concurrent/parallel applications.

  • Oral examination.

The oral examination can only be taken after passing the laboratory test.

Teaching tools

Classroom lectures are presented with the aid of slides and a video projector.
The slides presented during lectures are made available to all students through the "Virtuale" platform.
Each student enrolled in the course is assigned a virtual machine to be used for self training at home.

Office hours

See the website of Anna Ciampolini

SDGs

Quality education Gender equality Industry, innovation and infrastructure

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.