wiki:WikiStart

Version 7 (modified by franck, 6 years ago) (diff)

--

Architecture Logicielle et Matérielle des Ordinateurs v2 (ALMO2)

Planning

  • This module will open in september, 2020.

Module purposes

  • The purpose of this module is to explain in detail how it is possible to have several programs running independently on a multicore computer.
  • The module introduces progressively:
    • the main hardware components;
    • and the corresponding operating system services.
  • The studied hardware architecture is simulated by using a cycle-and-bit-accurate model, able to execute the software from the true beginning (full system emulation).
  • Il y a un TP par semaine :
    • Le premier code exécuté est un simple programme en assembleur affichant "Hello World !" sur un terminal sans aucun système d'exploitation.
    • Le dernier code exécuté est constitué de deux programmes indépendants s'exécutant chacun dans leur espace de mémoire virtuelle au-dessus d'un système d'exploitation POSIX like.
  • Le module doit permettre de répondre aux questions suivantes (liste non exhaustive) :
    • Comment démarre une machine ?
    • Quel est le rôle d'un système d'exploitation et quels services propose-t-il ?
    • Qu'est-ce qu'un cache de mémoire ?
    • Qu'est-ce qu'un contrôleur de périphérique, et comment l'utiliser ?
    • Qu'est-ce qu'un pilote de périphérique ?
    • Comment exécuter plusieurs programmes sur un seul processeur ?
    • Comment plusieurs processeurs peuvent-ils se partager le même espace d'adressage ?
    • Pourquoi chaque programme doit avoir un espace d'adressage propre et comment ?
    • Lorsqu'on frappe une touche du clavier, comment le caractère s'affiche-t-il à l'écran ?

Prérequis

  • Une bonne connaissance du langage C est nécessaire puisque le module propose d'écrire un système d'exploitation depuis le début.
  • Une connaissance de l'assembleur MIPS32 est aussi importante, mais les principes de ce langage et les conventions d'usage pour l'écriture des fonctions sont rappelés la première semaine.

Plan du cours

  1. Programmation en assembleur sur une machine minimale
    Le but de cette première séance est de présenter une architecture minimale et comment écrire un premier programme en langage assembleur.

Documents