72947 - Operating Systems M

Academic Year 2021/2022

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

Learning outcomes

Knowledges of main design aspects concerning the organization of concurrent systems. Models for sincronization and communication between processes/threads. Methods for analysis and synthesis of concurrent systems.


Course contents

1.System protection and security

  • models, policies and mechanisms
  • multilevel security
  • Reference Monitor and trusted systems

2.Virtualization

  • hardware virtualization: goals and solutions
  • virtual machine monitor implementation
  • Case study analysis: xen hypervisor
  • Virtualization and cloud computing

3.Concurrent programming

  • preliminaries
  • non sequential processes.
  • forms of interaction between concurrent processes
  • architectures and languages for concurrent programming

4.Shared memory model

  • mutual exclusion
  • semaphores
  • monitors
  • conditions

Use of concurrent languages in the shared memory model. The pthread library for concurrent programming.

5.Message passing model

  • preliminaries
  • channels and communication primitives
  • send and receive
  • guarded commands
  • Rendez-vous and RPC

Use of concurrent languages in the message passing model: go, ada.

6.Shared memory kernel

  • Implementation of thread management/synchronization in a mono-processor kernel
  • Implementation of thread management/synchronization in a multi-processor kernel: SMP, loosely-coupled kernels.

7. Distributed Systems

  • distributed programming: centralized and decentralized algorithms.Scalability, fault tolerance.
  • algorithms for the synchronization of distributed processes: logical clocks, distributed mutual exclusion, election algorithms.

8. Parallel Programming

  • Parallel architectures, HPC systems.
  • Architetture per il calcolo parallelo. Sistemi HPC.
  • Parallel programming models: shared memory and distributed memory.
  • Parallel software development: MPI and OpenMP libraries.
  • Outlines on CUDA programming.

Readings/Bibliography

  • P.Ancilotti, M.Boari: 'Programmazione concorrente e distribuita', McGraw-Hill.
  • 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 A.Ciampolini,G.Lipari: ' Sistemi Operativi', seconda edizione, McGraw-Hill
  • W.Stallings: 'Sistemi operativi', Jackson Libri
  • 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

Classroom lessons and laboratory projects.


Assessment methods

Practical examination: solution of synchronization problems.
Oral examination.

Teaching tools

Lessons are presented with the support of slides.
Slides can be downloaded from the course website.
A virtual machine will be assigned to each student.

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.