Systèmes d'exploitation

Ref: 3IF1070

Description

L’objectif de ce cours est de présenter les architectures logicielles et les principaux concepts mis en œuvre dans les systèmes d'exploitation. Un accent particulier sera mis sur les notions de processus et de threads, les mécanismes de gestion du parallélisme, ainsi que sur la gestion de la mémoire dans un contexte multitâches. La programmation Shell dans l'environnement Linux permettra la mise en œuvre de l'ensemble des notions abordées dans ce cours.
À l'issue de ce module, les étudiants seront capables de comprendre le fonctionnement d'un système informatique, de résoudre des problèmes de gestion de processus ou threads concurrents partageant des ressources, de comprendre le fonctionnement de la mémoire, de comprendre le fonctionnement d'un système de fichier, et de manipuler et programmer à l'aide du shell Unix/Linux.

Période(s) du cours

SD9

Prérequis

Aucun

Syllabus

  • 1 Présentation des Systèmes d’exploitation (1h30)
  • 2 Système de fichiers (1h30)
  • 3 - 4 TP Système de fichiers sous UNIX (3h00)
  • 5 Introduction à la programmation Shell (1h30)
  • 6 TD Introduction à la programmation Shell (1h30)
  • 7 Gestion des processus sous UNIX/Shell (1h30)
  • 8 TD Gestion des processus sous UNIX/Shell (1h30)
  • 9 - 10 TP Programmation avancée sous UNIX/Shell (3h00)
  • 11 - 12 Gestion des processus, des threads et synchronisation (3h00)
  • 13 TD - Gestion des processus, des threads et synchronisation (1h30)
  • 14 Organisation de la mémoire (1h30)
  • 15 Gestion mémoire (1h30)
  • 16 TD Gestion mémoire (1h30)

Composition du cours

  • Cours magistraux pour présenter les concepts
  • TD/TP pour mettre en œuvre les concepts

Ressources

Les moyens mis en œuvre pour ce cours combinent cours magistraux, TD et TP favorisant une pratique concrète sur le système d'exploitation Linux à travers la manipulation du Shell.

Résultats de l'apprentissage couverts par le cours

À l'issue de ce module, les étudiants seront capables :

  • Comprendre le fonctionnement d'un système informatique
  • Résoudre des problèmes de gestion de processus ou threads concurrents partageant des ressources
  • Comprendre le fonctionnement de la mémoire
  • Comprendre le fonctionnement d'un système de fichier
  • Manipuler et programmer à l'aide du shell Unix/Linux

Support de cours, bibliographie

  • Silberschatz et al., 2004. Principes des systemes d'exploitation avec Java. Ed. Vuibert (2008)
  • A. Silberschatz, P. Galvin, G. Gagne, Applied Operating System Concepts, John Wiley & Sons, 2002.
  • Alain Cazes et Joëlle Delacroix, Architecture des ordinateurs et des systèmes informatiques, Edition Dunod, 2008.