Systèmes d'exploitation : temps reél

Quadrimestre 5 - Section industrielle

24 heures

Coordinateur : ELV

Enseignant : ELV

Description générale du cours

Le cours présente les notions importantes de la concurrence et et du temps-réel, tels que les sémaphores, variables de condition et moniteurs, ainsi que les algorithmes d'ordonnancement, les tests d'ordonnançabilité et un survol des OS temps-réel.

Matières de base utilisées

L'étudiant devra connaître les notions de base des systèmes d'exploitation vues au cours de Systèmes en 1ère et 2è années, et connaître le langage C.

Objectifs

Assurer aux étudiants une bonne compréhension des fondements théoriques de la concurrence et du temps-réel, ainsi qu'une expérience pratique des outils fournis par la librairie POSIX dans ces deux domaines.

Acquis d'apprentissage

  • Connaître les principes théoriques de l'ordonnancement temps-réel, en termes de deadlines, temps de calcul, périodicité, ordonnancement, test d'ordonnançabilité, algorithmes d'ordonnancement et savoir tester l'ordonnançabilité de systèmes simples
  • Connaître les principes théoriques des systèmes distribués (deadlocks, famine, ...) et des primitives de communications classiques (mutex, sémaphores, variables de condition)
  • Savoir implémenter un système distribué en C sous LINUX à l'aide de la librairie de threads POSIX
  • Savoir implémenter les primitives de communication/synchronisation de base entre threads POSIX (mutex, variables de condition, ...)
  • Savoir implémenter un système temps-réel en C sous LINUX à l'aide de la librairie temps-réel POSIX (affectations de priorités fixes aux threads, verrouillage de la mémoire, ...)
  • Connaître les différences théoriques entre un système d'exploitation classique et un système d'exploitation temps-réel
  • Connaître quelques solutions temps-réel de base pour LINUX, dont les options de préemptibilité du noyau Linux standard, les micro-noyaux dédiés temps-réel, et les patches de temps-réel pour le noyau standard

Plan du cours

Théorie: -Concurrence -Ordonnancement temps-réel -Caractéristiques des OS temps-réel

Pratique: -Exercices de concurrence avec la librairie POSIX 1.c (threads, variables de condition, semaphores, ...) -Exercices sur le temps réel avec les librairies POSIX 1.b et 1.c (threads récurrentes, verrouillage de la mémoire, priorités fixes, ratages de deadlines, ...)

Bibliographie

  • Andrew TANENBAUM. Systèmes d'exploitation. Systèmes centralisés. Suystèmes distribués. Dunod / Prentice Hall, 3ème edition, 1994.
  • David R. Butenhof Programming with POSIX Threads Addison-Wesley Professional, 1997
  • Rajib Mall Real Time Systems Theory and Practice Prentice Hall, 2009