l informatique : la mécanique de l abstraction introduction à la hiérarchie de traduction des...
Post on 03-Apr-2015
117 Views
Preview:
TRANSCRIPT
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
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.
Quand D. Dupont était Jeune …et beau :)
?
Quand Monsieur DUPONT exécute un programme !
?
La hiérarchie de traduction
Hiérarchie de traduction
?
La hiérarchie de traduction
Hiérarchie de traduction
? Programme enPascal, C, C++JAVA
La hiérarchie de traduction
Compilateur
Hiérarchie de traduction
?
Programme enLangage assembleur
Programme enPascal, C, C++JAVA !!!!...
La hiérarchie de traduction
Assembleur
Compilateur
Hiérarchie de traduction
?
Programme enLangage machine
Programme enLangage assembleur
Programme enPascal, C, C++JAVA !!!!...
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 !!!!...
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.
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 ?
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
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
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
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.
La philosophie CISC
?
Conception du Matériel
CISC
Conception du Logiciel
Machine complexe
CISC Complex Instruction Set Computer
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
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
La philosophie RISC
?
Conception du Matériel
RISC
Compilateur complexe
RISC Reduced Instruction Set Computer
Conception du Logiciel
BILAN : Conception d ’une machine
?
Conception d ’une machine
?
Conception du Matériel
Conception du Logiciel
Conception
?
Conception du Matériel
Conception du Logiciel
Principe del’abstraction
Machinesvirtuelles
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.
MatérielMatériel
La hiérarchie des abstractions dans un ordinateur
• Vue simplifié en couches hiérarchique
Logiciel système
Logiciel d’application
utilisateur
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.
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.
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
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
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.
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
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.
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
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
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.
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
L’interface entre logiciel et matériel
?
Architecture du Jeu d’instructions
Conception du Matériel
Conception du Logiciel
ISA
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.
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
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
Objectif du cours
• Comprendre les principes de l ’organisation des ordinateurs.
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.
top related