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

    ECTS 1.5

Goal(s)

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

Content(s)

Lectures:

  • 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.



Prerequisites
  • 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)

Test

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 **
      N1=EXAM1
      N2=EXAM2

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

Bibliography

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