Architecture and performance of computer systems

linfo2241  2024-2025  Louvain-la-Neuve

Architecture and performance of computer systems
6.00 crédits
30.0 h + 30.0 h
Q1
Enseignants
Thèmes abordés
  • Organisation des systèmes d'exploitation
  • Architecture d'un processeur moderne
  • Parallélisme des instructions et des données
  • Gestion des périphériques par le système d'exploitation
  • Gestion des dispositifs de stockage par le système d'exploitation
  • Virtualisation
  • Évaluation et amélioration des performances de systèmes informatiques
Acquis
d'apprentissage

A la fin de cette unité d’enseignement, l’étudiant est capable de :

1
Eu égard au référentiel AA du programme « Master ingénieur civil en informatique », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • INFO1.1-3
  • INFO2.4-5
  • INFO5.2-5
  • INFO6.1, INFO6.3
Eu égard au référentiel AA du programme « Master [120] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • SINF1.1-3
  • SINF2.4-5
  • SINF5.2-5
  • SINF6.1, SINF6.3
Eu égard au référentiel AA du programme « Master [60] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • 1SINF1.M1 1SINF1.M2
  • 1SINF2.4-5
  • 1SINF5.2-5
  • 1SINF6.1, 1SINF6.3
Les étudiants ayant suivi avec fruit ce cours seront capables de :
  • comparer différentes réalisations pour les systèmes d'exploitation et mettre en avant les avantages et inconvénients de ces réalisations
  • expliquer les interactions entre le système d'exploitation et le matériel (stockage, réseau, virtualisation)
  • évaluer les performances d'un système informatique
  • identifier les facteurs qui limitent les performances d'un système informatique
 
Contenu
Le cours apprendra à l'étudiant à évaluer les performances d'un système informatique en faisant des mesures, en mettant en place des simulations et/ou en modélisant mathématiquement un système. Pour ce faire, l'étudiant apprendra et mettra en pratique les techniques suivantes :
  • concepts généraux sur la mesure de performance
  • les métriques de performance
  • la caractérisation des charges de travail
  • la visualisation et le résumé des données
  • les moniteurs et le profilage d'un logiciel et du système d'exploitation
  • une introduction à la théorie des files d'attentes*
  • ...
Le cours approfondira les connaissances sur l'architecture des systèmes informatiques développées dans les précédents cours pour comprendre les observations faites avec les techniques susmentionnées et écrire des programmes plus efficaces :
  • le fonctionnement du CPU
  • des caches et de la mémoire virtuelle
  • le parallélisme des instructions et des données
  • le fonctionnement des périphériques et des drivers
  • les systèmes de fichiers et périphériques de stockage
  • la virtualisation
  • ...
Cette unité d’enseignement aborde des questions liées au développement durable et à la transition à travers des modules de cours dédiés à des thématiques telles que :
  • l'efficacité énergétique des programmes
  • l'énergie grise des systèmes informatique
  • ...
Le cours est également un cours d'intégration des connaissances en informatique. Il amènera l'étudiant à mélanger les concepts vu précédemment en réseaux, systèmes, programmation, électroniques et mathématiques pour raisonner autour d'un système complet et intégré.
*Cette thématique pourrait être supprimée ou remplacée par un sujet pertinent en fonction de l'avancement du cours et l'intérêt des étudiants.
Méthodes d'enseignement
Le cours consiste en une série de leçons, d'exercices d'accompagnement, et un projet en plusieurs phases, parfois seules et parfois en groupe. Certaines séances de répétitions sont consacrées au lancement du projet. La participation est vivement conseillée à toutes les activités, et particulièrement à ces séances de lancement pour éviter de perdre du temps sur l'installation d'un environnement de programmation adapté aux phases du projet.
Le cours propose diverses activités ludiques tels des wooclaps, des quizz, des compétitions ou encore l'acquisition de badges afin de stimuler l'apprentissage.
    Modes d'évaluation
    des acquis des étudiants
    Mode d'évaluation pour la session de janvier:
    • Projet (50% de la note finale)
    • Participation (5% de la note finale)
    • Examen (45% de la note finale)
    Le projet se fera en plusieurs phases qui contribueront à la note finale du projet.
    La côte de participation ne peut pas être récupérée en cas d'échec à la session de janvier et sera gardée pour la session d'août.
    Si l'étudiant·e n'obtient pas au moins 50% du total des points totaux du cours à la session de janvier, il/elle peut répéter uniquement la partie (ou les parties) échouée (examen et/ou l'ensemble du projet) à la session d'août. Cependant, dans ce cas, le projet doit être réalisé seul et un nouveau sujet peut être assigné. Le projet ne sera pas plus facile ou simplifié en août pour autant. L'ensemble du projet devra être réalisé à nouveau, même si l'étudiant n'échoue qu'à certaines phases, mais que la moyenne totale des projets est inférieure à 50%.
    L’usage des IA génératives telles que ChatGPT, Consensus, Perplexity,... est interdit. L’évaluation continue comporte des travaux/devoirs, qui donneront lieu à une note globale unique, communiquée à la fin du dernier travail/devoir. Le non-respect des consignes méthodologiques définies sur moodle, notamment en matière d’utilisation de ressources en ligne ou de collaboration entre étudiant.es, pour tout travail/devoir entraînera une note globale de 0 pour les projets et/ou la participation.
    Autres infos
    Connaissances de base:
    • concepts de base de l'architecture des ordinateurs et des systèmes d'exploitation (LINFO1252)
    • réseaux informatiques (organisation et protocoles) (LINGI1341)
    Il n'est pas souhaitable de passer ces cours en même temps.
    Les étudiants sont invités à passer le test de prérequis sur le moodle du cours (https://moodle.uclouvain.be/course/view.php?id=8590, l'étudiant peut s'inscrire sur moodle uniquement pour passer le test).
    Ressources
    en ligne
    Les supports du cours seront donnés via Moodle. Le cours propose des tests, quizz et jeux interactifs pour tester les connaissances de l'étudiant et aider à la révision sur Moodle également. Certains exercices et la soumission d'une partie des différentes phases du projet pourrait se faire sur la plateforme INGInious. De façon générale, la plateforme INGInious est toujours intégrée à Moodle dans ce cours.
    Les supports de cours listés ci-dessous sont optionnels et uniquement destinés à un approfondissement des connaissances. Les techniques apprisent lors des activités d'apprentissage, les supports de cours, d'exercices et autres ressources fournies via Moodle ainsi que les communications orales de l'équipe d'enseignement constituent la matière d'examen.
    Support de cours
    • R. Jain, "The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling," Wiley- Interscience, New York, NY, April 1991, ISBN:0471503361.
    • D. Patterson, J. Hennessy, "Computer Organization and Design: The Hardware/Software Interface" - 6th edition - 978-0128201091 (older editions are fine too)
    • D. Patterson, J. Hennessy, "Computer Architecture A Quantitative Approach", Tenth Edition - ISBN 978-1-118-06333-0 (older editions are fine too)
    Faculté ou entité
    en charge


    Programmes / formations proposant cette unité d'enseignement (UE)

    Intitulé du programme
    Sigle
    Crédits
    Prérequis
    Acquis
    d'apprentissage
    Master [120] : ingénieur civil en informatique

    Master [120] en sciences informatiques

    Master [60] en sciences informatiques

    Master [120] : ingénieur civil en science des données

    Master [120] en science des données, orientation technologies de l'information