I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs, les tablettes numériques, les téléphones portables, etc... Portable II fixe supercalculateur tablette smartphone De quoi est constitué un ordinateur? Un composant qui calcule : le processeur. Il effectue des opérations logiques et mathématiques telles que addition, soustraction, multiplication, division, division entière, modulo (reste de la division entière), comparaison etc... (ODG : 109 opérations par seconde) Selon les technologies, les jeux d instructions ne sont pas les mêmes : x86 pour la plupart des ordinateurs, qui permet de nombreuses instructions comme par exemple réaliser une multiplication et une addition en une seule fois ou type RISC avec un jeu d instruction plus réduit. De quoi sauvegarder les résultats : Pour les résultats intermédiaires, on utilise de la mémoire rapide : la mémoire vive (Go), mais aussi de la mémoire cache (Mo) directement dans le processeur (peu de mémoire, mais extrêmement rapide et sans latence ). Cette mémoire est «effacée» lorsque l ordinateur est éteint. Pour les résultats finaux, de la mémoire de masse (disque dur, clé usb, DVD...) (ODG : To) Mémoire vive (RAM : random acces memory) Disque dur (magnétique) 1 Disque dur SSD (solid state driver)
I00 Donner des instructions à l ordinateur : il est nécessaire de pouvoir indiquer à l ordinateur les calculs qu on souhaite le voir effectuer. On utilise des périphériques d entrées, par exemple clavier, souris, plus récemment écran, microphone, webcam...) Recevoir les résultats : mantes...) Il s agit cette fois de périphériques de sortie (écran, haut-parleurs, impri- Calculer quels pixels doivent avoir quels couleurs : Dans les premiers temps, l affichage était calculé par le processeur. Avec les jeux vidéos et plus particulièrement ceux en 3D, la puissance de calcul nécessaire pour l affichage a beaucoup augmenté. L affichage a été confié à un calculateur dédié : la carte graphique (De la mémoire et plusieurs processeurs, jusqu à 1000 processeurs environ et quelques Go de mémoire à l heure actuelle) Coordonner les composants vus précédemment : pour relier les différents composants et leur permettre de communiquer entre eux, on les fixe sur une carte-mère. Apporter de l énergie : Les composants précédents sont des composants électroniques qui nécessitent d être reliés à un générateur, l alimentation. Cette alimentation peut être relié au secteur ou une batterie. Les puissances usuelles pour un ordinateur de bureau sont de l ordre de la centaine de watt ( 50 W pour un modèle très économique et jusqu à plus de 1000 W pour un ordinateur de joueur haut de gamme) Évacuer l énergie apportée : toute l énergie apportée à l ordinateur est dissipée par effet joule et donc provoque un élèvement de température. Les composants ont des températures maximales de fonctionnement et il faut donc évacuer l énergie avec un système de refroidissement. On utilise en général des ventilateurs, mais aussi des systèmes passifs voir du watercooling. ventilateur ventilateur watercooling radiateur Remarques : Page 2/4
La suite de nombres gardée en mémoire n a pas de signification a priori : un mot peut représenter, une instruction à effectuer, un nombre entier, un nombre réel, un son... La signification d un mot dépend de l interprétation qu en fait l utilisateur. L unité de calcul possède une petite mémoire, les registres. Il peut effectuer des calculs sur plusieurs éléments de ces registres et stocker le résultat dans un autre. Il peut aussi accéder à la mémoire pour mettre un nombre dans un registre ou pour envoyer à la mémoire vive le contenu d un registre. Il y a un registre particulier qui contient les instructions à exécuter. Un ordinateur est un tout : rien ne sert d avoir un processeur qui calcule extrêmement rapidement si la mémoire et la carte-mère ne peuvent pas lui communiquer les instructions et les nombres assez rapidement. III Système d exploitation Les ressources de l ordinateur sont limitées : un processeur, quelques disques durs, un écran... Pourtant, on peut exécuter plusieurs programme. Leurs comportements doivent être coordonnés : par exemple, on ne peut pas laisser un programme écrire à un endroit qui est utilisé par un autre programme. Pour gérer tout cela, un programme est chargé en mémoire au lancement de l ordinateur et y reste jusqu à l extinction : le système d exploitation. Ses attributions sont : gérer l exécution simultanée de plusieurs programmes en leur allouant un certain temps d accès au processeur gérer les différents utilisateurs et les autorisations qui leur sont associées gérer les accès à la mémoire vive contrôler les accès aux périphériques et en particulier au disque dur. IV Langage de programmation Pour un ordinateur, les informations sont représentés par des signaux électriques pouvant prendre deux valeurs que l on représente par 0 et 1. Les instructions que l on veut faire exécuter à l ordinateur sont elles-aussi représentée par des 0 ou des 1. Ainsi, si on veut communiquer directement avec un ordinateur, il faudrait écrire quelque chose comme 01101010111110001010...0000001110 On appelle cela le langage machine. Écrire un programme en langage machine est extrêmement complexe en particulier dès que l on souhaite faire des choses subtiles. On utilise donc en général un autre langage, plus facile à comprendre pour l homme, puis un programme traduit la séquence d instruction en langage machine à notre place. On considère en général deux types de langages de programmation : les langages compilés : le programmeur écrit un fichier source, puis utilise un programme appelé compilateur qui crée un fichier exécutable contenant directement du langage machine. Cette étape de compilation peut être longue mais n est effectuée qu une seule fois les langages interprétés : le programmeur écrit un fichier source, puis lance son programme à l aide d un autre programme appelé interpréteur. L interpréteur effectue la traduction en langage machine «à la volée» et il n est donc pas nécessaire de compiler. En pratique, chacune de ces deux méthodes présente des avantages et des inconvénients. Le choix d un langage de programmation dépend essentiellement des contraintes que l on se fixe : le temps de développement est généralement plus long dans le cas d un langage compilé, Page 3/4
un langage compilé s exécute généralement plus vite puisqu il n a pas à réaliser la traduction en langage machine et qu il a pu être optimisé lors de l étape de compilation la portabilité, c est-à-dire : «va-t-on pouvoir facilement exécuter ce programme sous plusieurs plateforme ou faudra-t-il tout ré-écrire? d autres contraintes peuvent intervenir comme la fiabilité du code, la maintenance (changer le code source pour faire évoluer le programme)... Voici deux exemples de programme qui ne font qu afficher bonjour dans une console : 1 # include "stdio.h" 2 # include "stdlib.h" 3 i n t main( i n t argc,char *argv[]){ 4 printf("bonjour"); 5 return 0;} Programme en C (langage compilé ) 1 p r i n t ("Bonjour") Programme en python (langage interprété ) Ce programme est beaucoup plus simple et court. Par contre, si on exécute un programme qui calcule la racine carré pour 10 8 nombres sans prendre de précaution particulière, le programme s exécute environ 75 fois plus rapidement en C (0,5 s) qu en python (37,2 s) 1 # include "stdio.h" 2 # include "stdlib.h" 3 # include "math.h" 4 # include "windows.h" 5 # define N 10000 6 i n t main(void){ 7 LARGE_INTEGER frequency; 8 LARGE_INTEGER start; 9 LARGE_INTEGER end; 10 double interval; 11 double resultat[n]; 12 i n t i,j; 13 QueryPerformanceFrequency(& frequency); 14 QueryPerformanceCounter(&start); 15 for (j=0;j<n;j++){ 16 for (i=0;i<n;i++){ 17 resultat[i]+=sqrt((double) i); 18 } 19 } 20 QueryPerformanceCounter(&end); 21 interval=(double) (end.quadpartstart.quadpart)/frequency. QuadPart ; 22 printf("%f s\n",interval); 23 getchar(); 24 return 0;} Programme en C (langage compilé) et s exécute en 0,5 s, mais ne fonctionne que sous windows (à cause de windows.h). 1 from math import sqrt 2 from time import clock 3 N = 10000 5 debut=clock() 6 resultat=[0]*n 7 for j in range(n): 8 for i in range(n): 9 resultat[i]+=sqrt(i) 11 fin=clock() 12 duree=(fin-debut) 13 p r i n t (duree," s") Programme en python. Ce programme est beaucoup plus simple et court mais mets 32 s à s exécuter. Simulation python et C Exercice : que faut-il retenir de ce chapitre selon vous? Selon moi : Un ordinateur ne se limite pas à un processeur. La mémoire est importante! Un ordinateur est un tout qui doit être homogène. Il y a deux types de langages : compilés ou interprétés Compilés : s exécutent rapidement mais difficiles à programmer Interprétés : plus faciles à programmer mais s exécutent moins vite Page 4/4
Table des matières Lycée Poincaré