Informatique Mathématiques Supérieures Introduction à l’architecture des ordinateurs Introduction à l’architecture des ordinateurs Ordinateur ? Aujourd’hui, les ordinateurs font partie de notre quotidien et ils sont présents sous plusieurs formes, par exemple : Les ordinateurs de bureau ; Introduction à l’architecture des ordinateurs Ordinateur ? Aujourd’hui, les ordinateurs font partie de notre quotidien et ils sont présents sous plusieurs formes, par exemple : Les ordinateurs de bureau ; Les tablettes numériques ; Introduction à l’architecture des ordinateurs Ordinateur ? Aujourd’hui, les ordinateurs font partie de notre quotidien et ils sont présents sous plusieurs formes, par exemple : Les ordinateurs de bureau ; Les tablettes numériques ; Les smartphones. Introduction à l’architecture des ordinateurs Ordinateur ? Aujourd’hui, les ordinateurs font partie de notre quotidien et ils sont présents sous plusieurs formes, par exemple : Les ordinateurs de bureau ; Les tablettes numériques ; Les smartphones. Introduction à l’architecture des ordinateurs Ordinateur ? Aujourd’hui, les ordinateurs font partie de notre quotidien et ils sont présents sous plusieurs formes, par exemple : Les ordinateurs de bureau ; Les tablettes numériques ; Les smartphones. Question. Quels sont leurs points communs ? Introduction à l’architecture des ordinateurs Ordinateur ? Vu de l’extérieur, on peut observer que nos exemples ont en communs : Une source d’énergie ; Introduction à l’architecture des ordinateurs Ordinateur ? Vu de l’extérieur, on peut observer que nos exemples ont en communs : Une source d’énergie ; La réception d’information de la part de l’utilisateur ; Introduction à l’architecture des ordinateurs Ordinateur ? Vu de l’extérieur, on peut observer que nos exemples ont en communs : Une source d’énergie ; La réception d’information de la part de l’utilisateur ; L’émission d’information vers l’utilisateur. Introduction à l’architecture des ordinateurs Ordinateur ? Vu de l’extérieur, on peut observer que nos exemples ont en communs : Une source d’énergie ; La réception d’information de la part de l’utilisateur ; L’émission d’information vers l’utilisateur. Introduction à l’architecture des ordinateurs Ordinateur ? Vu de l’extérieur, on peut observer que nos exemples ont en communs : Une source d’énergie ; La réception d’information de la part de l’utilisateur ; L’émission d’information vers l’utilisateur. Question. Est-ce que cela définit un ordinateur ? Introduction à l’architecture des ordinateurs Non ! Introduction à l’architecture des ordinateurs Non ! Contre-exemple : Une voiture ! Introduction à l’architecture des ordinateurs Non ! Contre-exemple : Une voiture ! Une voiture partage les points cités précédemment. Question. Mais alors qu’y a-t-il de différent ? Introduction à l’architecture des ordinateurs Non ! Contre-exemple : Une voiture ! Une voiture partage les points cités précédemment. Question. Mais alors qu’y a-t-il de différent ? Réponse : Une voiture reçoit et envoie des données mais ne les traite pas... Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Il s’agit d’une machine permettant de traiter automatiquement l’information(Informatique = Information + Automatique). Il peut agir sur celle-ci de plusieurs façons, voici les différentes actions possibles par un ordinateur sur l’information : Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Il s’agit d’une machine permettant de traiter automatiquement l’information(Informatique = Information + Automatique). Il peut agir sur celle-ci de plusieurs façons, voici les différentes actions possibles par un ordinateur sur l’information : L’acquisition de l’information. L’ordinateur est capable d’acquérir de l’information en provenance des différents périphériques d’entrées comme par exemple, le clavier, la souris, la webcam, ... Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Il s’agit d’une machine permettant de traiter automatiquement l’information(Informatique = Information + Automatique). Il peut agir sur celle-ci de plusieurs façons, voici les différentes actions possibles par un ordinateur sur l’information : L’acquisition de l’information. L’ordinateur est capable d’acquérir de l’information en provenance des différents périphériques d’entrées comme par exemple, le clavier, la souris, la webcam, ... Le stockage de l’information. La mémoire d’un ordinateur permet de stocker l’information. Il y a en a essentiellement deux types : la mémoire de masse et la mémoire morte (ex : disque dur, clé USB, ...) pour le stockage définitif ; la mémoire vive - RAM - et les registres pour le stockage temporaire. Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Il s’agit d’une machine permettant de traiter automatiquement l’information(Informatique = Information + Automatique). Il peut agir sur celle-ci de plusieurs façons, voici les différentes actions possibles par un ordinateur sur l’information : L’acquisition de l’information. L’ordinateur est capable d’acquérir de l’information en provenance des différents périphériques d’entrées comme par exemple, le clavier, la souris, la webcam, ... Le stockage de l’information. La mémoire d’un ordinateur permet de stocker l’information. Il y a en a essentiellement deux types : la mémoire de masse et la mémoire morte (ex : disque dur, clé USB, ...) pour le stockage définitif ; la mémoire vive - RAM - et les registres pour le stockage temporaire. La transformation de l’information. Le processeur permet de transformer l’information. Il se décompose essentiellement en deux parties : l’unité de commande pour la lecture et le décodage ; l’unité de traitement pour l’exécution des instructions. Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Il s’agit d’une machine permettant de traiter automatiquement l’information(Informatique = Information + Automatique). Il peut agir sur celle-ci de plusieurs façons, voici les différentes actions possibles par un ordinateur sur l’information : L’acquisition de l’information. L’ordinateur est capable d’acquérir de l’information en provenance des différents périphériques d’entrées comme par exemple, le clavier, la souris, la webcam, ... Le stockage de l’information. La mémoire d’un ordinateur permet de stocker l’information. Il y a en a essentiellement deux types : la mémoire de masse et la mémoire morte (ex : disque dur, clé USB, ...) pour le stockage définitif ; la mémoire vive - RAM - et les registres pour le stockage temporaire. La transformation de l’information. Le processeur permet de transformer l’information. Il se décompose essentiellement en deux parties : l’unité de commande pour la lecture et le décodage ; l’unité de traitement pour l’exécution des instructions. La restitution de l’information. L’ordinateur restitue l’information à l’utilisateur grâce aux périphériques de sorties ; par exemple, l’écran, l’imprimante, ... Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Il s’agit d’une machine permettant de traiter automatiquement l’information(Informatique = Information + Automatique). Il peut agir sur celle-ci de plusieurs façons, voici les différentes actions possibles par un ordinateur sur l’information : L’acquisition de l’information. L’ordinateur est capable d’acquérir de l’information en provenance des différents périphériques d’entrées comme par exemple, le clavier, la souris, la webcam, ... Le stockage de l’information. La mémoire d’un ordinateur permet de stocker l’information. Il y a en a essentiellement deux types : la mémoire de masse et la mémoire morte (ex : disque dur, clé USB, ...) pour le stockage définitif ; la mémoire vive - RAM - et les registres pour le stockage temporaire. La transformation de l’information. Le processeur permet de transformer l’information. Il se décompose essentiellement en deux parties : l’unité de commande pour la lecture et le décodage ; l’unité de traitement pour l’exécution des instructions. La restitution de l’information. L’ordinateur restitue l’information à l’utilisateur grâce aux périphériques de sorties ; par exemple, l’écran, l’imprimante, ... Introduction à l’architecture des ordinateurs L’ordinateur Alors qu’est-ce qu’un ordinateur ? Il s’agit d’une machine permettant de traiter automatiquement l’information(Informatique = Information + Automatique). Il peut agir sur celle-ci de plusieurs façons, voici les différentes actions possibles par un ordinateur sur l’information : L’acquisition de l’information. L’ordinateur est capable d’acquérir de l’information en provenance des différents périphériques d’entrées comme par exemple, le clavier, la souris, la webcam, ... Le stockage de l’information. La mémoire d’un ordinateur permet de stocker l’information. Il y a en a essentiellement deux types : la mémoire de masse et la mémoire morte (ex : disque dur, clé USB, ...) pour le stockage définitif ; la mémoire vive - RAM - et les registres pour le stockage temporaire. La transformation de l’information. Le processeur permet de transformer l’information. Il se décompose essentiellement en deux parties : l’unité de commande pour la lecture et le décodage ; l’unité de traitement pour l’exécution des instructions. La restitution de l’information. L’ordinateur restitue l’information à l’utilisateur grâce aux périphériques de sorties ; par exemple, l’écran, l’imprimante, ... Remarque : Il existe des périphériques pouvant remplir plusieurs fonctions d’entrées et de sorties ; les écrans tactiles par exemple. Introduction à l’architecture des ordinateurs Théorie et Histoire En 1937, soit environ une décennie avant la conception des premiers ordinateurs, Alan Turing, un mathématicien britannique, définit de façon théorique la machine suivante, désormais appelé machine de Turing : Introduction à l’architecture des ordinateurs Théorie et Histoire En 1937, soit environ une décennie avant la conception des premiers ordinateurs, Alan Turing, un mathématicien britannique, définit de façon théorique la machine suivante, désormais appelé machine de Turing : Machine de Turing Une machine de Turing possède un ruban infini sur lequel on a disposé des données. Elle peut lire, traiter, et en écrire d’autres. Introduction à l’architecture des ordinateurs Théorie et Histoire En 1937, soit environ une décennie avant la conception des premiers ordinateurs, Alan Turing, un mathématicien britannique, définit de façon théorique la machine suivante, désormais appelé machine de Turing : Machine de Turing Une machine de Turing possède un ruban infini sur lequel on a disposé des données. Elle peut lire, traiter, et en écrire d’autres. Au bout d’un certain temps, il se peut qu’elle s’arrête, on peut alors lire le résultat du calcul sur le ruban. Introduction à l’architecture des ordinateurs Théorie et Histoire Machine de Turing universelle Alan Turing démontre qu’on peut construire une machine universelle i.e. capable de simuler toutes les autres. Pour l’utiliser, on rentre simplement en entrée la description de la machine à simuler et les données d’entrée de cette machine. Introduction à l’architecture des ordinateurs Théorie et Histoire Machine de Turing universelle Alan Turing démontre qu’on peut construire une machine universelle i.e. capable de simuler toutes les autres. Pour l’utiliser, on rentre simplement en entrée la description de la machine à simuler et les données d’entrée de cette machine. Et là est l’idée révolutionnaire : La description de la machine (qu’on peut traduire comme algorithme ici) est donc considérée comme une donnée ! ! ! Introduction à l’architecture des ordinateurs Définition Définition. gOrdinateur Ordinateur Un ordinateur est la réalisation concrète d’une machine de Turing universelle, c’est-à-dire une machine traitant des informations et capable d’accepter comme donnée d’entrée n’importe quel algorithme et de l’exécuter. Introduction à l’architecture des ordinateurs Définition Définition. gOrdinateur Ordinateur Un ordinateur est la réalisation concrète d’une machine de Turing universelle, c’est-à-dire une machine traitant des informations et capable d’accepter comme donnée d’entrée n’importe quel algorithme et de l’exécuter. Voyons maintenant quel est le modèle architectural qui permet de ”réaliser concrètement” le concept de machine de Turing universelle. Introduction à l’architecture des ordinateurs Schéma : architecture de Von Neuman Malgré la complexité des ordinateurs actuels, le schéma grossier qui régit leur fonctionnement est resté très proche du schéma de l’architecture de Von Neumann : Introduction à l’architecture des ordinateurs Les différents types de mémoire Attention ! Il faut distinguer : le type de l’information traitée ; par exemple un nombre entier, un nombre décimal, une image, une chaı̂ne de caractères, un programme, une vidéo,... Introduction à l’architecture des ordinateurs Les différents types de mémoire Attention ! Il faut distinguer : le type de l’information traitée ; par exemple un nombre entier, un nombre décimal, une image, une chaı̂ne de caractères, un programme, une vidéo,... et la représentation en machine qui n’est autre qu’une succession de bits i.e. de 0 ou de 1 ! Une même succession de bits peut représenter des objets de type différents. Introduction à l’architecture des ordinateurs Les différents types de mémoire Introduction à l’architecture des ordinateurs Les différents types de mémoire • Les registres sont des emplacements mémoires internes au processeur dans lesquels ces derniers exécutent les instructions. Leur nombre varie d’une dizaine à une centaine, et leur capacité dépasse rarement quelques dizaines d’octets (o). Introduction à l’architecture des ordinateurs Les différents types de mémoire • La mémoire cache est une mémoire rapide permettant de réduire les délais d’attente des informations stockées dans la mémoire centrale. Il existe plusieurs niveaux de caches qui se distinguent par leur vitesse d’accès. La capacité d’un cache se compte en kilo-octets (Ko) pour les deux premiers niveaux et en méga-octets (Mo) pour le troisième. Introduction à l’architecture des ordinateurs Les différents types de mémoire • La mémoire centrale contient le code et les données des programmes exécutés par le processeur ; elle se compte actuellement en giga-octets (Go). Introduction à l’architecture des ordinateurs Les différents types de mémoire • La mémoire de masse désigne tous les moyens de stockage pérenne dont on dispose : disque dur, clé USB, DVD, etc... Lors du lancement d’une application, les données essentielles sont copiées dans la mémoire centrale, et les programmes sont conçus pour minimiser les accès à la mémoire de masse, très lente. La mémoire de masse tend de plus en plus à être mesurée en téra-octets (To). Introduction à l’architecture des ordinateurs Les différents types de mémoire • Et pour finir, même si celle-ci n’apparaı̂t pas dans le schéma, un ordinateur possède une mémoire morte ou ROM : c’est une mémoire permanente, elle est non modifiable. Elle contient le firmware (BIOS ou UEFI) qui permet de charger le système d’exploitation. Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; 1 000 = 103 octets forment un kilo-octet (1 ko) 1 024 = 210 octets forment un kibioctet (1 kio) ; Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; 1 000 = 103 octets forment un kilo-octet (1 ko) 1 024 = 210 octets forment un kibioctet (1 kio) ; 1 000 ko = 106 octets forment un méga-octet (1 Mo) 1 024 kio = 220 octets forment un mébi-octet (1 Mio) ; Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; 1 000 = 103 octets forment un kilo-octet (1 ko) 1 024 = 210 octets forment un kibioctet (1 kio) ; 1 000 ko = 106 octets forment un méga-octet (1 Mo) 1 024 kio = 220 octets forment un mébi-octet (1 Mio) ; 1 000 Mo = 109 octets forment un giga-octet (1 Go) 1 024 Mio = 230 octets forment un gibi-octet (1 Gio). Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; 1 000 = 103 octets forment un kilo-octet (1 ko) 1 024 = 210 octets forment un kibioctet (1 kio) ; 1 000 ko = 106 octets forment un méga-octet (1 Mo) 1 024 kio = 220 octets forment un mébi-octet (1 Mio) ; 1 000 Mo = 109 octets forment un giga-octet (1 Go) 1 024 Mio = 230 octets forment un gibi-octet (1 Gio). 1 000 Go = 1012 octets forment un téra-octet (1 To) 1 024 Mio = 240 octets forment un tébi-octet (1 Tio). Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; 1 000 = 103 octets forment un kilo-octet (1 ko) 1 024 = 210 octets forment un kibioctet (1 kio) ; 1 000 ko = 106 octets forment un méga-octet (1 Mo) 1 024 kio = 220 octets forment un mébi-octet (1 Mio) ; 1 000 Mo = 109 octets forment un giga-octet (1 Go) 1 024 Mio = 230 octets forment un gibi-octet (1 Gio). 1 000 Go = 1012 octets forment un téra-octet (1 To) 1 024 Mio = 240 octets forment un tébi-octet (1 Tio). Un byte est la plus petite unité de mémoire à laquelle on peut accéder ; il correspond (dans la majorité des cas) à 8 bits, c’est-à-dire un octet. Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; 1 000 = 103 octets forment un kilo-octet (1 ko) 1 024 = 210 octets forment un kibioctet (1 kio) ; 1 000 ko = 106 octets forment un méga-octet (1 Mo) 1 024 kio = 220 octets forment un mébi-octet (1 Mio) ; 1 000 Mo = 109 octets forment un giga-octet (1 Go) 1 024 Mio = 230 octets forment un gibi-octet (1 Gio). 1 000 Go = 1012 octets forment un téra-octet (1 To) 1 024 Mio = 240 octets forment un tébi-octet (1 Tio). Un emplacement mémoire (d’un byte) est repéré par son adresse, manipulée dans les registres internes des processeurs. Introduction à l’architecture des ordinateurs Quantité d’information Une information est représentée dans l’ordinateur et manipulée par celui-ci sous forme binaire, c’est-à-dire une suite de 0 et de 1 (une suite de bits) 8 bits forment un octet ; 1 000 = 103 octets forment un kilo-octet (1 ko) 1 024 = 210 octets forment un kibioctet (1 kio) ; 1 000 ko = 106 octets forment un méga-octet (1 Mo) 1 024 kio = 220 octets forment un mébi-octet (1 Mio) ; 1 000 Mo = 109 octets forment un giga-octet (1 Go) 1 024 Mio = 230 octets forment un gibi-octet (1 Gio). 1 000 Go = 1012 octets forment un téra-octet (1 To) 1 024 Mio = 240 octets forment un tébi-octet (1 Tio). Un processeur 64 bits utilise des registres de 64 bits : les instructions, les entiers et les adresses sont codés sur 8 octets. Introduction à l’architecture des ordinateurs Fonctionnement du processeur Le rôle du processeur pour l’ordinateur Il est responsable de l’exécution du programme Introduction à l’architecture des ordinateurs Fonctionnement du processeur Le rôle du processeur pour l’ordinateur Il est responsable de l’exécution du programme Il ordonne à la mémoire et aux périphériques Introduction à l’architecture des ordinateurs Fonctionnement du processeur Le rôle du processeur pour l’ordinateur Il est responsable de l’exécution du programme Il ordonne à la mémoire et aux périphériques Les instructions sont reçus sous forme de mots écrits en binaire qui sont stockées dans les registres. L’ensemble de ces instructions constituent le langage machine. Introduction à l’architecture des ordinateurs Fonctionnement du processeur Le rôle du processeur pour l’ordinateur Il est responsable de l’exécution du programme Il ordonne à la mémoire et aux périphériques Les instructions sont reçus sous forme de mots écrits en binaire qui sont stockées dans les registres. L’ensemble de ces instructions constituent le langage machine. Introduction à l’architecture des ordinateurs Fonctionnement du processeur Le rôle du processeur pour l’ordinateur Il est responsable de l’exécution du programme Il ordonne à la mémoire et aux périphériques Les instructions sont reçus sous forme de mots écrits en binaire qui sont stockées dans les registres. L’ensemble de ces instructions constituent le langage machine. Traitement séquentiel des instructions Les instructions sont traitées séquentiellement (i.e l’une après l’autre !) donc le processeur ne peut traiter qu’une tâche à la fois. Introduction à l’architecture des ordinateurs Fonctionnement du processeur Un programme est une suite d’instructions (= mots mémoire écrits en binaire). Pour nous en faciliter la lecture et l’écriture, on représente ces mots par des mnémoniques comme LOAD, ADD etc... Ces mnémoniques constituent le langage assembleur. Introduction à l’architecture des ordinateurs Fonctionnement du processeur Un programme est une suite d’instructions (= mots mémoire écrits en binaire). Pour nous en faciliter la lecture et l’écriture, on représente ces mots par des mnémoniques comme LOAD, ADD etc... Ces mnémoniques constituent le langage assembleur. Exemple Une instruction est codée en binaire sur 16 bits : le code d’opération sur 5 bits et une adresse mémoire sur 11 bits assembleur machine LOAD X 01010 explication charge le contenu de l’adresse X STO X 01110 range le contenu à l’adresse X Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. En particulier, il est dépendant de type du processeur présent dans l’ordinateur : si on change de processeur, il faut réécrire le programme ! C’est rédhibitoire ! Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. En particulier, il est dépendant de type du processeur présent dans l’ordinateur : si on change de processeur, il faut réécrire le programme ! C’est rédhibitoire ! L’invention des langages de programmation va permettre de changer de paradigme en rédigeant un programme en termes de ce que veut faire l’utilisateur : Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. En particulier, il est dépendant de type du processeur présent dans l’ordinateur : si on change de processeur, il faut réécrire le programme ! C’est rédhibitoire ! L’invention des langages de programmation va permettre de changer de paradigme en rédigeant un programme en termes de ce que veut faire l’utilisateur : Le Fortran est le premier langage de haut niveau ayant connu une large diffusion ; il était (et est toujours) destiné au calcul scientifique. Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. En particulier, il est dépendant de type du processeur présent dans l’ordinateur : si on change de processeur, il faut réécrire le programme ! C’est rédhibitoire ! L’invention des langages de programmation va permettre de changer de paradigme en rédigeant un programme en termes de ce que veut faire l’utilisateur : Le Fortran est le premier langage de haut niveau ayant connu une large diffusion ; il était (et est toujours) destiné au calcul scientifique. Pour exécuter un programme écrit en Fortran, on utilise un compilateur, un programme chargé de traduire le code source en langage machine. On dit alors que c’est un langage compilé. Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. En particulier, il est dépendant de type du processeur présent dans l’ordinateur : si on change de processeur, il faut réécrire le programme ! C’est rédhibitoire ! L’invention des langages de programmation va permettre de changer de paradigme en rédigeant un programme en termes de ce que veut faire l’utilisateur : Le Fortran est le premier langage de haut niveau ayant connu une large diffusion ; il était (et est toujours) destiné au calcul scientifique. Pour exécuter un programme écrit en Fortran, on utilise un compilateur, un programme chargé de traduire le code source en langage machine. On dit alors que c’est un langage compilé. Le Python est un langage relativement récent mais très populaire par sa simplicité. C’est le langage que nous allons utiliser cette année. Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. En particulier, il est dépendant de type du processeur présent dans l’ordinateur : si on change de processeur, il faut réécrire le programme ! C’est rédhibitoire ! L’invention des langages de programmation va permettre de changer de paradigme en rédigeant un programme en termes de ce que veut faire l’utilisateur : Le Fortran est le premier langage de haut niveau ayant connu une large diffusion ; il était (et est toujours) destiné au calcul scientifique. Pour exécuter un programme écrit en Fortran, on utilise un compilateur, un programme chargé de traduire le code source en langage machine. On dit alors que c’est un langage compilé. Le Python est un langage relativement récent mais très populaire par sa simplicité. C’est le langage que nous allons utiliser cette année. Il s’agit d’un langage interprété (à une nuance près), il utilise un interprète qui traduit en ”temps réel” le langage en langage machine. Introduction à l’architecture des ordinateurs Langages de programmation Le défaut majeur de la programmation en assembleur : un programme en assembleur est écrit en termes de ce que sait faire la machine. En particulier, il est dépendant de type du processeur présent dans l’ordinateur : si on change de processeur, il faut réécrire le programme ! C’est rédhibitoire ! L’invention des langages de programmation va permettre de changer de paradigme en rédigeant un programme en termes de ce que veut faire l’utilisateur : Le Fortran est le premier langage de haut niveau ayant connu une large diffusion ; il était (et est toujours) destiné au calcul scientifique. Pour exécuter un programme écrit en Fortran, on utilise un compilateur, un programme chargé de traduire le code source en langage machine. On dit alors que c’est un langage compilé. Le Python est un langage relativement récent mais très populaire par sa simplicité. C’est le langage que nous allons utiliser cette année. Il s’agit d’un langage interprété (à une nuance près), il utilise un interprète qui traduit en ”temps réel” le langage en langage machine. Introduction à l’architecture des ordinateurs Traduction en langage machine Pour exécuter un code écrit dans un langage de programmation, il faut posséder un traducteur entre ce dernier et le langage machine. Schématiquement, il en existe de deux types : un compilateur traduit le code de manière définitive pour créer un exécutable ; Introduction à l’architecture des ordinateurs Traduction en langage machine Pour exécuter un code écrit dans un langage de programmation, il faut posséder un traducteur entre ce dernier et le langage machine. Schématiquement, il en existe de deux types : un compilateur traduit le code de manière définitive pour créer un exécutable ; un interprète simule une machine virtuelle dont le langage machine serait le langage de programmation lui-même. Le code est lu, analysé et exécuté instruction par instruction par l’interprète. Introduction à l’architecture des ordinateurs Avantages et inconvénients Avantages et inconvénients L’exécutable créé par le compilateur dépend de la machine sur lequel il a été créé, contrairement à un programme interprété qui est indépendant de la machine (puisque c’est l’interprète qui dépend de la machine). Introduction à l’architecture des ordinateurs Avantages et inconvénients Avantages et inconvénients L’exécutable créé par le compilateur dépend de la machine sur lequel il a été créé, contrairement à un programme interprété qui est indépendant de la machine (puisque c’est l’interprète qui dépend de la machine). Mais un programme compilé est nettement plus rapide qu’un programme interprété : toute la phase d’analyse et de vérification du code source a déjà été faite lors de la phase de compilation. Introduction à l’architecture des ordinateurs Système d’exploitation Problématique L’architecture de Von Neumann ne permet d’exécuter qu’un seul programme à la fois ! Introduction à l’architecture des ordinateurs Système d’exploitation Problématique L’architecture de Von Neumann ne permet d’exécuter qu’un seul programme à la fois ! Or les utilisateurs d’un ordinateur ont souvent besoin de lancer plusieurs programmes simultanément. Introduction à l’architecture des ordinateurs Système d’exploitation Problématique L’architecture de Von Neumann ne permet d’exécuter qu’un seul programme à la fois ! Or les utilisateurs d’un ordinateur ont souvent besoin de lancer plusieurs programmes simultanément. Solution Le système d’exploitation (OS=Operating System) : Le premier programme exécuté lors de la mise en marche est le système d’exploitation (Linux, Mac OS X, Windows pour les ordinateurs ; Android, iOS, Windows phone pour les smartphones) ; il orchestre les autres programmes. Introduction à l’architecture des ordinateurs Fonctionnement d’un OS Interruption matérielle Dispositif du processeur interrompant le programme en cours et donnant la main au système d’exploitation lorsque survient un événement externe ou à une date donnée. Introduction à l’architecture des ordinateurs Fonctionnement d’un OS Interruption matérielle Dispositif du processeur interrompant le programme en cours et donnant la main au système d’exploitation lorsque survient un événement externe ou à une date donnée. L’illusion du multitâche ! Le système d’exploitation : Charge en mémoire vive les applications (qui sont stockées sur la mémoire de masse - un disque dur par ex.) à exécuter (on parle de tâche ou de processus). Introduction à l’architecture des ordinateurs Fonctionnement d’un OS Interruption matérielle Dispositif du processeur interrompant le programme en cours et donnant la main au système d’exploitation lorsque survient un événement externe ou à une date donnée. L’illusion du multitâche ! Le système d’exploitation : Charge en mémoire vive les applications (qui sont stockées sur la mémoire de masse - un disque dur par ex.) à exécuter (on parle de tâche ou de processus). Donne la main à une application. Introduction à l’architecture des ordinateurs Fonctionnement d’un OS Interruption matérielle Dispositif du processeur interrompant le programme en cours et donnant la main au système d’exploitation lorsque survient un événement externe ou à une date donnée. L’illusion du multitâche ! Le système d’exploitation : Charge en mémoire vive les applications (qui sont stockées sur la mémoire de masse - un disque dur par ex.) à exécuter (on parle de tâche ou de processus). Donne la main à une application. Au bout de quelques millisecondes survient une interruption. Introduction à l’architecture des ordinateurs Fonctionnement d’un OS Interruption matérielle Dispositif du processeur interrompant le programme en cours et donnant la main au système d’exploitation lorsque survient un événement externe ou à une date donnée. L’illusion du multitâche ! Le système d’exploitation : Charge en mémoire vive les applications (qui sont stockées sur la mémoire de masse - un disque dur par ex.) à exécuter (on parle de tâche ou de processus). Donne la main à une application. Au bout de quelques millisecondes survient une interruption. Le système reprend la main, traite l’événement, redonne la main à une autre tâche. Introduction à l’architecture des ordinateurs