Phelma Formation 2022

Operating systems and system programming - 4PMRSEP5

  • Number of hours

    • Lectures 8.0
    • Projects 0
    • Tutorials 8.0
    • Internship 0
    • Laboratory works 18.0


    ECTS 1.5


To understand machine resource management (time, memory);
To understand the link with machine hardware (atomic instructions, MMU, privilege level, etc.);
To provide basic system programming tools (process, thread, signal, synchronization);
To use a standard API (POSIX).

Contact Francois CAYRE



  • When an OS is needed
  • Processes and threads
  • Events: interrupts and signals
  • CPU management
  • Memory management
  • Synchronization (mutex, spinlock, semaphores, non-locking algorithms)

The goal of the practical labs is to strengthen both practice and general knowledge of system programming, using examples that are as useful and realistic as possible. Such examples include: Unix filters, Unix daemons, a memory protection framework, a plugin system using the dynamic loader, an introduction to high performance computing and the pitfalls of multi-threads programming, and a time-sharing simulator.

  • Decent basic C programming, including compilation chain, unions and structures, (function) pointers, basisc preprocessor.
  • Basic exposition to the Unix environment (files and directories management, simple commands, basic usage of a C compiler and make)


EXAM: 2hrs written exam, no document nor any electronic devices allowed.
•10 points on course questions
•6 points on lab questions

    • MCC en présentiel **

EXAM{1,2} : écrit, 2h, sans documents ni dispositifs électroniques.

    • MCC en distanciel **
      N1 = TP à distance
      N2 = TP2 à distance

Additional Information

Course list
Curriculum->Alternance MT->Semester 8


"Principes des Systèmes d'Exploitation", Abraham Silberschatz, Peter B. Galvin, Greg Gagne
"Programmation Système en C sous Linux", Christophe Blaess