La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "L informatique : la mécanique de l abstraction Introduction à la hiérarchie de traduction Des exemples pour mieux comprendre Définitions des différents."— Transcription de la présentation:

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 niveaux d abstraction La raison d être d un modèle de données Conclusion

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

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

4 Quand Monsieur DUPONT exécute un programme ! ?

5 La hiérarchie de traduction Hiérarchie de traduction ?

6 La hiérarchie de traduction Hiérarchie de traduction ? Programme en Pascal, C, C++ JAVA

7 La hiérarchie de traduction Compilateur Hiérarchie de traduction ? Programme en Langage assembleur Programme en Pascal, C, C++ JAVA !!!!...

8 La hiérarchie de traduction Assembleur Compilateur Hiérarchie de traduction ? Programme en Langage machine Programme en Langage assembleur Programme en Pascal, C, C++ JAVA !!!!...

9 La hiérarchie de traduction Assembleur Chargeur en Mémoire Compilateur Hiérarchie de traduction ? Programme en Langage machine Programme en Langage assembleur Programme en Pascal, C, C++ JAVA !!!!...

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

11 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 ?

12 Traduction 1 Assembleur Chargeur en Mémoire Compilateur Hiérarchie de traduction ? { int A=8, B=4, C; C=A+B; } F F F FB Add C,B,A Données

13 Type Mémoire-Mémoire : VAX (3,3) add c,a,b La séquence de code pour C=A+B Mem A B C Mem A B C + + 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

14 Traduction 2 Assembleur Chargeur en Mémoire Compilateur Hiérarchie de traduction ? { int A=8, B=4, C; C=A+B; } F F F FB FB FB03 Load r1,A Add r1,B Store C,r1 Données

15 Type darchitecture : intel 80*86, (2,1) Load r1,A Add r1,B Store C,r1 La séquence de code pour C=A+B 1 2 r1 Mem A B C Mem A B C Avantages : Les données peuvent être obtenues sans chargement préalable. Inconvénients : Les opérandes ne sont pas équilibrées puisque lopérande source est détruite.

16 La philosophie CISC ? Conception du Matériel CISC Conception du Logiciel Machine complexe CISC Complex Instruction Set Computer

17 Traduction 3 Assembleur Chargeur en Mémoire Compilateur Hiérarchie de traduction ? { int A=8, B=4, C; C=A+B; } F F F FB FB FB FB03 Données (0,0) Load r1,A Load r2,B Add r3,r2,r1 Store C,r3

18 Type Registre-registre : PowerPC, MIPS (0,0) Load r1,A Load r2,B Add r3,r2,r1 Store C,r3 La séquence de code pour C=A+B 1 2 r1 r2 r3 Mem A B C Mem A B C Avantages : Codage simple dinstructions de longueur fixe. Inconvénients : Nombre dinstructions plus élevé que les architectures à références mémoire. 4 4

19 La philosophie RISC ? Conception du Matériel RISC Compilateur complexe RISC Reduced Instruction Set Computer Conception du Logiciel

20 BILAN : Conception d une machine ?

21 Conception d une machine ? Conception du Matériel Conception du Logiciel

22 Conception ? du Matériel Conception du Logiciel Principe de labstraction Machines virtuelles

23 Linformatique : la mécanisation de labstraction labstraction implique souvent simplification, le remplacement dune 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 nest pas exacte, elle simplifie nombre de détails (temps pour traverser un circuit). –Nous faisons donc abstraction des détails dont limpact sur la solution à un problème est minimal ou inexistant, créant par là un modèle qui nous permet de nous consacrer à lessence du problème.

24 Matériel La hiérarchie des abstractions dans un ordinateur Vue simplifié en couches hiérarchique Logiciel système Logiciel dapplication utilisateur

25 Exemple de décomposition dun système informatique Logiciels Logiciels dapplicationsystèmes LAteX Tableurs système Compilateurs dexploitation gcc Mémoire Système de contrôleur virtuellegestion de fichierE/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.

