Transcript Historique

Chapitre 1
Historique et évolution des
ordinateurs
L'être humain a longtemps cherché à
améliorer sa façon de calculer et
ce, pour deux raisons :
il est trop lent, et il se trompe
souvent
Dance qui suit, seront relatées les
grandes dates liées à l’invention
des calculateurs.
Djamal Rebaïne
2
Repères historiques
Les premiers registres
Boulier: vers 3500 av. J.C en Chine
- Abaque: première tablette à calculs en
Mésopotamie
Djamal Rebaïne
3
Pas d’amélioration jusqu’au 17ème siècle.
1614: John Napier (Écosse) découvre les
logarithmes: multiplications et la division
transformées en une successions d’additions.
Règle à calcul
Djamal Rebaïne
4
• 1620: mise en œuvre de cette invention au
moyen de la règle à calcul.
Les machines à calculer
1623: machine de Schickard (Allemagne):
fonctionnement mécanique basé sur le
principe de tiges proportionnelles aux log.
des nombres impliqués dans ces opérations.
Djamal Rebaïne
5
• 1643: Pascaline de Pascal (France):
fonctionnement mécanique à système de
roues à ergot. Additions + soustractions et
faisait aussi des reports.
• 1673: amélioration de la Pascaline par
Leibniz (Allemagne). Effectue les quatre
opérations de base + extraction de racines
carrées. Non construite faute de moyens
financiers.
Djamal Rebaïne
6
Machine de Schickard
Djamal Rebaïne
7
Pascaline
Djamal Rebaïne
8
Machines à cartes perforées
• 1801: industrie de textile (France) Jacquard
et Falcon
• 1887: Hollerith (USA) machine à lire des
cartes (CENSUS MACHINE) utilisée dans
le recensement aux USA.
Hollerith et sa trieuse électro-mécanique.
/
Djamal Rebaïne
9
Ordinateur primitif
1830: Charles Babbage – machine à différences- utilise les
principes de report de la Pascaline combinés avec les cartes
perforées de Jacquard.
Machine à différence de Babbage
Djamal Rebaïne
10
• 1834: Charles Babbage- machine
analytique- système de numérotation
décimal; accepte des nombres de 50
chiffres et en résultat, un nombre de 100
chiffres (imprimé, cartes perforées, courbe)
- projet non finalisé.
Cette machine réunissait déjà des fonctions
automatiques essentielles: mémoiredispositifs de calcul - fonction de
commande et d’entrée-sortie
Djamal Rebaïne
11
La machine analytique de
C. Babbage
Djamal Rebaïne
12
• 1930: L'Enigma et les Bombes Composée
d'un clavier, de 26 lampes pour représenter
l'alphabet et généralement de 3 rotors,
l‘Enigma était destinée à l'origine à crypter
des documents d'affaires.
• 1939 ABC par J. ATANASHOFF et
Clifford BERRY. Ce calculateur a été le
premier à utiliser le système binaire et était
capable de résoudre des équations à 29
variables.
Djamal Rebaïne
13
1941 Z3 par K. ZUSE.
Composé de 2600 relais, d'un lecteur de
bandes et d'une console pour l'opérateur,
sa mémoire pouvait contenir 64 nombres
de 22 chiffres exprimés en virgule
flottante. Il réalisait une multiplication en
trois à cinq secondes.
Djamal Rebaïne
14
1943 ASCC ou Harvard MARK 1 par H.
AIKEN. Cette machine, construite en
collaboration avec IBM, utilise un principe
inspiré par les travaux de C. BABBAGE.
Composée de 765 299 éléments, elle pesait
5 tonnes et avait besoin de plusieurs
tonnes de glace par jour pour la refroidir.
Ses performances et sa fiabilité étaient
remarquables mais elle ne pouvait
effectuer aucun saut conditionnel.
Djamal Rebaïne
15
1943 Colossus I Composé de 1 500 lampes
et d'un lecteur de bandes capable de lire
5000 caractères à la seconde. Ce
calculateur électronique anglais a été
conçu pour décoder les messages chiffrés
par la machine de Lorentz allemande qui
était un téléscripteur doté de rotors
(utilisant un principe assez proche de
l‘Enigma).
Djamal Rebaïne
16
Colssus- 1943
Djamal Rebaïne
17
1946 ENIAC, par J. ECKERT et J.
MAUCHLY
(Electronic Numerical Integrator and
Computer)
Commandé par l'armée des États-Unis en
1943 pour effectuer les calculs de
balistique, il remplaçait 200 personnes
chargées auparavant de calculer les tables
de tir. Il occupait 23 m³, pesait 30 tonnes,
coûtait un million de dollars.
Djamal Rebaïne
18
La machine ENIAC pesait 30 tonnes
Djamal Rebaïne
19
La machine ENIAC est disposée en U de 6
mètres de largeur par 12 mètres de longueur.
Djamal Rebaïne
20
1948: IBM SSEC, par Wallace Eckert
(Selective Sequence Electronic Calculator)
Ce calculateur composé de 20 000 relais et
de 12 500 tubes a servi pour le calcul de
tables de positions de la lune, mais a surtout
été une vitrine technologique (il était
d'ailleurs visible par le public) pour IBM.
Djamal Rebaïne
21
1948: Manchester Mark 1 (ou Ferranti
Mark I) Bâtie sur des plans de J.
NEUMANN par une équipe anglaise. Ce
prototype est le premier à disposer d'une
unité de commande interne et à suivre un
programme enregistré. C'est sur cette
machine de 1300 tubes qu'est utilisée pour
la première fois la mémoire à tubes
Williams.
Djamal Rebaïne
22
1949: EDSAC, par Maurice WILKES
(Electronic Delay Storage Automatic
Computer)
Cet ordinateur numérique et électronique
est basé sur l'architecture de J.
NEUMANN. Composé de 3000 tubes et
consommant 30KW, il utilise une mémoire
de type "lignes de retard à mercure". Il
s'agit d'une machine parfaitement
opérationnelle qui a été construite dans un
laboratoire de l'Université de Cambridge
en Angleterre.
Djamal Rebaïne
23
1951: Whirlwind Premier ordinateur "temps
réel "
1955: Premier calculateur transistorisé:
TRADIC
1960: PDP-1 (Programmed Data Processor)
C'est le précurseur des "minis". Vendu pour
$125 000 (une fraction du coût d'un
ordinateur de l'époque) et livré sans
logiciels, il était plutôt ciblé pour les
scientifiques et les ingénieurs.
Djamal Rebaïne
24
1959: IBM 1401: Utilisant des transistors et
des mémoire à tores de ferrite, fourni avec
un générateur d'applications (RPG) destiné
à en faciliter l'utilisation, cet ordinateur a
marqué une étape dans l'ère de la
comptabilité. L'imprimante (1403) associée
était d'une rapidité exceptionnelle (600
lignes par minutes !). IBM avait tablé sur un
millier de ventes... plus de 12 000
exemplaires seront vendus
Djamal Rebaïne
25
1964: IBM System/360: Alors que tous ses
ordinateurs utilisaient des architectures et
logiciels incompatibles entre eux, IBM
décida d'investir plusieurs millions de
dollars et de développer une gamme
entièrement nouvelle : 6 ordinateurs et 44
périphériques, ayant des capacités
différentes mais tous compatibles entre eux.
La technologie utilisée, loin d'être
innovante, était transistors et mémoire à
tores.
Djamal Rebaïne
26
1965: Premier mini-ordinateur diffusé
massivement: PDP-8 de DEC
1973: Micral-N de R2E: C'est le premier
micro-ordinateur du monde, il a été inventé
par A. TRUONG, fondateur de R2E: une
petite société française.
Djamal Rebaïne
27
1973: l'Alto (renommé Xerox Star en 1981)
de XEROX
Ce prototype, pensé pour devenir le
bureau du futur, est un condensé des
idées proposées par les chercheurs réunis
par XEROX au Palo-Alto Research
Center (PARC). Il est le premier à
introduire l'idée de fenêtres et d'icônes
que l'on peut gérer grâce à une souris.
Principalement, en raison de son coût, cet
ordinateur ne connaîtra qu'un succès
d'estime.
Djamal Rebaïne
28
1975: Altair 8800 de ED. ROBERTS (MITS)
Il est considéré par les Américains comme
le premier micro-ordinateur du monde,
bien que ce soit le Micral-N. Cependant,
c'est pour l'Altair que sera le premier
BASIC Microsoft.
1976: CRAY I: Créé par Saymour CRAY,
c'est le premier ordinateur à architecture
vectorielle.
Djamal Rebaïne
29
1978: DEC VAX 11/780 (Virtual Address
eXtension)
Premier modèle de "supermini", cet
ordinateur 32 bits pouvait exécuter des
programmes écrits pour le PDP-11. Il avait
aussi suffisamment de ressources pour
supporter des applications qui étaient
jusqu'ici réservées aux gros mainframes. Il
reste aussi célèbre pour son système
d'exploitation VMS
Djamal Rebaïne
30
1982: Cray X-MP Composé de deux
Cray I mis en parallèle, il est 3 fois
plus puissant que celui-ci.
Djamal Rebaïne
31
1981: IBM-PC (Personnal Computer)
Cet ordinateur, qui n'apporte aucune
idée révolutionnaire, est la réaction du
n°1 mondial face à la microinformatique : Il était fait d'une
accumulation de composants standards
et de logiciels sous-traités
(principalement auprès de Microsoft)
dans le but de minimiser le temps
nécessaire pour sa mise au point.
Djamal Rebaïne
32
1983: Lisa d'APPLE
Steve JOBS, très intéressé par l'Alto
reprendra la plupart des idées de celui-ci
pour le compte d'APPLE, en particulier la
notion d'interface graphique (GUI) et
l'utilisation de la souris. Cependant, ce
micro-ordinateur ne connaîtra pas non plus
de succès commercial.
Djamal Rebaïne
33
1984: Amiga Utilisant un microprocesseur
Motorola 680x0, ce micro-ordinateur reste
parmi les leaders pour ce qui est du
graphisme et de la musique.
1984: Macintosh d'APPLE. Basé sur le projet
LISA, c'est l'ordinateur convivial par
excellence: Son utilisation est très simple
grâce à la souris et à la qualité de ses
graphismes. Il devient au fil des années, et
des différentes versions, l'autre grand
standard (avec le PC d'IBM) du monde de la
micro-informatique.
Djamal Rebaïne
34
1985: Cray II : Miniaturisé, il est 10 fois plus
puissant que son prédécesseur, le Cray I.
1986: The Connection Machine Premier
ordinateur "massivement parallèle"
composé de 16 000 processeurs.
1994: Paragon d'Intel. Coûtant 20 Millions
de dollars, occupant un volume de 48m3, il
est composé de 2000 processeurs et de 64
Giga-octets de mémoire. Il peut effectuer
Djamal Rebaïne
35
150 milliards d'opérations en virgule flottante
par seconde
1994: PowerMac d'APPLE
Basé sur le microprocesseur POWER-PC
réalisé par Motorola en collaboration
avec IBM, il était présenté comme le
successeur commun du PC et du MAC.
Cependant, malgré de très bonnes
performances, il tarde à s'imposer.
Djamal Rebaïne
36
1998: iMac d'APPLE
L'iMac était l'ordinateur d'Apple pour le
nouveau millénaire. Il a également marqué le
retour d'Apple (et de MacOS) au devant de la
scène. C'est l'ordinateur le plus original depuis
le premier Mac de 1984: Design très
particulier, écran et unité centrale intégrés
dans un seul boîtier, ports USB et pas de
lecteur de disquette interne.
Djamal Rebaïne
37
Ordinateur et changements
technologiques
• Première génération: Tubes électroniques
(lampes à vide)
• Deuxième génération: transistors
• Troisième génération: circuits intégrés
• Quatrième génération: microprocesseurs.
• Cinquième génération: intelligence
artificielle.
Djamal Rebaïne
38
Première génération
1949-1957
• Ordinateur à cartes perforées et à bandes
magnétiques
• Programmation physique en langage
machine
• Appareils immenses, lourds, énergie élevée
• Utilisation de tubes à vide et à mémoires à
tambour magnétique
• Prix élevé / capacité et performance.
Djamal Rebaïne
39
Deuxième génération
1958 - 1964
• Utilisation de transistors et des mémoires à
ferrite.
• Utilisation de mémoires de masse pour le
stockage périphérique.
• Temps d’accès moyen (de l’ordre de la
micro-seconde).
• Fonctionnement séquentiel des systèmes de
programmation (langages évolués).
Djamal Rebaïne
40
Troisième génération
1965-1971
• Miniaturisation des composants (circuits
intégrés)
• Apparition des systèmes d’exploitation
• Concepts de temps partagés
• Machines polyvalentes et de capacité variée
• Appareils modulaires et extensibles
• Multitraitement (plusieurs programmes à la
fois)
• Télétraitement (accès par téléphone)
Djamal Rebaïne
41
Quatrième génération
1971-1982
•
•
•
•
•
Miniaturisation extrêmes des composants
Apparition des microprocesseurs
Diversification des champs d’application
Apparition de la micro-informatique
L’aspect logiciel prend le pas sur l’aspect
matériel
Djamal Rebaïne
42
Cinquième génération
• Miniaturisation des composants poussée à
l’extrême
• Vitesse proche de celle de la lumière.
• Nouvelle architecture physique
• Possibilité de choix d’ordre des vecteurs
séquentiels à traiter
• Vitesse de traitement augmentée jusqu’au
gigalips (Logical Inference: de 100 à 1000
instructions)
Djamal Rebaïne
43
• Processeurs en parallèle
• Nouvelles structures et représentations des
données.
• Ajout du traitement de l’aspect sémantique
à celui de l’aspect syntaxique de
l’information
• Ordinateurs à photons
Djamal Rebaïne
44
Alternatives à cette classification
1- architectures et conception (PC
compatibles vs. Apple)
2- super-ordinateurs: SIMD vs. MIMD
3- RISC vs. CISC
4- taille: super, gros, mini, station ou micro
ordinateurs
5- …, etc.
Djamal Rebaïne
45
Une petite virée vers le
parallélisme
Une machine parallèle est
essentiellement une machine qui
possède un ensemble de processeurs
qui coopèrent et communiquent
ensemble.
Djamal Rebaïne
46
On distingue classiquement quatre types
principaux de parallélisme: SISD, SIMD,
MISD et MIMD. De nos jours cette
classification peut paraître un peu
artificielle car le moindre microprocesseur courant inclut lui-même
plusieurs formes de micro-parallélisme.
Elle permet néanmoins d'expliquer les
bases de l'architectures des ordinateurs
séquentiels et parallèles.
Djamal Rebaïne
47
Machine SISD
Une machine SISD (Single Instruction Single Data) est ce que
l'on appelle d'habitude une machine de Von Neuman. Une
seule instruction est exécutée et une seule donnée (simple,
non-structurée) est traitée à
tout instant.
Djamal Rebaïne
48
Par exemple, le code suivant,
int A[100];
for (i=1;100>i;i++)
A[i]=A[i]+A[i+1
s'exécute sur une machine séquentielle en faisant les
additions
A[1]+A[2],
A[2]+A[3],
etc.,
A[99]+A[100]
à la suite les unes des autres
Djamal Rebaïne
49
Machines MISD
.
.
Djamal Rebaïne
50
Plusieurs processeurs, chacun avec sa propre unité
de contrôle, se partagent une mémoire commune.
Il y a N flots d'instructions (algorithmes /
programmes) et un flot de données. Chaque
processeur effectue une opération différente, au
même moment sur la même donnée.
Il n'existe aucune machine construite sur ce
modèle. C'est un modèle théorique sans intérêt
Djamal Rebaïne
51
Machines SIMD
Djamal Rebaïne
52
N processeurs identiques opèrent sous contrôle d'un
flot d'instructions unique généré par une unité centrale
unique (pour faciliter la compréhension, on peut
supposer que tous les processeurs exécutent le même
programme).
Il y a N flots de données, un par processeur, et des
données différentes peuvent ainsi être utilisées dans
chaque processeur. Fonctionnellement, on peut avoir
les deux schémas précédents (mémoire partagée ou
distribuée) :
Djamal Rebaïne
53
• En fait il n'existe pas de machine SIMD à mémoire commune.
Il s'agit toujours de processeurs très élémentaires en très grand
nombre (typiquement plusieurs centaines).
• Les processeurs opèrent de façon synchrone et une horloge
globale est utilisée pour effectuer les opérations en mode
«lockstep», c’est-à-dire à chaque tick de l'horloge globale,
tous les processeurs exécutent la même instruction, chacun sur une
donnée différente.
• Les machines SIMD sont particulièrement utiles pour traiter les
problèmes à structure régulière où la même instruction s'applique à
des sous-ensembles de données.
Djamal Rebaïne
54
EXEMPLE Addition de deux matrices A
+ B = C.
Soient deux matrices A et B d'ordre 2, et 4
processeurs.
A11 + B11 = C11 ... A12 + B12 = C12
A21 + B21 = C21 ... A22 + B22 = C22
La même instruction est envoyée aux 4
processeurs (ajouter les 2 nombres) et tous
les processeurs exécutent cette instruction
simultanément.
Djamal Rebaïne
55
• Un pas de temps suffit contre quatre sur une machine
séquentielle.
Une instruction peut être simple (eg addition de 2 nombres)
ou complexe (eg fusion de 2 listes). De la même façon les
données peuvent être simples (un nombre) ou complexes
(plusieurs nombres).
Il peut parfois être nécessaire de limiter l'exécution de
l'instruction a un sous ensemble des processeurs i.e.
seulement certaines données ont besoin d'être traitées par
cette instruction.
• Cette information peut être codée par un flag sur chaque
processeur qui indique si :
1. le processeur est actif (exécute l'instruction)
2. le processeur est inactif (attend la prochaine instruction
Djamal Rebaïne
56
Machines MIMD
C'est la classe la plus générale et la plus puissante de toute cette
classification.
Il y a N processeurs, N flots d'instructions et N flots de données. Et on
peut aussi avoir fonctionnellement les deux schemas suivants (mémoire
partagée ou distribuée.
Djamal Rebaïne
57
• Chaque processeur exécute un flot
d'instructions généré par sa propre unité de
contrôle
• Chaque processeur opère de façon asynchrone
en effectuant des opérations différentes sur des
données différentes au même instant.
• La communication de données ou de résultats
entre les processeurs peut se faire à travers une
mémoire commune ou un réseau
d’interconnexion.
Djamal Rebaïne
58
Djamal Rebaïne
59
CISC vs. RISC
Les processeurs généraux actuels se répartissent en deux
grandes catégories appelées :
• CISC : Complex Instruction Set Computer , et
• RISC : Reduced Instruction Set Computer.
Les processeurs de ces deux catégories se distinguent par
la conception de leurs jeux d'instructions.
• Les processeurs CISC possèdent un jeu étendu
d'instructions complexes. Chacune de ces instructions
peut effectuer plusieurs opérations élémentaires comme
charger une valeur en mémoire, faire une opération
arithmétique et ranger le résultat en mémoire.
Djamal Rebaïne
60
• Les processeurs RISC possèdent un jeu
d'instructions réduit où chaque
instruction effectue une seule opération
élémentaire.
• Le jeu d'instructions d'un processeur
RISC est plus uniforme. Toutes les
instructions sont codées sur la même
taille et toutes s'exécutent dans le même
temps (un cycle d'horloge en général).
Djamal Rebaïne
61
La répartition des principaux processeurs dans les deux
catégories est la suivante.
CISC
RISC
Alpha (DEC)
S/360 (IBM)
PowerPC
VAX (DEC)
(Motorola)
68xx, 680x0
MIPS
(Motorola)
PA-RISC (Hewlettx86, Pentium (Intel)
Packard)
SPARC
Djamal Rebaïne
62
Raisons ?
• Dans les premiers temps de l'informatique,
les ordinateurs étaient programmés en
langage machine ou en assembleur. Pour
faciliter la programmation, les concepteurs
de micro-processeurs dotèrent ceux-ci
d'instructions de plus en plus complexes
permettant aux programmeurs de coder de
manière plus concise et plus efficace les
programmes.
Djamal Rebaïne
63
• Lorsque les premiers langages de haut
niveau remplacèrent l'assembleur, cette
tendance s'accentua. Les concepteurs de
micro-processeurs s'efforcèrent de combler
le fossé entre le langage machine et les
langages de haut niveau. Des instructions
proches des constructions typiques des
langages de haut niveau furent ajoutées aux
micro-processeurs. L'idée était de faciliter la
compilation des langages de haut niveau au
détriment de la complexité des microprocesseurs.
Djamal Rebaïne
64
• Pour réduire le nombre d'instructions
nécessaires à un programme, il faut que
chaque instruction fasse plusieurs
opérations élémentaires. La lenteur relative
de la mémoire pousse aussi à avoir des
instructions complexes. Il n'y a alors moins
de codes d'instructions à lire en mémoire et
le programme en est accéléré.
• Comme la densité d'intégration des
transistors était aible, les micro-processeurs
possédaient très peu de registres internes.
Djamal Rebaïne
65
• De plus, un grand nombre de registres
auraient nécessité plus de bits pour coder les
instructions. Pour compenser cette lacune
en registres, certaines instructions étaient
capables, par exemple, de charger deux
valeurs en mémoire, de faire la somme et de
ranger le résultat en mémoire. Il y avait de
nombreux modes d'adressage et tous les
modes d'adressages étaient possibles à
toutes les instructions.
Djamal Rebaïne
66
• La complexification des jeux d'instructions
a pour effet de compliquer notablement la
phase de décodage des instructions. On
constate que sur certains micro-processeurs
à jeu d'instructions complexes, la moitié des
transistors sur la puce de silicium est
consacrée au décodage des instructions et
au contrôle de l'exécution de celles-ci.
Djamal Rebaïne
67
• Lorsque le jeu d'instructions est complexe,
la plupart des compilateurs n'utilisent pas
tout le jeu d'instructions. Il se contentent
souvent d'un nombre réduit d'instructions.
Le résultat est que les instructions les plus
puissantes sont très rarement utilisées.
Djamal Rebaïne
68
• On arrive alors au paradoxe suivant. Les
instructions complexes qui ne sont
pratiquement pas utilisées ralentissent les
instructions simples qui sont utilisées la
plupart du temps.
• Des études statistiques ont montré les faits
suivants.
- 80 % des programmes n'utilisent que 20 %
du jeu d'instructions.
Djamal Rebaïne
69
- Les instructions les plus utilisées sont :
– les instructions de chargement et de rangement,
– les appels de sous-routines.
- Les appels de fonctions sont très gourmands
en temps : sauvegarde et restitution du
contexte et passage des paramètres et de la
valeur de retour.
- 80 % des variables locales sont des entiers.
- 90 % des structures complexes sont des
variables globales.
Djamal Rebaïne
70
- La profondeur maximale d'appels imbriqués
et en moyenne de 8. Une profondeur plus
importante ne se rencontre que dans 1 %
des cas.
• L'apparition de l'architecture RISC : volonté
de favoriser les instructions simples qui
constituent la grande partie des
programmes: supprimer les instructions
complexes et les modes d'adressage
élaborés afin d'augmenter la fréquence
d'horloge et d'augmenter la vitesse
d'exécution de toutes les instructions.
Djamal Rebaïne
71
• La philosophie essentielle des processeurs
RISC est d'avoir un nombre important de
registres. Des instructions de chargement et
de rangement avec quelques modes
d'adressage sont les seules à faire les
échanges avec la mémoire. Toutes les autres
instructions travaillent uniquement avec les
registres.
Djamal Rebaïne
72
• L'apparition des micro-processeurs RISC
est en partie due à l'augmentation de la
mémoire disponible sur les ordinateurs.
Celle-ci n'est plus une limitation à la taille
des programmes. Un autre facteur est le
fossé entre la vitesse des processeurs et
celle de la mémoire. Les processeurs ont
une fréquence d'horloge élevée par rapport à
la vitesse de la mémoire. Chaque accès à la
mémoire les pénalise.
Djamal Rebaïne
73
• Ceci accentue le rôle d'un nombre important
de registres qui évitent les accès à la
mémoire. La lenteur de la mémoire est en
partie compensée par la présence de cache
fait de mémoires rapides. Ceux-ci sont très
efficaces pour lire les instructions des
programmes puisque ces accès à la mémoire
se font à des cases mémoire contiguës.
Djamal Rebaïne
74
Évolution de la programmation
On distingue 4 générations de langages de programmation plus au
moins deux nouvelles tendances..
1 Langages machine.
2 Langages symboliques.
3 Langages indépendants du matériel, comme Basic, C, Cobol, Algol...
4 Langages conçus pour décrire le problème, comme Simula.
5 Les langages à programmation logique prétendant représenter la
cinquième génération, mais leur utilisation est marginale. La
cinquième génération pourrait être celle des langages Internet, donc
fonctionnant sur toute machine et compilés en code intermédiaire (dit
virtuel).
6 Les langages "Markup" inspirés de XML sont la dernière tendance,
ils intègrent le code et les données sous une forme extensible.
Djamal Rebaïne
75
Les grands dates
• Ada Byron (1816-1852): première
programmatrice pour la machine de
Babbage
• Adèle Goldstine: programme pour ENIAC
en 1946.
• Les premiers programmes en Langage
machine (0 et 1)
• Langage symboliques: assembleurs
Djamal Rebaïne
76
• Fortran (Formula Translator) vers
1950 par J. Backus.
• Apparurent aussi des langages
spécialisés comme le GPSS
(simulation) et APT (commande de
machines à outils)
• Vers la fin de 1950:
- Algol: notion de blocs
Djamal Rebaïne
77
• Cobol: applications de gestion.
• PL/1: dans le but de traiter plusieurs genres
d’applications (universels), apparurent
ensuite les langages Pascal, Modula, C,
C++, JAVA, ...
• La micro-informatique a répandu le Basic
• Langages fonctionnels (Lisp): utilisé dans
le traitement des expressions symboliques
• Langages Logiques (Prolog): intelligence
artificielle; pouvoir d’inférence
• Langages interrogatifs (bases de donnée)
tels SQL
Djamal Rebaïne
78
• D’autres types de langages sont apparus,
tels ceux de description: le langage HTML
(Hyper Text Markup Language: permet de
décrire un document dans le but de le
visionner dans un navigateur internet).
• Il existe aussi des langages permettant de
piloter d’autres éléments tels les langages
de script dans UNIX.
Djamal Rebaïne
79
Structure des ordinateurs
John Von Neumann est à l'origine (1946)
d'un modèle de machine universelle (non
spécialisée) qui caractérise les machines
possédant les éléments suivants :
• une mémoire contenant programme
(instructions) et données,
• une unité arithmétique et logique (UAL
ou ALU en anglais),
• une unité de commande (UC).
Djamal Rebaïne
80
• une unité permettant l'échange
d'information avec les périphériques :
l'unité d'entrée/sortie (E/S ou I/O),
( clavier, lecteur de cartes perforées, ruban, ...
écran, imprimante, cartes perforées, ....)
Djamal Rebaïne
81
Von Neumann met de l'avant
cinq principes
1. Comme la machine est d'abord un
ordinateur, elle aura le plus souvent à
effectuer les opérations arithmétiques
élémentaires. Elle devra donc contenir des
organes spécialisés seulement pour ces
opérations, i.e. l'addition, la soustraction, la
multiplication et la division.
Djamal Rebaïne
82
2. Le contrôle logique de la machine
(l'ordonnancement correct de ses opérations)
peut être mieux effectué par un organe de
contrôle central.
3. Une machine qui a à effectuer des
séquences longues et compliquées
d'opérations doit avoir une capacité de
mémoire considérable.
Djamal Rebaïne
83
4. La machine doit avoir des organes pour transférer
l'information du médium d'enregistrement externe de la
machine vers la partie arithmétique centrale et la partie
de contrôle centrale et la mémoire. Ces organes
constituent son organe d'entrée.
5. La machine doit avoir des organes pour transférer
l'information de la partie arithmétique centrale et la
partie de contrôle centrale et la mémoire vers le médium
d'enregistrement externe. Ces organes constituent son
organe de sortie.
Djamal Rebaïne
84
Caractéristiques de la machine de
Von Neumann
• Machine contrôlée par programme
• Programme enregistré en mémoire
• Instruction du programme codée sous forme
binaire
• Le programme peut modifier ses
instructions
• Exécution des instructions en séquence
• Existence d’instructions de rupture de
séquence.
Djamal Rebaïne
85
Schéma de la machine de
Von Neuman
UAL = unité arithmétique et logique
Djamal Rebaïne
86
Ces dispositifs permettent la mise en oeuvre des
fonctions de base d'un ordinateur : le stockage de
données, le traitement des données, le mouvement
des données et le contrôle. Le fonctionnement
schématique en est le suivant :
Unité de Commande
1. extrait une instruction de la mémoire,
2. analyse l'instruction,
3. recherche dans la mémoire les données
concernées par l'instruction,
4. déclenche l'opération adéquate sur l‘UAL ou
l'E/S,
Djamal Rebaïne
87
5. range au besoin le résultat dans la
mémoire.
! La majorité des machines actuelles
s'appuient sur le modèle Von Neumann
Djamal Rebaïne
88
Quelques mots sur la mémoire
• Carte perforée à 80 colonnes (IBM)
Ce système qui deviendra un standard est la
généralisation de la carte perforée qui est à
l'origine de la compagnie.
• Mémoires à tubes Williams
Développée par F. C. Williams, ce type de
mémoire utilise les charges résiduelles laissées
sur l'écran d'un tube cathodique après qu'il ait
été frappé par le faisceau d'électron.
Djamal Rebaïne
89
Bande magnétique
Mémoires vives à tores de ferrite
Pendant une petite vingtaine d'année, ce
principe de mémoire sera le plus utilisé
avant d'être remplacé par la mémoire à
semi-conducteurs.
Tambour magnétique
Disque magnétique
Aussi appelé disque dur, ce type de
support deviendra incontournable
lorsqu'il prendra sa forme actuelle en
1974: Le disque Winchester.
Djamal Rebaïne
90
• Mémoires à semi-conducteurs
• Disques souples
• Mémoire magnétique à bulles (Intel) Mise au point par
Intel Magnetics , c'est une technologie qui offrait une très
grande fiabilité même dans des conditions de
fonctionnement extrêmes.
• Disque Opto-Numérique (aussi appelé Compact
Disc ou Disque Optique Compact)
Disque de plastique de 12 cm de diamètre et 1,2 mm
d'épaisseur lu par un faisceau laser
Djamal Rebaïne
91
où l'on peut stocker environ 75
minutes de musique. Son
succès, outre son format, vient
de l'exceptionnelle qualité de
reproduction sonore, de sa
faible fragilité ainsi que de son
inusabilité pas de contact).
Djamal Rebaïne
92
• CD-ROM (Sony et Philips) (Compact Disc
Read Only Memory) - Cédérom en français
Version informatique du CD permettant de
stocker à la fois du texte, des images, des sons...
Sa capacité était exceptionnelle pour l'époque:
680 Mo.
• R.N.I.S (Réseau Numérique à Intégration de
Services) - Baptisé Numéris par France Télécom
Djamal Rebaïne
93
Réseau publique (comme le Réseau Téléphonique
Commuté) où toutes les données (voix, images,
données informatiques...) circulent en numérique
• DVD-ROM (Sony et Philips): Successeur
annoncé du CD-ROM dont il reprend
exactement le format physique. Sa capacité est
par contre multipliée par 12 et passe à environ
8,5 Go.
Djamal Rebaïne
94
• Les Clés USB
Il s'agit simplement d'une puce mémoire avec un
connecteur USB. L'ensemble à la taille d'une clé
(et peut d'ailleurs se mettre en porte-clé) ce qui a
donné son nom. Les capacités actuelles dépassent
celles d'un CD-ROM avec l'avantage d'être
réinscriptible à volonté.
Que nous réserve
l'avenir ?
• La technologie électronique actuelle semble
obéir à la loi de Moore (Gordon Moore, de
Intel) : le nombre de transistors qu'on peut
placer sur une puce augmente par quatre à
tous les trois ans parce que la taille des traits
dans les circuits intégrés diminue de 10%
chaque année.
Djamal Rebaïne
96
Ceci s'est également avéré vrai pour la mémoire
centrale. Si on extrapole, comme dans la figure
suivante, on atteindra 1 milliard de transistors sur
une puce vers 2011! La taille des traits en 1997
est de 0,25 µm. Elle devrait être de 6 µm à cette
date. Pour les microprocesseurs, grâce à d'autres
améliorations telles que l'addition de nouveaux
circuits, l'amélioration en vitesse a été de quatre à
cinq à tous les trois ans.
Djamal Rebaïne
97
Figure 1.17 Loi de Moore. Nombre
de transistors par puce (en milliers)
Djamal Rebaïne
98
Une loi similaire s'applique également
à l'espace disque dont la capacité de
stockage quadruple à tous les trois ans
et la vitesse augmente de 1,4 à tous les
dix ans :
Djamal Rebaïne
99
Capacité de stockage d'un PC en Mo.
Djamal Rebaïne
100
Densité des disques durs en gigabits/po2
Djamal Rebaïne
101
Quelques mots sur les systèmes
d’exploitation
Définition
Un système d'exploitation (SE; en anglais: OS
= operating system) est un ensemble de
programmes permettant de gérer les
éléments fondamentaux de l'ordinateur:
le matériel - les logiciels - la mémoire - les
données – les réseaux.
Djamal Rebaïne
102
Fonctions d’un système
d’exploitation
•
•
•
•
•
•
•
Gestion de la mémoire
Gestion des systèmes de fichiers
Gestion des processus
Mécanismes de synchronisation
Gestion des périphériques
Gestion du réseau
Gestion de la sécurité.
Djamal Rebaïne
103
Un exemple
Soit la commande suivante: emacs monfichier.txt
Juste après avoir tapé le <Return> fatidique, le
système d'exploitation est mis à contribution. A
savoir qu'il doit ;
1) aller chercher sur le disque dur un fichier qui
s'appelle emacs et qui doit être impérativement un
fichier d'instruction à exécuter (fichier exécutable
ou "binaire").
2) aller chercher sur le disque dur un fichier qui
s'appelle monfichier.txt et rattacher ledit fichier à
l'exécutable emacs en tant que fichier de données.
Djamal Rebaïne
104
3) trouver une place en mémoire RAM pour y
placer tout ou partie de emacs de telle
manière qu'il soit effectivement exécutable
et une place en RAM pour y placer tout ou
partie du fichier monfichier.txt. Trouver une
place en RAM pour y mettre une zone de
communication avec emacs. Le SE et emacs
doivent communiquer entre eux afin de
s'informer (entre autres choses) du bon
déroulement des opérations.
Djamal Rebaïne
105
4) Si les fichiers emacs et monfichier.txt sont
trop gros pour la place disponible en RAM ,
le SE se charge de ne mettre en mémoire
vive que la partie des fichiers effectivement
utile à l'instant t pour le processeur. Dès
qu'une autre partie du fichier devient utile la
partie précédente est effacée de la RAM, et
la zone "utile" est recopiée à sa place. Cette
technique s'appelle le "swapping".
Djamal Rebaïne
106
Il existe actuellement plus de 193 systèmes
d’exploitation dans 27 langues
Quelques exemples
• UNIX
• VMS
• MS-DOS
• Win 9X = désigne les Windows 95-98-Me,
héritiers de MS-DOS et Win 3.1. Il n'a aura plus
de nouvelles versions. Cette gamme est remplacée
par Win XP home.
Djamal Rebaïne
107
• Windows NT est le système d’exploitation
Microsoft conçu pour se passer de MS-DOS, tout
en gardant une grande compatibilité avec les
logiciels écrits pour MS-DOS, Win 3 et plus tard
Win 9X (= Win 4.0).
• Windows 2000 est le nom commercial de Win
NT 5.0, et Win XP celui de NT 5.1
• Pour ceux qui confondent : Win 2000, n'est pas le
successeur technique de Win 98 :
• Win 98 a besoin de MS-DOS pour démarrer.
• Win NT-2000-XP l'émule dans une machine
virtuelle.
•
Djamal Rebaïne
108
• les périphériques d'entrée-sortie (par
exemple les cartes d'extension) varient d'un
modèle d'ordinateur à un autre. Il faut donc
un système qui puisse unifier l'écriture des
instructions gérant le matériel. Ainsi,
lorsqu'un programme désire afficher des
informations à l'écran, il n'a pas besoin
d'envoyer des informations spécifiques à la
carte graphique (il faudrait que chaque
programme prenne en compte la
programmation de chaque carte...), il envoie
les informations au système d'exploitation,
qui se charge de les transmettre au
périphérique concerné...
Djamal Rebaïne
109
• La communication avec le système
d'exploitation s'établit par
l'intermédiaire d'un langage de
commandes et un interpréteur de
commandes. Cela permet à l'utilisateur
de piloter les périphériques en ignorant
tout des caractéristiques du matériel
qu'il utilise, de la gestion des adresses
physiques...
Djamal Rebaïne
110
• Le systèmes multi-tâches Les système
d'exploitation multi-tâches permettent de
partager le temps du processeur pour
plusieurs programmes, ainsi ceux-ci
sembleront s'exécuter simultanément.
• Pour réaliser ce processus, les applications
sont découpées en séquence d'instructions
appelées tâches ou processus. Ces tâches
seront tour à tour actives, en attente,
suspendues ou détruites, suivant la priorité
qui leur est associée.
Djamal Rebaïne
111
• Un système est dit préemptif lorsqu'il
possède un Ordonnanceur (aussi appelé
planificateur ou scheduler), qui répartit,
selon des critères de priorité le temps
machine entre les différentes tâches qui en
font la demande.
• Le système est dit à temps partagé
lorsqu'un quota de temps est alloué à chaque
processus par l'ordonnanceur. Cela est
notamment le cas des systèmes multiutilisateurs qui permettent à plusieurs
utilisateurs d'utiliser simultanément sur une
même machine des applications similaires.
Djamal Rebaïne
112
Le système est alors dit "système
transactionnel". Dans ce cas, le système
alloue à chaque utilisateur une tranche de
temps (quantum de temps).
• Systèmes multi-processeurs Ces systèmes
sont nécessairement multi-tâches puisqu'on
leur demande d'une part de pouvoir exécuter
simultanément plusieurs applications, mais
surtout d'organiser leur exécution sur les
différents processeurs (qui peuvent être
identiques ou non). Ces systèmes peuvent
être soit architecturés autour d'un processeur
central qui coordonne les autres
Djamal Rebaïne
113
processeurs, soit avec des
processeurs indépendants qui
possèdent chacun leur
système d'exploitation, ce qui
leur vaut de communiquer
entre eux par l'intermédiaire
de protocoles.
Djamal Rebaïne
114
Types de systèmes d'exploitation
deux types de systèmes d'exploitation: les
systèmes 16 bits et les systèmes 32 bits.
- DOS codage sur 16 bits mono-utilisateur
- Windows 3.1 codage sur 16/32 bits multitâche préemptif
- Windows 95/98/Me 32 bits multi-tâches
préemptif
- Windows NT/2000 32 bits multi-tâches
préemptif
- Unix 32 bits multi-tâches préemptif
- VMS 32 bits muli-tâches préemptif
Djamal Rebaïne
115
Pour en savoir plus
• Moreau, René (1982): ainsi naquit l’informatique,
les hommes, les matériels à l’origine des concepts
de l’informatique d’aujourd’hui, deuxième édition,
Dunod.
• Randell, Brian (1982): the origin of digital
computers: selected papers; Springer Verlag
• Les ordinateurs de cinquième génération;
MICRO-SYSTEMS, février 1983.
• Des photons dans l’ordinateurs, MICROSYSTEMS, décembre 1983
Djamal Rebaïne
116
• Machines pensantes, DIMENSIONS
SYSTEMS, 1984-1985.
• Les calculateurs analogiques, MICROSYSTEMS, juillet-août 1986.
• Pour la science: spécial informatique du
futur. No. 122, décembre 1987.
• Pour la science: L’informatique des années
90, No. Spécial 72.
• Pour la science: communication, ordinateurs
et réseaux, numéro spécial, 1991.
Djamal Rebaïne
117
• R. Keyes: L’avenir du transistor; pour la science,
août 1993.
Adresses de site utiles
• www.histoire-informatique.org/grandes_dates
• http://www.scriptol.fr/programmation/histoirelangages.php
Djamal Rebaïne
118