Logiciel de Base

De Ensiwiki.

Aller à : Navigation, rechercher

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

Sommaire

  • 1 Introduction
  • 2 Organisation
    • 2.1 Forme des enseignements
    • 2.2 Équipe pédagogique
    • 2.3 Évaluation
  • 3 Supports de cours
    • 3.1 Environnement de travail
    • 3.2 Séance 1
  • 4 TPs en temps libre
    • 4.1 TPL1 : pratique du langage C
    • 4.2 TPL2 : pratique de l'assembleur Pentium
    • 4.3 La fraude
  • 5 Pour vous aider dans vos révisions
    • 5.1 Archive des examens (avec correction)
    • 5.2 Documentations supplémentaires

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) : Christophe Rippert

Groupe 3 (lundi 9h45) : Guy Mazaré

Groupe 4 (jeudi 8h15) :

Groupe 5 (jeudi 9h45) : Franck Hetroy

Groupe 6 (vendredi 15h30) : Olivier Muller

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 à é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 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.

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).

Séance 1

Support de la séance en salle de TD.

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.

TPL1 : pratique du langage C

Le sujet est détaillé sur cette page.

TPL2 : pratique de l'assembleur Pentium

Le sujet est détaillé sur cette page.

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, avant 2011 on utilisait en Logiciel de Base une convention de gestion de la pile très différente de celle présentée en classe (i.e. pas d'alignement de %esp sur un multiple de 16, utilisation des instructions push et pop, etc). Les corrections des épreuves ci-dessous correspondent à cet ancien mode de gestion et ne sont donc plus valables.

  • Examen de juin 2010
  • Examen de mai 2010
  • Examen de mai 2009

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.

Récupérée de « http://ensiwiki.ensimag.fr/index.php/Logiciel_de_Base »
Catégories : Assembleur | Première Année | Informatique | Logiciel de Base
Powered by MediaWiki
Attribution-Share Alike 3.0 Unported
  • Dernière modification de cette page le 23 août 2010 à 09:59.
  • Cette page a été consultée 12 929 fois.
  • Contenu disponible sous Attribution-Share Alike 3.0 Unported.
  • Politique de confidentialité
  • À propos de Ensiwiki
  • Avertissements
 
Affichages
  • Page
  • Discussion
  • Voir le texte source
  • Historique
Outils personnels
  •  
  • Connexion
Actualité
  • Stage Unix de rentrée
  • Soutenances de PFE
  • Projet système
  • Projets spécialité
  • Lexique franco-anglais
  • Projet C
  • Plannings des stages
Navigation
Ensimag
  • Accueil
  • FAQ
  • Mode d'emploi
  • Droit d'auteur
  • Modifications récentes
  • Page au hasard
Boîte à outils
  • Pages liées
  • Suivi des pages liées
  • Pages spéciales
  • Version imprimable
  • Lien historique
  • Principaux contributeurs