- 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 ;