41
L ’informatique : la mécanique de l ’abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents niveaux d ’abstraction La raison d ’être d ’un modèle de données Conclusion

L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Embed Size (px)

Citation preview

Page 1: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

L ’informatique : la mécanique de l ’abstraction

Introduction à la hiérarchie de traduction

Des exemples pour mieux comprendre

Définitions des différents niveaux d ’abstraction

La raison d ’être d ’un modèle de données

Conclusion

Page 2: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Objectifs

Nous verrons qu ’un programme écrit dans un langage de haut niveau doit être traduit dans le langage de la machine avant d ’être exécuté.

Nous verrons que la difficulté de concevoir une machine nous oblige à décomposer le problème en sous problèmes.

Nous définirons l ’interface entre la conception du logiciel et du matériel.

Page 3: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Quand D. Dupont était Jeune …et beau :)

?

Page 4: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Quand Monsieur DUPONT exécute un programme !

?

Page 5: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La hiérarchie de traduction

Hiérarchie de traduction

?

Page 6: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La hiérarchie de traduction

Hiérarchie de traduction

? Programme enPascal, C, C++JAVA

Page 7: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La hiérarchie de traduction

Compilateur

Hiérarchie de traduction

?

Programme enLangage assembleur

Programme enPascal, C, C++JAVA !!!!...

Page 8: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La hiérarchie de traduction

Assembleur

Compilateur

Hiérarchie de traduction

?

Programme enLangage machine

Programme enLangage assembleur

Programme enPascal, C, C++JAVA !!!!...

Page 9: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La hiérarchie de traduction

Assembleur

Chargeuren Mémoire

Compilateur

Hiérarchie de traduction

?

Programme enLangage machine

Programme enLangage assembleur

Programme enPascal, C, C++JAVA !!!!...

Page 10: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Des définitions

– Programme : Suite de directives appelées instructions définissant complètement un traitement à faire exécuter par l ’ordinateur.

– Compilateur : Programme traduisant un langage évolué en langage machine.

– Langage assembleur : représentation symbolique des programmes

– Assembleur traduit un fichier contenant des instructions du langage assembleur en un fichier contenant des instructions machine binaires et des données binaires.

– Langage machine est défini par la liste des instructions d ’un ordinateur, et leur représentation sous forme binaire. Il est directement exécutable par l ’ordinateur.

– Chargeur place le langage machine dans la mémoire afin de l  ’exécuter.

Page 11: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Questions

• La traduction est elle unique ?

• Quelles sont les répercutions sur l ’architecture de la machine cible ?

• Quelle est la frontière entre le logiciel et le matériel ?

• Quel est l ’objectif à atteindre ?

Page 12: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Traduction 1

Assembleur

Chargeuren Mémoire

Compilateur

Hiérarchie de traduction

?

{int A=8, B=4, C; C=A+B;}

11011110000 F80001101010101 F810- - F82010000100100 FB00011000001111000

Add C,B,A

Données

Page 13: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Type Mémoire-Mémoire : VAX

(3,3) add c,a,b

La séquence de code pour C=A+B

MemABC

MemABC

++

• Avantages : Le code le plus compact. Ne gaspille pas des registres pour des données secondaires

• Inconvénients : Grande variation de la taille des instructions, grande variation du travail effectué par instruction. Les accès mémoire créent un goulot d’étranglement.

1

1

Page 14: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Traduction 2

Assembleur

Chargeuren Mémoire

Compilateur

Hiérarchie de traduction

?

{int A=8, B=4, C; C=A+B;}

11011110000 F80001101010101 F810- - F82010000100100 FB0001100000111 FB010001111111110001001010 FB03

Load r1,AAdd r1,BStore C,r1

Données

Page 15: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Type d’architecture : intel 80*86, 68000

(2,1)Load r1,AAdd r1,BStore C,r1

La séquence de code pour C=A+B

1

2r1

MemABC

MemABC

++

12

3

3

• Avantages : Les données peuvent être obtenues sans chargement préalable.

• Inconvénients : Les opérandes ne sont pas équilibrées puisque l’opérande source est détruite.

Page 16: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La philosophie CISC

?

Conception du Matériel

CISC

Conception du Logiciel

Machine complexe

CISC Complex Instruction Set Computer

Page 17: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Traduction 3

Assembleur

Chargeuren Mémoire

Compilateur

Hiérarchie de traduction

?

{int A=8, B=4, C; C=A+B;}

11011110000 F80001101010101 F810- - F82010000100100 FB0001100000111 FB0110001001010 FB0210010100000 FB03

Données

(0,0)Load r1,ALoad r2,BAdd r3,r2,r1Store C,r3

Page 18: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Type Registre-registre : PowerPC, MIPS

