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

Sif-10531 Cours 1 n 1.Introduction u Qu'est-ce que larchitecture des ordinateurs? u Interaction Logiciel/Matériel n Le matériel u Chapitre 1 de CS et CSA.

Présentations similaires


Présentation au sujet: "Sif-10531 Cours 1 n 1.Introduction u Qu'est-ce que larchitecture des ordinateurs? u Interaction Logiciel/Matériel n Le matériel u Chapitre 1 de CS et CSA."— Transcription de la présentation:

1 sif Cours 1 n 1.Introduction u Qu'est-ce que larchitecture des ordinateurs? u Interaction Logiciel/Matériel n Le matériel u Chapitre 1 de CS et CSA n Introduction au langage C u u

2 sif Qu'est-ce que larchitecture des ordinateurs?

3 sif Qu'est-ce que larchitecture des ordinateurs?

4 sif Qu'est-ce que larchitecture des ordinateurs?

5 sif Qu'est-ce que larchitecture des ordinateurs?

6 sif Qu'est-ce que larchitecture des ordinateurs?

7 sif Qu'est-ce que larchitecture des ordinateurs?

8 sif Qu'est-ce que larchitecture des ordinateurs?

9 sif Qu'est-ce que larchitecture des ordinateurs?

10 sif Qu'est-ce que larchitecture des ordinateurs?

11 sif Qu'est-ce que larchitecture des ordinateurs? Cortex-A9: Pouvant servir dans des appareils qui requièrent peu dénergie comme les IPhone, Ipad etc…

12 sif Qu'est-ce que larchitecture des ordinateurs? Tablette comme la Galaxy Tab 10.1 de Samsung

13 sif Qu'est-ce que larchitecture des ordinateurs? Tablette comme la Galaxy Tab 10.1 de Samsung (CPU: Dual- Core 1Ghz, 16 Go Mémoire Flash, WiFi, Dual Camera)

14 sif Qu'est-ce que larchitecture des ordinateurs? Téléphone intelligent comme le Galaxy S4 mini: features-exynos-5210.htm

15 sif Qu'est-ce que larchitecture des ordinateurs? Téléphone intelligent comme le Nexus 4 (Google):

16 sif Qu'est-ce que larchitecture des ordinateurs? Tablette comme la Nexus 10 (Google):

17 sif Qu'est-ce que larchitecture des ordinateurs? Montre intelligente comme la Galaxy Gear (Samsung): caracteristiques-prix-date-et-fonctionnalites/mmid!i6oxiW6ftQ4o/

18 sif Qu'est-ce que larchitecture des ordinateurs? Système dexploitation Android

19 sif Qu'est-ce que larchitecture des ordinateurs? Système dexploitation Android

20 sif Qu'est-ce que larchitecture des ordinateurs?

21 sif Qu'est-ce que larchitecture des ordinateurs? n Un ordinateur est une machine capable de résoudre des problèmes en appliquant des instructions préalablement définies. n La suite des instructions décrivant la façon dont l ordinateur doit effectuer un certain travail est appelée programme. ou n Un ensemble d unités électroniques qui sous le contrôle d instructions storées dans sa propre unité de mémoire accepte et store de l information, exécute des opérations arithmétiques et logiques et produit les résultats conséquents.

22 sif Qu'est-ce que larchitecture des ordinateurs?

23 sif Qu'est-ce que larchitecture des ordinateurs?

24 sif Qu'est-ce que larchitecture des ordinateurs? n Avec le développement de lINTERNET, la notion darchitecture répartie à fait de plus en plus sa place n Larchitecture des ordinateurs doit donc incorporer le réseau n Larchitecture des ordinateurs est alors un ensemble de composantes matérielles et logicielles coopérants et ce souvent en réseau, pour exécuter des programmes

25 sif Qu'est-ce que larchitecture des ordinateurs?: Cloud computing Voir la page WEB de Wikipédia:

26 sif Interaction Logicielle/Matérielle

27 sif Interaction Logicielle/Matérielle

28 sif Interaction Logicielle/Matérielle

29 sif Logiciel => Langages n L'ensemble des instructions exécutables directement par un ordinateur forme un langage qui permet aux gens de communiquer avec cet ordinateur. C'est ce qu'on appelle le langage machine. n Lorsqu'on conçoit un nouvel ordinateur, il convient de choisir les instructions qui forment le langage machine. Il est donc souhaitable que ces instructions soient les plus simples possibles. n Par contre, ces langages sont alors si primitifs qu'il est extrêmement pénible et fastidieux de les utiliser.

