Logiciel de Base

De Ensiwiki
Aller à : navigation, rechercher
AttentionCette page est maintenue uniquement par les enseignants. Afin de ne pas perturber le déroulement des cours, elle n'a pas vocation à être modifiée par les élèves. Mais si vous avez des modifications à proposer, merci d'en discuter ou d'envoyer un e-mail aux auteurs de la page (cf. historique)
AttentionCe cours n'est plus au programme, mais l'essentiel de son contenu est maintenant dans le cours de Conception et Exploitation des Processeurs (CEP) en filière étudiante. Pour les apprentis, la page du cours est Logiciel de Base Apprentissage.


Laptop.png  Première Année  CDROM.png  Informatique 

Convocation à l'examen de TP

L'examen de TP de Logiciel de Base aura lieu le lundi 9 mai. Les élèves doivent consulter le planning détaillé pour savoir dans quelle salle et à quelle heure ils sont convoqués.

Introduction

Bienvenue sur la page du cours de Logiciel de Base de première année. Le but de cet enseignement est de fournir à tout futur ingénieur Ensimag une compréhension générale des mécanismes bas-niveau (dans le sens « proches de la machine ») mis en œuvre dans la plupart des systèmes actuels.

Plus précisément, on étudiera notamment dans ce cours :

  • comment un compilateur produit du code machine (assembleur) à partir d'un programme écrit dans un langage de haut-niveau (dans notre cas le langage C, qui présente l'avantage d'être beaucoup plus proche de l'assembleur qu'un langage comme Ada par exemple) ;
  • la structure d'une unité d'exécution (processus) en termes de gestion de zone mémoires (code, données statiques, tas, pile) ;
  • les interactions entre un programme et son environnement d'exécution (utilisation d'une bibliothèque de fonctions, conventions de gestion des registres et de la mémoire, etc) ;

Le but de ce cours n'est surtout pas d'apprendre à écrire de gros programmes directement en assembleur, ce qui n'aurait en pratique que peu d'intérêt. Il constitue plutôt une introduction à des notions de base de la programmation système et de l'écriture de compilateurs, qui seront approfondies en 2A.

Ce cours fait intervenir des notions vu dans le cours d'architecture des ordinateurs du premier semestre (registres, accès mémoire, etc) mais il s'agit avant tout d'un cours de logiciel : on y approfondira donc des notions vu en algorithmique, comme les pointeurs par exemple.

Organisation

Forme des enseignements

L'enseignement du Logiciel de Base prend la forme de Cours dispensés en salles de TD et de séances machines encadrées ayant lieu en salles de TP : il faut donc systématiquement consulter le planning pour savoir où se passe la séance hebdomadaire.

Équipe pédagogique

N'hésitez pas à contacter votre enseignant si vous avez des questions.

Groupe 1 (vendredi 14h) : Christophe Rippert

Groupe 2 (lundi 11h15) : Ludovic Jacquin

Groupe 3 (lundi 9h45) : Guy Mazaré

Groupe 4 (jeudi 8h15) : Olivier Muller

Groupe 5 (jeudi 9h45) : Franck Hetroy

Groupe 6 (vendredi 15h30) : Christophe Rippert

Le responsable du cours de Logiciel de Base est Christophe Rippert, à contacter en cas de problème général concernant la matière.

Évaluation

L'évaluation est basée sur :

  • deux TP à réaliser en temps-libre pendant le semestre ;
  • un examen de fin de semestre, qui aura lieu en salle de TP, et nécessitera de répondre à des questions sur papier et d'écrire du code C et assembleur sur machine.

La formule de calcul de la note finale est détaillée dans la brochure de première année.

Supports de cours

On trouve ci-dessous :

  • des notes de cours pour les séances en salle de TD ;
  • le sujet des séances en salles de TP.

Les notes de cours fournies sont volontairement succinctes et ne remplacent absolument pas le fait de venir en classe !

Environnement de travail

Tous les exemples en C ou assembleur fournis doivent fonctionner tels-quels sur telesun (attention : pas sur ensibull qui est basé sur des processeurs Itanium incompatibles avec l'architecture Pentium).

Les élèves possédant un ordinateur portable sont fortement encouragés à l'apporter et à travailler directement dessus. Les exemples et conventions d'exécution vues dans le cours de Logiciel de Base sont compatibles avec les systèmes Unix classiques (Linux, MacOS X, etc). Merci de signaler tout problème de compatibilité au responsable du cours pour qu'il puisse identifier le problème et le corriger.

Si vous utilisez une version récente de Linux, il est possible que le support pour la compilation de programmes C et assembleur en 32 bits ne soit pas installé. Si c'est le cas, vous pouvez consulter la FAQ des BugBusters qui liste les packages à installer.

Les systèmes Windows sont par contre très différents des systèmes Unix et il est probable que la plupart des exemples fournis n'y fonctionnent pas. Le plus simple pour travailler dans un environnement compatible est d'installer EnsiLinux sur son ordinateur portable (par exemple en utilisant VirtualBox au dessus de Windows, pour ne pas changer la configuration de sa machine).

Notes de cours et sujets des TP encadrés

TPs en temps libre

Ces TP peuvent être réalisé en binôme ou monôme (mais le fait d'être seul n'entrainera pas de bonus dans la notation).

La page Erreurs fréquentes en assembleur contient des informations pouvant vous aider à mettre au point vos TP.

Les dates de rendu de TP sont fermes : il n'y aura aucune extension accordée et tout retard sera sanctionné par un malus sur la note. Les sujets des TP vous sont donnés dès le début du semestre afin de vous permettre d'organiser au mieux votre travail dans les différentes matières.

Sujets

La fraude

La fraude est sévèrement sanctionnée à l'Ensimag. La Charte des projets et TP précise ce que vous ne pouvez pas faire pendant les TP : en résumé, nous vous encourageons à discuter de vos problèmes et solutions avec vos camarades, mais il est formellement interdit de copier du code (même une petite fonction simple). En cas de code dupliqué, les enseignants ne chercheront pas à savoir qui a fourni le code et qui l'a copié : toutes les équipes seront sanctionnées.

Pour vous aider dans vos révisions

Archive des examens (avec correction)

Attention : jusqu'en 2010, les examens étaient des écrits sur papier et pas des examens de TP sur machine comme actuellement. Les sujets ci-dessous sont donc donnés à titre d'exercices.

Documentations supplémentaires

On trouve des documents additionnels sur cette page. Noter qu'aucun de ces documents n'est nécessaire pour comprendre les CTD et réussir l'examen.