(0,0)Load r1,ALoad r2,BAdd r3,r2,r1Store C,r3

La séquence de code pour C=A+B

1

2r1r2r3

MemABC

MemABC

++

1

2

3

3

• Avantages : Codage simple d’instructions de longueur fixe.

• Inconvénients : Nombre d’instructions plus élevé que les architectures à références mémoire.

4

4

Page 19: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La philosophie RISC

?

Conception du Matériel

RISC

Compilateur complexe

RISC Reduced Instruction Set Computer

Conception du Logiciel

Page 20: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

BILAN : Conception d ’une machine

?

Page 21: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Conception d ’une machine

?

Conception du Matériel

Conception du Logiciel

Page 22: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Conception

?

Conception du Matériel

Conception du Logiciel

Principe del’abstraction

Machinesvirtuelles

Page 23: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

L’informatique : la mécanisation de l’abstraction

• l’abstraction implique souvent simplification, le remplacement d’une situation complexe et détaillée du monde réel par un modèle compréhensible grâce au quel nous pouvons résoudre un problème.

• Exemple : On peut modéliser un circuit électronique par de la logique. Cette modélisation n’est pas exacte, elle simplifie nombre de détails (temps pour traverser un circuit).– Nous faisons donc abstraction des détails dont l’impact sur la

solution à un problème est minimal ou inexistant, créant par là un modèle qui nous permet de nous consacrer à l’essence du problème.

Page 24: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

MatérielMatériel

La hiérarchie des abstractions dans un ordinateur

• Vue simplifié en couches hiérarchique

Logiciel système

Logiciel d’application

utilisateur

Page 25: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Exemple de décomposition d’un système informatique

Logiciels

Logiciels Logicielsd’application systèmes

LAteX Tableurssystème Compilateurs

d’exploitation

gcc

Mémoire Système de contrôleurvirtuelle gestion de fichier E/S

• Le logiciel ne se réduit pas à des couches monolithiques mais il est composé de nombreux programmes qui se battissent les uns sur les autres.

• Les programmes applicatifs sont destinés aux programmeurs. Les programmes systèmes sont des fournisseurs de services couramment utilisés.

Page 26: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Hiérarchie des programmes

BIOS

Systèmed'exploitation

Intégrateurgraphique

Applications

Le bios est un programme pré-enregistré par le constructeur. Il est automatiquement exécuté. Il initialise la configuration, (boot) et contrôle les connexions

C'est le premier programme que l'ordinateur charge en mémoire. Il est composé d'un ensemble de fichiers qui servent d'intermédiaire entre l'utilisateur et la machine. Il gère les organes de l'ordinateur et les fichiers.

Ils constituent une couche intermédiaire entre le système d'exploitation et les applications. Ils affichent un environnement graphique convivial qui simplifie l'utilisation de l'appareil

Ce sont les programmes ou progiciels utilisés pour réaliser des travaux bureautiques ou autres.

Page 27: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Vue hiérarchique de la machine

Dbuf

mux1

spPc

Mux2+/- M

EM

mux1 Dbuf

sp Pc

ME

M

Mux2

+/-

1

Co

ntr

ol U

NIT

ad

data

Comportemental StructurelLogique

Physique

E

ab

S2S3S4

S1

Page 28: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La hiérarchie des abstractions dans un ordinateur

• Un ordinateur et ses logiciels présentent une hiérarchie d’abstraction appelée des machines virtuelles.

Niveau Abstraction6 Programmes applicatifs5 Langage de programmation4 Langage assembleur3 Noyau du système d’exploitation2 Langage machine1 Microprogramme0 Logique numérique

Page 29: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

La hiérarchie des abstractions dans un ordinateur

Chaque niveau est implanté par une traduction ou une interprétation de ses instructions en utilisant les niveaux inférieurs.

Logique Numérique : est une abstraction des circuits électroniques constitues de portes faites de transistorsMicroprogrammes : séquence d'étapes utilisées pour réaliser les instructions du langage machineLangage machine : constitue d’instructions élémentaires mais suffisantes pour exécuter n’importe quel programmeNoyau du système d’exploitation : permet d’allouer et d’ordonnancer les ressources d’un ordinateur aux différents programmes s'exécutant sur la machine.Langage d’assemblage : représentation symbolique des instructions rencontrées au nivaux inférieur. L’assembleur est le traducteur.Les langages de hauts niveau : niveau du programmeur. Le compilateur traduit au niveau inférieurLes applications : collections de programmes qui permettent de résoudre des problèmes spécifiques.

Page 30: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Log

icie

lL

ogic

iel

Mat

érie

lM

atér

iel

Langage d’assemblage

Système d’exploitation

Langage évolué (C, Java …) compilé ou interprété

Micro-programmation

LiaisonsBus, chemins de données

