Operating systems


Would you like to investigate beyond the surface of Windows, MacOS, Linux, and Android? Fed up with not understanding the origin of segmentation faults, why you need to eject a USB key before physically removing it, or why/how your Android system can execute Pokemon Go and Facebook at the same time? You want to delve into the details of the inner workings of the Linux kernel? Join us to discover the power of Operating Systems!

Teaching and Learning Methods: Lectures (40%), Lab sessions (40%), Project (20%)

Course Policies: Attendance to some lab. and project sessions are mandatory.


All necessary documents and references to books are provided on the website: http://soc.eurecom.fr/OS

This includes all past exams with their solutions.


Basic programming knowledge. If necessary, you can follow a short tutorial on C programming.


From basic to advanced concepts - BIOS, interrupts, scheduling, timers -, you will gradually enter into fundamental and practical elements of OS. In labs, you will experiment with advanced functions provided by Operating Systems, and also modify the Linux kernel. In the project, you will program real-time applications for robots running Linux, and compete against each other in an ultimate battle for OS supremacy. Don't panic, OS masters will assist you!

Learning Outcomes:

  • Fundamentals of Operating Systems: processes, threads, synchronization techniques, scheduling policies, management of memory, device drivers
  • Fundamentals of Real-Time Operating Systems: real-time scheduling, timers, programming with POSIX, real-time programming with Linux
  • Practical use of functions provided by Operating systems: use of system calls in different domains e.g. process management, input/output. Real-time programming of robots.

Nb hours: 42.00


  • Lab. reports (10% of the final grade),
  • Project (30% of the final grade),
  • Written Exam (60% of the final grade).