Introduction 1. En informatique qu’appelle t-on architecture des ordinateurs et système d'exploitation Définitions schématiques : L'architecture est l’étude du fonctionnement des composants interne d’un ordinateur. Elle traite : - du type des informations manipulées et de leur codage, - du dialogue entre composants, - du fonctionnement logique (pas électronique) interne des composants. Le système d'exploitation est un programme qui réalise l'interface entre l'utilisateur et la machine, il permet à celui-ci de soumettre des travaux à la machine sans qu'il en connaisse l'architecture. 2. Structure générale d'un ordinateur monoprocesseur actuel ROM CPU RAM Bus données + adresses + commandes Périphériques E/S • CPU :Central Processing Unit : élément de l’ordinateur qui interprète et exécute les instructions d’un programme. • ROM : Read Only Memory : mémoire morte de laquelle on ne peut que lire. • RAM : Random Access Memory : mémoire vive (lecture et écriture) et volatile (se vide lorsque plus de courant) = suite de cases contenant 8 bits = octet, chaque case à une adresse. • Périphériques : disque dur (E/S), lecteur disquette (E/S), clavier (E), écran (S), souris (E), imprimante (S), lecteur cdrom (E), graveur (S), accès réseau (E/S). • bus : liaison sur laquelle transitent les informations, 1 fil = 1 bit. • Modèle de von Newman : Celui-ci décrit les cinq composants essentiels de se qu’on appellera l’architecture de Von Neumann : (faire un dessin) - l’unité arithmétique et logique (UAL) ; - l’unité de commande ; - la mémoire centrale ; - l’unité d’entrée ; - l’unité de sortie. Caractéristiques : - une machine universelle contrôlée par programme (universelle : contrairement aux autres pas spécialement dédiée aux opérations arithmétiques) ; - instructions et données, sous format binaire, stockées en mémoire (important : inst+données dans la même mémoire) ; - le programme peut modifier ses propres instructions ; ruptures de séquence. • Exemple d'évolution (processeurs Intel) 1971 : 4004 : 108Khz, 0.06 mips, 4 bits, 2 300 transistors 1979 : 8088 : 8Mhz, 0.75 mips, CPU 16 bits, bus 8 bits, 4,77 MHz, 29 000 transistors 1982 : 80286 : 12Mhz, 1.5 mips, 16 bits, 8 MHz, 134 000 transistors 1986 : i386 : jusqu'à 33Mhz, 5 mips, CPU 32 bits, 275 000 transistors (premier mode protégé) 1989 : i486 : 50Mhz, 27 mips, CPU + bus 32 bits, 1.2 millions de transistors 1993 : pentium : 66Mhz, > 100 mips, 3.3 millions de transistors 1997 : pentium II : 200-450 Mhz, 7, 5 millions de transistors. 1999 : pentium III : 450-600 Mhz, 9.5 millions de transistors 3. Chronologie • Première génération (1952-1958) : tubes à vide (pannes fréquentes, difficiles à déceler, demandent bcp de place), et tores de ferrite pour les mémoires. • Deuxième génération (1959-1964) remplacement des tubes par des transistors. • Troisième génération : apparition des circuits intégrés (puces) et des processeurs => éloignement du schéma de von Neumann car processeurs d’E/S pour traitement direct avec la mémoire. • Quatrième génération (fin des années 70) : augmentation du nombres de transistors, réseau, terminaux. 4. Système d'exploitation Démarrage d'une machine : RAM vierge, éxecution du pgm stocké en ROM qui teste la présence de périphériques et charge en RAM le premier secteur du disque dur (ou disquette, ou cdrom). Ce premier secteur contient des instructions que le processeurs exécute en séquence. • Ce premier programme gère la machine car il est responsable de l'endroit où l'on écrit en RAM, sur le disque, de l'endroit où l'on écrit à écran, etc. => ne peut pas être un simple programme utilisateur, mais un programme qui prend en charge les programmes utilisateurs et permet une abstraction des contingences matérielles. Ce premier programme est le système d'exploitation (ex.: Unix ou dérivés, dos, OS, mach) , il gère : - la mémoire : p.e. on peut se promener, à l’aide d’un éditeur, dans un fichier dont la taille dépasse la quantité de RAM (peu réaliste avec les tailles actuelles mais possible). L’utilisateur a l’impression que le fichier a été chargé entièrement du disque dur vers la RAM. En fait le système charge les parties affichées à l’écran, en élimine au fur et à mesure, en recherche au besoin sur le disque, etc. De plus un utilisateur n’a pas a s’occuper de ranger au mieux les fichiers sur un disque, le système se charge retrouver un fichier, de recoller les morceaux si celui-ci a du être découper pour occuper des bouts de place libre ; - les programmes (si multi-tâche) : généralement une machine contient peu de processeur (le plus souvent un seul) et pourtant plusieurs programmes ont l’air de s’exécuter en même temps -> allocation de petites tranches de temps à chacun d’eux ; - les entrées/sorties : un programmeur en C affiche à l’écran par printf, lit au clavier par scanf, sauve son fichier, etc. et ce quelque soit la machine -> le système rend les particularités de l’écran (codes des touches), du clavier (taille, résolution), du disque dur, etc. transparente au programmeur ; - le réseau : ftp, telnet ; - les utilisateurs (si multi-utilisateurs) : mots de passe, droit d’accès aux fichiers, super utilisateur. Bien que l'on puisse utiliser plusieurs SE sur une même machine, On comprend aisément qu'un seul SE peut être actif sur une machine en fonctionnement et que celui-ci doit être choisi au démarrage de la machine. 5. Langage l'activité d'une machine est rythmée par le CPU qui exécute le cycle suivant : chercher une instruction en RAM, l'exécuter, chercher l'instruction suivante en RAM, etc. une instruction est une suite de bits contenant le code de l'opération (addition, soustraction, recherche d'un mot en mémoire, etc.) et les opérandes. pour éviter de connaître ce langage, on définit des langages de plus haut niveau couches de machines virtuelles. Machine virtuelle Mn Langage Ln Le passage d’une machine (où d’un langage) à une autre se fait par interprétation ou compilation Machine virtuelle Mn-1 Langage Ln-1 Machine virtuelle M0 Langage machine Interprétation : chaque instruction du langage Ln est traduite en la séquence adéquate du langage ln-1 exécutable, donc, par la machine virtuelle Mn-1. Chaque exécution => réinterprétation. Compilation : un programme de la machine Mn, en entier est traduit une fois pour toute en un programme en langage Ln-1 exécutable directement par la machine virtuelle Mn-1. Niveau 5 Langages d’application Pascal, C, Cobol, Basic, Prolog, Caml, Lisp interprétation ou compilation Niveau 4 Langage d’assemblage Instructions assembleur, notion de variables, de piles d’exécution, de routines traduction assembleur Niveau 3 Routines programmées Syst. d’exploitation – fenêtrage interprétation Niveau 2 Langage machine codé en binaire Couche machine interprétation Niveau 1 Couche microprogrammée Langage du microprocesseur interne