30 sif Comment percevoir la machine? n Cette simple observation a mené,avec les années, à définir l ordinateur comme une « collection structurée d abstractions ». n Dans ce modèle, chaque niveau d abstraction repose sur le niveau précédent. n On arrive donc à concevoir la machine comme étant une « structure organisée » (Structured Computer Organization).

31 sif Les niveaux dabstraction n Chaque nouveau niveau est défini par un nouveau jeu d instructions plus pratique à utiliser, par l humain, que le langage du niveau précédent. n Ces nouvelles instructions forme un langage, par exemple L1, de la même façon que l ensemble des instructions machine forme le langage L0. n N oublions pas que l ordinateur ne peut exécuter que des programmes écrits dans son langage machine, soit L0.

32 sif n On va donc devoir nécessairement « passer » du langage L1 ou Ln au langage L0. n Il y a deux techniques pour réaliser ce passage : u La traduction ou la compilation; u l interprétation. n À quel niveau maintenant doit se situer « l engin » responsable de réaliser le passage d un niveau au précédent? n Réponse, à tous les niveaux!

33 sif n Comment? En imaginant pour chaque niveau un « ordinateur hypothétique » que lon appelle une machine virtuelle. n Ainsi, chaque niveau est également défini par sa machine virtuelle, M0, M1, Mn. On peut écrire des programmes pour les machines virtuelles comme si elles existaient réellement. Pour que la traduction ou l'interprétation reste assez simple il faut que les langages Ln et Ln- 1 ne soient pas trop différents.

34 sif

35 sif n Langage et machine virtuelle sont en relation très étroite. Toute machine a son langage machine formé de l'ensemble des instructions de base qu'elle peut exécuter. On peut donc dire qu'une machine définit un langage. n Mais réciproquement un langage définit une machine et, plus précisément, un langage définit la machine qui peut exécuter tous les programmes écrits en ce langage. n Un ordinateur composé de n couches peut donc être vu comme n machines virtuelles distinctes, chaque machine virtuelle ayant son propre langage. n Ainsi, nous utilisons indifféremment les termes machines virtuelles, couches et niveaux.

36 sif n Les machines contemporaines présentent six niveaux. n Si on résume, on peut dire qu'un ordinateur peut être vu comme une suite de couches, chaque couche englobant toutes les couches précédentes. Une couche représente un certain niveau d'abstraction et comporte divers objets et opérations sur ces objets.

37 sif Langage C

38 sif n L0: Couche logique digitale. u Objets manipulés sont des portes logiques (ET, OU). u Combinaisons de portes (registres, circuits du CPU). u Données manipulées: niveaux logiques 0, 1, tensions 0-5 V. n L1: Couche microarchitecture (microcommande). u Comporte des registres et une unité arithmétique et logique (ALU). u Données manipulées: Signaux de contrôle provenant du microprogramme (unité de contrôle)

39 sif n L2: Couche ISA (Instruction Set Architecture). u Données manipulées: Les instructions machines, codes d instructions en binaire. n L3: Couche OS (couche hybride). u Données manipulées: Instructions interprétées par le OS. u Instructions interprétées directement par le microprogramme.

40 sif n L4: Couche langage d assemblage. u Données manipulées: Forme symbolique d un des langages L2, L3. u Un assembleur traduit le langage assembleur (L4) en codes d instruction. n L5: Couche langage de haut niveau. u Données manipulées: Instructions de haut niveau. u Langages C, C++, JAVA etc,. u Compilateur traduit le langage de haut niveau en langage L3 ou L4. u Interprétation dans certain cas (JAVA)

41 sif COUCHES L5 L4 L2

42 sif Labstraction logicielle est aussi importante : mais noubliez pas la RÉALITÉ n Dans la plupart des cours de programmation lemphase est mise sur labstraction u Types de données abstraits u Notions de pointeur absentes n Les abstractions ont des limites u Principalement lorsque des erreurs (bugs) surviennent u Il faut alors bien comprendre limplémentation matérielle n Bienfaits u Permet de devenir de meilleurs programmeurs F Facilite la corrections des bugs F Facilite le développement de programmes performants u Prépare létudiant à dautres cours F Système dexploitation, Réseau, Architecture réparties, Programmation en temps réel