PériphériquesImprimantes, disques, écrans

Circuits logiques

mémoiresregistresbascules

Unité de commande Unité centraleUALadditionneurs Mux

Portes ET,Nand,NOR

Circuits électroniques circuit intégrés, pucesComposants électroniques

Physique Effet transistor

Mac

hine

Vir

tuel

le

Bureau del’archi

Une autre vue

Page 31: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Trois outils importants pour résoudre des problèmes

• Les modèles de données– les abstractions utilisées pour décrire les problèmes : logique,

graphe

• Les structures de données– Les constructions des langages de programmation utilisées pour

représenter des modèles de données comme des tableaux, les pointeurs qui permettent de construire des structures de données pour représenter des abstraction plus complexes comme les graphes.

• Les algorithmes– Les techniques utilisées pour obtenir des solutions manipulant les

modèles de données ou les structures de données.

Page 32: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Modèle de données

• Il comporte habituellement deux aspects :– les valeurs pouvant être attribuées aux objets : aspect statique.– les opérations sur les données : aspect dynamique.

• Exemple : – liste

• éléments (a1,a2, ..., an)

• opérations : insérer, concaténer.

– Système d’exploitation :• Le modèle de données d’UNIX comprend des concepts tels que les

fichiers, les répertoires et les processus.– Rappel : Les processus sont des exécutions individuelles de programmes.

Ils peuvent être combines par des tubes de communication, où la sortie d’un processus sert d'entrée au processus suivant.

– Langage C

Page 33: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Structures de données

Lorsque le modèle de données d’un langage utilise pour écrire un programme est insuffisant pour représenter les problèmes auxquels nous sommes confrontés, nous devons imaginer de nouveaux modèles conçus à partir de ceux supportés par le langage.

• Les structures de données sont des méthodes pour représenter des abstractions dans le modèle de données du langage que celui-ci ne supporte pas explicitement.

• Le langage LeLisp supporte les arbres et pas PASCAL

Page 34: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Remarque importante

Malgré leur appellation voisine une liste et une liste chaînée sont des concepts très différents.

• Une liste est une abstraction mathématique ou un modèle de données.

• Une liste chaînée est une structures de données : c’est la structure de données que nous utilisons pour représenter les listes abstraites dans les programmes.

Page 35: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Supporter le modèle de données d’un langage

Programme/définitions de nouvellesstructures de données

Langage/Modèle de donnesType de donnes +opérations

Machine/Modèle de donnéesType de donnes +opérations

• Comment des primitives de langage machine classique sont utilisées pour implanter les opérations fournies par un langage ?

Pointeur

LOAD i,R1LAOD .......

Liste

Page 36: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

L’interface entre logiciel et matériel

?

Architecture du Jeu d’instructions

Conception du Matériel

Conception du Logiciel

ISA

Page 37: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

L ’architecture du jeu d ’instructions

• L’ISA ou simplement l’architecture d’une machine comprend tout ce que les programmeurs doivent savoir pour faire fonctionner correctement un programme en langage machine, en particulier les instructions les dispositifs d’E/S.

• Cette interface permet aux concepteurs d'ordinateurs de parler des fonctions indépendamment du matériel qui les réalise.

• Cette abstraction abstraite permet un grand nombre de mises en œuvre avec des coûts et des performances variables pour un même logiciel à exécuter. Un des objectifs de ce cours est de le découvrir.

Page 38: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Performances

• Les performances des machines sont définies par trois facteurs clés :

– le nombre d’instructions– le temps de cycles d’horloge– le nombre de cycles d’horloge par instruction.

• Le compilateur et l’architecture de jeu d’instructions déterminent le nombre d’instructions requises pour un programme donné

• La mise en œuvre définit le temps de cycle d’horloge, ainsi que le nombre de cycles d’horloge par instruction.

Tps UC = NI * CPI * Tps de cycle

Page 39: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

L’architecture de jeu d’instructions

?

Conception du Matériel

Conception du Logiciel

•Temps de cycle•Nombre de cycles par instruction

Architecture du Jeu d’instructions

•Le nombre d’instructions•Nombre de cycles par instruction

C ’est ce problème qui motive toute la communauté scientifique

Page 40: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Objectif du cours

• Comprendre les principes de l ’organisation des ordinateurs.

Page 41: L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents

Conclusion : L’abstraction

• Le Matériel et le Logiciel sont constitues de couches hiérarchisées, chaque couche inférieure dissimulant des détails de la couche immédiatement supérieure. C’est par ce principe de l’abstraction que les concepteurs de logiciel viennent à bout de la complexité des systèmes informatiques.

Une des interface clé entre les différents niveaux d’abstraction est l’architecture de jeu d’instructions: c’est l’interface entre le matériel et le logiciel de plus bas niveau.