26 Hiérarchie des programmes BIOS Système d'exploitation Intégrateur graphique 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.

27 Vue hiérarchique de la machine Dbuf mux1 sp Pc Mux2 +/- MEM mux1Dbuf sp Pc MEM Mux2 +/- 1 Control UNIT ad data ComportementalStructurel Logique Physique E a b S2 S3 S4 S1

28 La hiérarchie des abstractions dans un ordinateur Un ordinateur et ses logiciels présentent une hiérarchie dabstraction appelée des machines virtuelles. NiveauAbstraction 6Programmes applicatifs 5Langage de programmation 4Langage assembleur 3Noyau du système dexploitation 2Langage machine 1Microprogramme 0Logique numérique

29 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 transistors Microprogrammes : séquence d'étapes utilisées pour réaliser les instructions du langage machine Langage machine : constitue dinstructions élémentaires mais suffisantes pour exécuter nimporte quel programme Noyau du système dexploitation : permet dallouer et dordonnancer les ressources dun ordinateur aux différents programmes s'exécutant sur la machine. Langage dassemblage : représentation symbolique des instructions rencontrées au nivaux inférieur. Lassembleur est le traducteur. Les langages de hauts niveau : niveau du programmeur. Le compilateur traduit au niveau inférieur Les applications : collections de programmes qui permettent de résoudre des problèmes spécifiques.

30 Logiciel Matériel Langage dassemblageSystème dexploitation Langage évolué (C, Java …) compilé ou interprété Micro-programmation Liaisons Bus, chemins de données Périphériques Imprimantes, disques, écrans Circuits logiques mémoires registres bascules Unité de commandeUnité centrale UAL additionneurs Mux Portes ET,Nand,NOR Circuits électroniquescircuit intégrés, puces Composants électroniques PhysiqueEffet transistor Machine Virtuelle Bureau de larchi Une autre vue

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

32 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 dexploitation : Le modèle de données dUNIX 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 dun processus sert d'entrée au processus suivant. –Langage C

33 Structures de données Lorsque le modèle de données dun 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

34 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 : cest la structure de données que nous utilisons pour représenter les listes abstraites dans les programmes.

35 Supporter le modèle de données dun langage Programme/définitions de nouvelles structures de données Langage/Modèle de donnes Type de donnes +opérations Machine/Modèle de données Type 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,R1 LAOD Liste

36 Linterface entre logiciel et matériel ? Architecture du Jeu dinstructions Conception du Matériel Conception du Logiciel ISA

37 L architecture du jeu d instructions LISA ou simplement larchitecture dune machine comprend tout ce que les programmeurs doivent savoir pour faire fonctionner correctement un programme en langage machine, en particulier les instructions les dispositifs dE/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.

38 Performances Les performances des machines sont définies par trois facteurs clés : –le nombre dinstructions –le temps de cycles dhorloge –le nombre de cycles dhorloge par instruction. Le compilateur et larchitecture de jeu dinstructions déterminent le nombre dinstructions requises pour un programme donné La mise en œuvre définit le temps de cycle dhorloge, ainsi que le nombre de cycles dhorloge par instruction. Tps UC = NI * CPI * Tps de cycle

39 Larchitecture de jeu dinstructions ? Conception du Matériel Conception du Logiciel Temps de cycle Nombre de cycles par instruction Architecture du Jeu dinstructions Le nombre dinstructions Nombre de cycles par instruction C est ce problème qui motive toute la communauté scientifique

40 Objectif du cours Comprendre les principes de l organisation des ordinateurs.

41 Conclusion : Labstraction 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. Cest par ce principe de labstraction que les concepteurs de logiciel viennent à bout de la complexité des systèmes informatiques. Une des interface clé entre les différents niveaux dabstraction est larchitecture de jeu dinstructions: cest linterface entre le matériel et le logiciel de plus bas niveau.


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

Présentations similaires


Annonces Google