Operating systems


Would you like to investigate beyond the surface of Windows, MacOS, Linux, 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 session is mandatory


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

This includes all past exams with their solutions.


You can even be a young padawan in programming to attend the course. If necessary, you will have to follow an online 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/ouput. Real-time programming of robots

Nb hours:42.00, at least 6 Lab sessions

Grading Policy:Lab reports (10%), Project defense (30%), Final Exam (60%)