UE Principles of operating systems

Informations aux utilisateurs

Veuillez noter que vous consultez une page du catalogue de formation 2020-2021. Le recrutement est actuellement terminé pour les licences, licences professionnelles, masters, DUT et formations réglementées de santé. Pour consulter le catalogue des formations 2021-2022, cliquez sur le lien suivant.

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