S. Touati, PR

Systèmes 2: mécanismes internes des systèmes d'exploitation

Ce cours présente les principaux concepts d'un système d'exploitation permettant d'orchestrer l'exécution de plusieurs processus en parallèle. Ces concepts sont mis en oeuvre en Python pour la réalisation d'un mini-projet de type 'mini-shell'.

Pré-requis conseillés

Système 1, programmation impérative

Contenu

Les systèmes d’exploitations sont des logiciels critiques et spéciaux qui font fonctionner les ordinateurs: ils gèrent le matériel et les divers programmes qui s’exécutent en concurrence, exécutent des taches de maintenance et de surveillance, etc. Un ordinateur partagé ne peut pas fonctionner sans système d’exploitation. L’étude des systèmes est un des thèmes fondamentaux en sciences informatiques.

Dans ce cour, nous étudions les mécanismes internes d’un système d’exploitation, principalement de type Unix (linux pour les PC). Nous aborderons les aspects de programmation système (appel de fonctions systèmes bas niveau, gestion des processus, synchronisation et communications entre processus, système de fichiers, etc). Plus précisément, voici la liste des thèmes abordés:

1 Introduction aux systèmes d’exploitation 2 Processus 3 Synchronisation entre Processus 4 Fichiers 5 Système de fichiers sous Unix 6 Les tubes nommés 7 Introduction aux réseaux informatiques 8 Communications entre processus par sockets 9 Gestion de la mémoire 10 Ordonnancement des processus et des threads

Les travaux dirigés sous formes d’exercices corrigés seront proposés, ainsi que des travaux pratiques sur des machines Linux.