UE Principles of operating systems

Diplômes intégrant cet élément pédagogique :

Descriptif

This class is an introduction to general operating systems concepts that every programmer and computer scientist must know.

The course presents the main roles of an operating system and the challenges associated with the design of an operating system. The main components of an operating system are studied, including: memory management, task management, management of storage devices.

For each component, we present the main design choices in existing operating systems. We study how these design choices are guided by the characteristics of the underlying hardware and how the components interact with the hardware.

Additionally, a special focus is given to concurrent programming. The challenges and pitfalls of concurrent programming are introduced. Using the POSIX thread interface, we study the main programming concepts and methodologies to write correct and efficient concurrent programs.

Organization:
The class is based on an 11-week semester, with 3 hours of lectures and 3 hours of in-class lab sessions per week.
The labs are based on the C language, the Linux operating system and the POSIX programming standard.

Remark : For the interested students wishing to study the detailed design and implementation of an operating system, an optional (1-month) programming project is available at the end of the semester in a separate class (see GBX7MO08 - Programming project/OS).

Pré-requis recommandés

- knowledge of the C programming language
- basic knowledge of a Unix-like operating system (e.g., Linux) from a user perspective (interactions with a shell such as bash, job control, input/output redirection)
- basic knowledge about computer architecture and assembly programming
- basic knowledge/experience with an assembly language for a given processor family (e.g., Intel x86, ARM, MIPS)

Informations complémentaires

Méthode d'enseignement : En présence
Lieu(x) : Grenoble
Langue(s) : Anglais