Formations en Informatique de Lille
Portail pédagogique
Vous êtes ici : FIL > Portail > Master Info > Machine Learning > ASE

Architecture des système d'exploitation

Responsable

Gilles Grimaud

Intervenants

  • CC et IoT : Gilles Grimaud
  • Génie Logiciel, Groupe 1 : Giuseppe Lipari
  • Génie Logiciel, Groupe 2 : Samuel Hym
  • E-services, Groupe 1 : Clément Ballabriga
  • E-services, Groupe 2 : Florian Vanhems
  • ML et RV : Philippe Marquet

dernière modification : 09/11/2021 à 07:44:01

Architecture des Systèmes d’Exploitation

AcronymASE
BCCSystème d’exploitation (SYS)
Semestre 2
ECTS3
UEs prerequisesPdC, PdS en Licence
ResponsableGilles Grimaud

Objectifs

L’objectif de cette UE est de donner aux étudiants la maitrise des systèmes d’exploitations qui supportent l’exécutions de leurs programmes. A l’issue de ces enseignements l’étudiant doit comprendre l’architecture générale des logiciels qui compose d’un système d’exploitation. Il doit être en mesure de réaliser des pilotes de matériel efficaces et de justifier les performances d’un logiciel au regard du système et du matériel sur lequel il repose. Enfin il doit pouvoir concevoir et contribuer à la réalisation et/ou à la maintenance de piles logicielles complètes.

Programme succinct

L’immense majorité des logiciels ne peuvent prendre vie sans le support d’un système d’exploitation. Puisque l’utilisation de ces systèmes fait partie intégrante de l’expérience professionnelle d’un développeur, la maitrise de leurs fonctionnement est une nécessité pour concevoir des logiciels efficaces et fiables.

Cette UE est composé de deux volets.

Le premier volet porte sur la mise en œuvre d’un système de fichier. Il s’agit de maitriser toutes les étapes qui jalonnent l’exploitation du disque dur (SSD ou mécanique) jusqu’à l’implémentation d’un service d’entrée-sortie asynchrone : les service de lecture et d’écriture dans un fichier. La pile de logiciel qui en résulte illustre bon nombre de paradigmes fondamentaux pour la conception de systèmes d’exploitation (liaison dynamique, interposition, virtualisation, …).

Le second volet porte sur le partage du temps d’exécution. Le microprocesseur est une ressource « comme une autre » d’un système d’exploitation. La gestion de cette ressource, implique la définition et la mise en œuvre de politiques d’ordonnancement qui en assurent le partage équitable. Elle nécessite aussi l’implémentation d’un moyen de préemption (implicite) et la réalisation d’un mécanisme de transfert de flot d’exécution entre les programmes qui se partagent cette ressource.

Compétences

  • maitrise de la notion de politique d’ordonnancement ;
  • maitrise de la notion de partage de ressource ;
  • implémentation de piles de logiciels systèmes ;
  • bonne compréhension des mécanismes systèmes et de leur incidence sur l’exécution des applications.

Modalités d'évaluation

CC+CT


dernière modification : 09/11/2021 à 07:44:01

Progression du cours

Séance TD TP Éléments à rendre Remarque
1 Gestion de contextes : retour à un contexte Première manipulation pratique
Bibliothèque try()/throw()
Readme, Makefile, display_stack.c, try.h, try.c, try_mul.c Le TP est à rendre via GIT avant la prochaine séance de TP
2 Gestion de contextes : création d'un contexte d'exécution -- Changement de contexte Bibliothèque de création et changement de contexte Readme, Makefile, init_ctx(), switch_to() Le TP est à rendre via GIT avant la prochaine séance de TP
3 Gestion de contextes : ordonnancement, ordonnancement sur interruptions Bibliothèque d'ordonnancement Readme, Makefile, create_ctx(), yield(), start_schedule()
4 Gestion de contextes : synchronisation entre tâches Bibliothèque de synchronisation Readme, Makefile, sem.h, sem.c, prodcons.c Les TP ordonnancement et synchronisation sont à rendre via GIT avant la prochaine séance de TP
     

dernière modification : 09/11/2021 à 07:44:01