Architecture et Systèmes 1

Présentation

Partie 1 : Conception

La première partie du cours mène à la conception d'un petit processeur très basique afin d'en comprendre les briques de base dans une architecture très élémentaire. En partant des portes logiques de base et de la représentation de l'information au plus bas niveau, nous voyons la conception d'unités de calcul et de mémorisation élémentaires, puis d'une unité de contrôle (câblée ou microprogrammée) modélisée à l'aide d'un automate, menant à la réalisation du petit processeur.

Partie 2 : Programmation Assembleur

Cette partie est une très brève introduction à la programmation en langage d'assemblage d'un processeur industriel, afin de voir un aperçu de la programmation au plus bas niveau d'une mise en œuvre réelle de la partie conception. De plus, cette partie permet d'expliciter certains mécanismes comme le déroulement complet d'un appel de fonction ou comment se traduisent les instructions de contrôles (branchements, boucles) au plus bas niveau.

Partie 3 : Programmation système

Dans cette dernière partie on revient sur certains éléments de base d'un système d'exploitation. La notion de processus est présentée, avec une présentation de la génération des processus et une première introduction au parallélisme via des processus (lourds) parallèles, et des premiers outils de coopération inter processus avec l'aide de sémaphores.

Pré-requis nécessaires

Partie Unix (Environnements informatiques) 1ère année, Programmation C (S3), portes logiques et rudiments de logique booléenne (1ère année)

Compétences visées

Ce cours a pour objectif d'améliorer la compréhension des couches basses (couches matérielle et système d'exploitation) via :

  • une compréhension élémentaire des éléments constitutifs d'un microprocesseur séquentiel simple
  • une brève introduction à un langage d'assemblage (en particulier pour détailler le fonctionnement d'un appel de fonction) et illustrer le contrôle d'un processeur au plus bas niveau de programmation
  • une introduction aux systèmes d'exploitation avec un focus sur les processus (norme POSIX) : génération de processus, caractéristiques de base, coopération inter processus (sémaphores)

Bibliographie

  • Architecture des machines et des systèmes informatiques, Joëlle Delacroix et Alain Cazes, Dunod
  • Développement système sous Linux, Christophe Blaess, Editions Eyrolles
  • Architectures logicielles et matérielles, Paul Amblard & co, Dunod
  • Organisation et architecture de l'ordinateur, William Stallings, Pearson Education France