43 sif RÉALITÉ #1 Les données de type int sont-elles nécessairement entières, et celles float sont-elles réelles ? n Exemples u x 2 0 ? F Float: OUI! F Int: arithmétique signée ??? * > * > ?? u (x + y) + z = x + (y + z)? F Unsigned & Signed Int: OUI! F Float: (1e e20) > e20 + (-1e ) --> ??

44 sif n Nous ne pouvons plus assumer les propriétés habituelles des opérations arithmétiques u A cause des représentations internes des données qui sont finies u Opérations sur les entiers respectent les propriétés de commutativité, associativité, distributivité u Opérations sur les réels doivent respecter un ordre déterminé (précision des résultats) et la valeur des signes

45 sif RÉALITÉ #2 Nous devons avoir une connaissance de lassembleur n Vous naurez certainement pas la chance de coder de grosses applications en assembleur u Les compilateurs modernes sont bien meilleurs et sont beaucoup plus patients que nous n La connaissance de lassembleur est importante pour comprendre lexécution des programmes au niveau de la machine u Comprendre le comportment des programmes lors de bugs u Pour améliorer la performance des programmes u Implémentation de systèmes logiciels intégrés

46 sif RÉALITÉ #3 Gestion de la mémoire n La mémoire nest pas infinie u Elle doit être allouée et gérée u Plusieurs applications sont dominées par leurs besoins de mémoire n Les bugs daccès mémoire sont pernicieux u Les effets sont distants dans le temps et lespace n Les performances daccès à la mémoire ne sont pas uniformes u Les accès cache et mémoire virtuelle affectent grandement la performance des programmes u Ladaptation des programmes aux caractéristiques de la mémoire peut amener une grande amélioration de la vitesse dexécution

47 sif Erreur daccès mémoire (voir le projet ErreurAccesMemoire sur le site ftp du cours) main () { long int a[2]; double d = 3.14; a[2] = ;/*accès fautif ??????????????*/ printf("d = %.15g\n", d); exit(0); }

48 sif n C et C++ ne protègent pas les accès mémoire u Références hors limites dans un tableau u Valeur invalide de pointeurs u Usage abusif des fonctions malloc/free n Peu amener des bugs importants u Leffet dun bug peut se faire sentir ou non dépendant du système et du compilateur u Action à distance F Un objet corrompu nest pas nécessairement relié logiquement à celui accédé F Leffet dun bug peut être observé longtemps après avoir été généré n Comment faire alors pour éviter ces problèmes? u Programmer en Java … en LISP ???? u Comprendre les interactions possibles au niveau de la mémoire u Utiliser des outils permettant la détection des erreurs de références mémoire

49 sif RÉALITÉ #4 La complexité asymptotique nest pas seulement ce qui compte au niveau de la performance n Les facteurs constants sont aussi importants u Nous pouvons facilement améliorer la performance dun programme de lordre de 10:1 avec une codification appropriée u Loptimisation doit être faite à plusieurs niveaux: algorithme, représentations des données, procédures, les boucles n La compréhension de larchitecture favorise loptimisation des performances u Comment les programmes compilent et sexécutent u Comment mesurer la performance des programmes et identifier les goulots détranglement u Comment améliorer la performance sans amputer la modularité du code et la généralité

50 sif RÉALITÉ #5 Les ordinateurs ne font pas quexécuter des programmes n Ils échangent des données u Les I/O sont importantes à la fiabilité des programmes et leur performance n Ils communiquent entre eux par réseaux u Plusieurs aspects matériels sont à lavant plan en présence dun réseau F Opérations concurrentes par des processus autonomes F Compatibilité entre plate-forme

51 sif Exemple dinteraction Logicielle/Matérielle /* begin hello */ #include int main() { printf("hello, world\n"); return 0; } /* end hello */ n Édition du fichier hello.c voir lannexe de CSA, Microsoft Visual C++ Developer Studio, p. 567

52 sif Exemple dinteraction Logicielle/Matérielle

53 sif Exemple dinteraction Logicielle/Matérielle

54 sif Exemple dinteraction Logicielle/Matérielle

55 sif Exemple dinteraction Logicielle/Matérielle

56 sif Exemple dinteraction Logicielle/Matérielle


Télécharger ppt "Sif-10531 Cours 1 n 1.Introduction u Qu'est-ce que larchitecture des ordinateurs? u Interaction Logiciel/Matériel n Le matériel u Chapitre 1 de CS et CSA."

Présentations similaires


Annonces Google