Vous êtes sur la page 1sur 147

Les bases de l'informatique

et de
la programmation
Le contenu de ce livre pdf de cours d'initiation la
programmation est inclus dans un ouvrage papier de 1372
pages dit en Novembre 2004 par les ditions Berti
Alger.
http://www.berti-editions.com
L'ouvrage est accompagn d'un CD-ROM contenant les
assistants du package pdagogique.
Rm di Scala
Corrections du 04.01.05
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 1
SOMMAIRE
Introduction 4
Chapitre 1.La machine
1.1.Ordinateur et volution 6
1.2.Les circuits logiques 14
1.3.Codage et numration 44
1.4.Formalisation de la notion dordinateur 55
1.5.Architecture de lordinateur 66
1.6.Systme dexploitation 100
1.7.Les rseaux 126
Exercices avec solutions 145
Chapitre 2.Programmer avec un langage
2.1.Les langages 147
2.2.Relations binaires 155
2.3.Thorie des langages 161
2.4.Les bases du langage Delphi 177
Exercices avec solutions 219
Chapitre 3.Dvelopper du logiciel avec mthode
3.1.Dveloppement mthodique du logiciel 223
.Machines abstraites : exemple 259
3.2.Modularit 269
3.3.Complexit, tri, recherche 278
tri bulle 286
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 2
tri par slection 292
tri par insertion 300
tri rapide 306
tri par tas 316
recherche en table 331
Exercices avec solutions 336
Chapitre 4. Structures de donnes
4.1.spcifications abstraites de donnes 355
4.2 types abstraits TAD et implantation 371
exercice TAD et solution d'implantation 379
4.3 structures d'arbres binaires 382
Exercices avec solutions 413
Chapitre 5. Programmation objet et vnementielle
5.1.Introduction la programmation oriente objet 445
5.2.Programmez objet avec Delphi 462
5.3.Polymorphisme avec Delphi 489
5.4.Programmation vnementielle et visuelle 523
5.5.Les vnements avec Delphi 537
5.6.Programmation dfensive 564
Exercices avec solutions 582
Chapitre 6. Programmez avec des grammaires
6.1.Programmation avec des grammaires 605
6.2.Automates et grammaires de type 3 628
6.3.projet de classe mini-interprteur 647
6.4.projet d'indentateur de code 667
Exercices avec solutions 691
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 3
Chapitre 7. Communication homme-machine
7.1.Les interfaces de communication logiciel/utilisateur 707
7.2. Grammaire pour analyser des phrases 714
7.3. Interface et pilotage en mini-franais 734
7.4. Projet d'IHM : enqute fumeurs 754
7.5. Utilisation des bases de donnes 766
Exercices avec solutions 802
Chapitre 8. Les composants sont des logiciels rutilisables
8.1.Construction de composants avec Delphi 861
8.2. Les messages Windows avec Delphi 902
8.3. Cration d'un vnement associ un message 923
8.4. ActiveX avec la technologie COM 930
Exercices avec solutions 948
Annexes
Notations mathmatiques utilises dans l'ouvrage 982
Syntaxe compare LDFA- Delphi-Java/C# 988
Choisir entre agrgation ou hritage 990
5 composants logiciels en Delphi, Java swing et C# 995
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 4
Introduction
Issu d'un cours de programmation l'universit de Tours en premier cycle scientifique, en DESS,
Master Sciences et technologie comptence complmentaire informatique et en Diplme
Universitaire ( DU ) comptence complmentaire informatique pour les NTIC (rservs des non-
informaticiens), cet ouvrage est une synthse (non exhaustive)sur les minima connatre sur le sujet.
Il permettra au lecteur d'aborder la programmation objet et l'criture d'interfaces objets
vnementielles sous Windows en particulier.
Ce livre sera utile un public tudiant (IUT info, BTS info, IUP informatique et scientifique,
DEUG sciences, licence pro informatique, Dess, Master et DU comptence complmentaire en
informatique) et de toute personne dsireuse de se former par elle-mme (niveau prrequis Bac
scientifique).
Le premier chapitre rassemble les concepts essentiels sur la notion d'ordinateur, de codage, de
systme d'exploitation, de rseau, de programme et d'instruction au niveau machine.
Le second chapitre introduit le concept de langage de programmation et de grammaire de
chomsky, le langage pascal de Delphi sert d'exemple.
Le chapitre trois forme le noyau dur d'une approche mthodique pour dvelopper du logiciel, les
thmes abords sont : algorithme, complexit, programmation descendante, machines abstraites,
modularit. Ce chapitre fournit aussi des outils de tris sur des tableaux. montre comment utiliser
des grammaires pour programmer en mode gnration ou en mode analyse.
Le chapitre quatre dfini la notion de types abstraits. Il propose l'tude de type abstrait de
structures de donnes classiques : liste, pile, file, arbre avec des algorithmes classiques de traitement
d'arbres binaires.
Le chapitre cinq contient les lments fondamentaux de la programmation oriente objet, du
polymorphisme d'objet, du polymorphisme de mthode, de la programmation vnementielle et
visuelle, de la programmation dfensive. Le langage Delphi sert de support l'implantation pratique
de ces notions essentielles.
Le chapitre six montre comment utiliser la programmation par les grammaire avec des outils
pratiques comme les automates de type 3 et les automates piles simples. Deux projets complets sont
traits dans ce chapitre.
Le chapitre sept correspond la construction d'interface homme-machine, et l'utilisation des bases
de donnes avec des exemples pratiques en Delphi et Access.
Le chapitre huit composant avec Delphi, puis aborde le traitement des messages dans Windows et
comment programmer des applications utilisant les messages systme pour communiquer. Il fournit
aussi une notice pratique pour construire un composant ActiveX et le dployer sur le web avec
Delphi.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 5
Chapitre 1 : La machine
1.1.Ordinateur et volution
les 3 grandes lignes de penses
les gnrations d'ordinateurs
l'ordinateur
information-informatique
1.2.Les circuits logiques
logique lmentaire pour l'informatique
algbre de Boole
circuits boolens
1.3.Codage numration
codage de l'information
numration
1.4.Formalisation de la notion dordinateur
machine de Tring thorique
machine de Tring physique
1.5.Architecture de lordinateur
les principaux constituants
mmoires, mmoire centrale
une petite machine pdagogique
1.6.Systme dexploitation
notion de systme d'exploitation
systmes d'exploitation des micro-ordinateurs
1.7.Les rseaux
les rseaux d'ordinateurs
liaisons entre rseaux
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 6
1.1 Ordinateur et volution
Plan du chapitre:
1. Les 3 grandes lignes de pense
1.1 Les machines calculer
1.2 Les automates
1.3 Les machines programmables
2. Les gnrations de matriels
2.1 Premire gnration 1945-1954
2.2 Deuxime gnration 1955-1965
2.3 Troisime gnration 1966-1973
2.4 Quatrime gnration partir de 1974
3. Lordinateur
3.1 Utilit de lordinateur
3.2 Composition minimale dun ordinateur
3.3 Autour de lordinateur : les priphriques
3.4 Pour relier tout le monde
4. Information - Informatique
4.1 Les dfinitions
4.2 Critre algorithmique lmentaire
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 7
1. Les 3 grandes lignes de pense
Lhistoire de linformatique dbute par linvention de machines (la fonction cre lorgane) qui au
dpart correspondent des lignes de pense diffrentes. Linformatique rsultera de la fusion des
savoirs acquis dans ces domaines. Elle nest pas une synthse de plusieurs disciplines, mais plutt
une discipline entirement nouvelle puisant ses racines dans le pass. Seul leffort permanent du
gnie cratif humain la rendue accessible au grand public de nos jours.
1.1 Les machines calculer
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 8
La Pascaline de Pascal, 17
me
sicle. Pascal invente la Pascaline, premire machine calculer
(addition et soustraction seulement), pour les calculs de son pre.
La machine multiplicatrice de Leibniz, 17
me
sicle. Leibniz amliore la machine de Pascal pour avoir
les quatre oprations de base (+,-,*,/).
1.2 Les automates
Les automates, les horloges astronomiques, les machines militaires ds le 12
me
sicle.
1.3 Les machines programmables
Le mtier tisser de Jacquard, 1752-1834
Dbut de commercialisation des machines mcaniques scientifiques (usage militaire en gnral).
Babage invente la premire machine analytique programmable.
2. Les gnrations de matriels
On admet gnralement que l're de l'informatique qui couvre peu de dcennies se divise en plusieurs
gnrations essentiellement marques par des avances technologiques
2.1 Premire gnration 1945 - 1954
Informatique scientifique et militaire.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 9
Il faut rsoudre les problmes des calculs rptitifs.
Cration de langages avec succs et checs dans le but de rsoudre les problmes prcdents.
Technologie lourde (Tube et tore de ferrite), qui pose des problmes de place et de consommation
lectrique.
Les trs grandes nations seules possdent loutil informatique.
2.2 Deuxime gnration 1955-1965
Naissance de linformatique de gestion.
Nouvelle technologie base sur le transistor et le circuit imprim. Le langage Fortran rgne en
matre incontest. Le langage de programmation Cobol orient gestion, devient un concurrent de
Fortran.
Les nations riches et les trs grandes entreprises accdent loutil informatique.
2.3 Troisime gnration 1966-1973
Naissance du circuit intgr.
Nouvelle technologie base sur le transistor et le circuit intgr.
Les ordinateurs occupent moins de volume, consomment moins dlectricit et sont plus rapides. Les
ordinateurs sont utiliss le plus souvent pour des applications de gestion.
Les PME et PMI de tous les pays peuvent se procurer des matriels informatiques.
2.4 Quatrime gnration partir de 1974
Naissance de la micro-informatique
La cration des microprocesseurs permet la naissance de la micro-informatique(le micro-ordinateur
Micral de R2E est invent par un franais Franois Gernelle en 1973). Steve Jobs (Apple) invente
un nouveau concept vers la fin des annes 70 en recopiant et en commercialisant les ides de Xerox
parc travers le MacIntosh et son interface graphique.
Un individu peut actuellement acheter son micro-ordinateur dans un supermarch.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 10
Nous observons un phnomne fondamental :
La dmocratisation dune science travers un outil. Linformatique qui ses dbuts tait une
affaire de spcialistes, est aujourdhui devenue laffaire de tous; do limportance dune
solide formation de tous aux diffrentes techniques utilises par la science informatique, car
la banalisation dun outil ou dune science a son revers : lassoupissement de lattention
envers les inconvnients inhrents tout progrs technique.
Tableau synoptique des gnrations dordinateurs :
3. L'ordinateur
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 11
3.1 Utilit de lordinateur
Un ordinateur est une machine traiter de linformation.
Linformation est fournie sous forme de donnes traites par des programmes (excuts par
des ordinateurs).
3.2 Composition minimale dun ordinateur : le cur
Une mmoire Centrale .
Une unit de traitement avec son UAL (unit de calcul).
Une unit de commande ou contrle.
Une ou plusieurs units dchanges.
Schma simplifi du cur de lordinateur
3.3 Autour de lordinateur : les priphriques
Les priphriques sont chargs deffectuer des tches dentres et/ou de sortie de linformation.
En voici quelques uns.
Priphriques dentre
Clavier, souris, crayon optique, cran tactile, stylo code barre, carte son,
scanner, camra, etc.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 12
Priphriques de sortie
Ecran, imprimante, table traante, carte son, tlcopie, modem etc.
Priphriques dentre sortie
Mmoire auxiliaire (sert stocker les donnes et les programmes):
1. Stockage de masse sur disque dur ou disquette.
2. Bande magntique sur drouleur (ancien) ou sur
streamer.
3. Mmoire clef USB
4. CD-Rom, DVD, disque magnto-lectrique etc
3.4 Pour relier tout le monde : Les Bus
Les Bus reprsentent dans lordinateur le systme de communication entre ses divers constituants. Ils
sont au nombre de trois :
le Bus dadresses, (la notion dadresse est prsente plus loin)
le Bus de donnes,
le Bus de contrle.
4. Information - informatique
4.1 Les dfinitions
Linformation est le support formel dun lment de connaissance humaine
susceptible dtre reprsente laide de conventions (codages) afin dtre
conserve, traite ou communique.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page 13
Linformatique est la science du traitement de linformation dans les domaines
scientifiques, techniques, conomiques et sociaux.
Une donne est la reprsentation dune information sous une forme
conventionnelle (code) destine faciliter son traitement.
schma simplifi du traitement de linformation
4.2 Critre algorithmique lmentaire
Une application courante est justiciable dun traitement
informatique si :
Il est possible de dfinir et de dcrire parfaitement les donnes dentre et les rsultats de sortie.
Il est possible de dcomposer le passage de ces donnes vers ces rsultats en une suite doprations
lmentaires dont chacune peut tre excute par une machine.
Nous pouvons considrer ce critre comme une dfinition provisoire dun algorithme.
Actuellement linformatique intervient dans tous les secteurs dactivit de la vie quotidienne :
dmontrer un thorme (mathmatique)
faire jouer aux checs (intelligence artificielle)
dpouiller un sondage (conomie)
grer un robot industriel (atelier)
facturation de produits (entreprise)
traduire un texte (linguistique)
imagerie mdicale (mdecine)
formation distance (ducation)
Internet (grand public)...etc
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
14
1.2 Les circuits logiques
Plan du chapitre:
1. Logique lmentaire pour linformatique
1.1 Calcul propositionnel naf
1.2 Proprits des connecteurs logiques
1.3 Rgles de dduction
2. Algbre de Boole
2.1 Axiomatique pratique
2.2 Exemples dalgbre de Boole
2.3 Notation des lectroniciens
3.Circuits boolens ou logiques
3.1 Principaux circuits
3.2 Fonction logique associe un circuit
3.3 Circuit logique associ une fonction
3.4 Additionneur dans lUAL
3.5 Circuit multiplexeur
3.6 Circuit dmultiplexeur
3.7 Circuit dcodeur d'adresse
3.8 Circuit comparateur
3.9 Circuit bascule
3.10 Registre
3.11 Mmoires SRAM et DRAM
3.12 Afficheur LED
3.13 Compteurs
3.14 Ralisation lectronique de circuits boolens
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
15
1. Logique lmentaire pour linformatique
1.1 Calcul propositionnel naf
Construire des programmes est une activit scientifique fonde sur le raisonnement logique. Un peu
de logique simple va nous aider disposer doutils pratiques mais rigoureux pour construire des
programmes les plus justes possibles. Si la programmation est un art, cest un art rigoureux et
logique. La rigueur est dautant plus ncessaire que les systmes informatiques manquent totalement
de sens artistique.
Une proposition est une proprit ou un nonc qui peut avoir une valeur de vrit vraie (note V) ou
fausse (note F).
" 2 est un nombre impair " est une proposition dont la valeur de vrit est F.
Par abus de langage nous noterons avec le mme symbole une proposition et sa valeur de vrit,
car seule la valeur de vrit dune proposition nous intresse ici.
Soit lensemble P = { V , F } des valeurs des propositions.
On le munit de trois oprateurs appels connecteurs logiques : , . , v.
. : P x PP (se lit " et ")
v : P x PP (se lit " ou ")
: P P (se lit " non ")
Ces connecteurs sont dfinis en extension par leur tables de vrit :
p q p p . q p v q
V V F V V
V F F F V
F V V F V
F F V F F
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
16
1.2 Proprits des connecteurs logiques
- Nous noterons p = q , le fait la proposition p et la proposition q ont la mme valeur de vrit.
- Le lecteur pourra dmontrer laide des tables de vrit par exemple, que v et . possdent les
proprits suivantes :
p v q = q v p
p . q = q . p
p v (q v r) = (p v q) v r
p . (q . r) = (p . q) . r
p v (q . r) = (p v q) . (p v r)
p . (q v r) = (p . q) v (p . r)
p v p = p
p . p = p
p = p
(p v q) = p . q
(p . q) = p v q
Nous notons p q , la proposition : p v q (limplication).
Table de vrit du connecteur :
p q p q
V V V
V F F
F V V
F F V
Il est aussi possible de prouver des " galits " de propositions en utilisant des combinaisons de
rsultats prcdents.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
17
Exemple : Montrons que : p q = q p (implication contrappose), par dfinition et
utilisation vidente des proprits :
p q = p v q = q v p = ( q) v p = q p
1.3 Rgles de dduction
Assertion :
cest une proposition construite laide des connecteurs logiques ( , . , v, en particulier) dont la
valeur de vrit est toujours V (vraie).
Les rgles de dduction permettent de faire du calcul sur les assertions. Nous abordons ici le
raisonnement rationnel sous son aspect automatisable, en donnant des rgles dinfrences
extraites du modle du raisonnement logique du logicien Gentzen. Elles peuvent tre une aide
trs apprciable lors de la construction et la spcification dun programme.
Les rgles de dduction sont spares en deux membres. Le premier contient les prmisses ou
hypothses de la rgle, le deuxime membre est constitu par une conclusion unique. Les deux
membres sont spars par un trait horizontal. Gentzen classe les rgles de dduction en deux
catgories : les rgles dintroduction car il y a utilisation dun nouveau connecteur, et les rgles
dliminations qui permettent de diminuer dun connecteur une proposition.
Syntaxe dune telle rgle :
Quelques rgles de dductions pratiques :
Rgle dintroduction du . :
Rgle dintroduction du v :
Rgle dintroduction du :
Rgles dlimination du . :
,
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
18
Rgle du modus ponens :
Rgle du modus tollens :
Le systme de Gentzen contient dautres rgles sur le ou et sur le non. Enfin il est possible de
construire dautres rgles de dduction partir de celles-ci et des proprits des connecteurs
logiques. Ces rgles permettent de prouver la valeur de vrit dune proposition. Dans les cas
pratiques lessentiel des raisonnements revient des dmonstrations de vracit dimplication.
La dmarche est la suivante : pour prouver quune implication est vraie, il suffit de supposer que le
membre gauche de limplication est vrai et de montrer que sous cette hypothse le membre de droite
de limplication est vrai.
Exemple :
soit montrer que la rgle de dduction R
0
suivante est exacte :
R
0
: (transitivit de )
Hypothse : p est vrai
nous savons que : p q est vrai et que q r est vrai
- En appliquant le modus ponens : nous dduisons que : q est vrai.
- En appliquant le modus ponens (q , q r) nous dduisons que : r est vrai.
- Comme p est vrai (par hypothse) on applique la rgle dintroduction de sur (p , r) nous
dduisons que : p r est vrai (cqfd).
Nous avons prouv que R
0
est exacte. Ainsi nous avons construit une nouvelle rgle de dduction qui
pourra nous servir dans nos raisonnements.
Nous venons d'exhiber un des outils permettant la construction raisonne de programmes. La logique
interne des ordinateurs est encore actuellement plus faible puisque base sur la logique boolenne, en
attendant que les machines de 5
me
gnration bases sur la logique du premier ordre (logique des
prdicats, suprieure la logique propositionnelle) soient dfinitivement oprationnelles.
2. Algbre de Boole
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
19
2.1 Axiomatique pratique
Du nom du mathmaticien anglais G.Boole qui linventa. Nous choisissons une axiomatique
compacte, laxiomatique algbrique :
On appelle algbre de Boole tout ensemble E muni de :
deux lois de compositions internes notes par exemple : - et ,
une application involutive f (f
2
= Id ) de E dans lui-mme,note
chacune des deux lois - , , est associative et commutative,
chacune des deux lois - , , est distributive par rapport lautre,
la loi - admet un lment neutre unique not e
1
,
xeE, x - e
1
= x
la loi admet un lment neutre not e
0
,
xeE, x e
0
= x
tout lment de E est idempotent pour chacune des deux lois :
xeE, x - x = x et x x = x
axiomes de complmentarit :
lois de Morgan :
(x,y) e E
2
,
(x,y) e E
2
,
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
20
2.2 Exemples dalgbre de Boole
a) Lensemble P(E) des parties dun ensemble E, muni des oprateurs intersection ,union , et
lapplication involutive complmentaire dans E C
E
, (si E = C ), si E est fini et possde n
lments, P(E) est de cardinal 2
n
.
Il suffit de vrifier les axiomes prcdents en substituant les lois du nouvel ensemble E aux lois - ,
, et . Il est montr en mathmatiques que toutes les algbres de Boole finies sont isomorphes un
ensemble (P(E), , , C
E
) : elles ont donc un cardinal de la forme 2
n
.
b) Lensemble des propositions (en fait l'ensemble de leurs valeurs {V, F} ) muni des connecteurs
logiques (lapplication involutive) , . , v , est une algbre de Boole minimale deux lments.
2.3 Notation des lectroniciens
Lalgbre des circuits lectriques est une algbre de Boole minimale deux lments :
Lensemble E = {0,1} muni des lois " - " et " + " et de lapplication complmentaire .
Formules pratiques et utiles (rsultant de laxiomatique) :
a + 1 = 1
a + 0 = a
a + a = a
= 1
=
a.1 = a
a.0 = 0
a.a = a
= 0
=
Formule dabsorbtion :
a+(b.a) = a.(a+b) = (a+b).a = a+b.a = a
Montrons par exemple : a+(b.a) = a
a+(b.a)= a+a.b = a.1+a.b = a.(1+b) = a.1 = a
Le reste se montrant de la mme faon.
Cette algbre est utile pour dcrire et tudier les schmas lectroniques, mais elle sert aussi dans
dautres domaines que llectricit. Elle est tudie ici parce que les ordinateurs actuels sont bass sur
des composants lectroniques. Nous allons descendre un peu plus bas dans la ralisation interne du
cur dun ordinateur, afin daboutir la construction dun additionneur en binaire dans lUAL.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
21
Tables de vrit des trois oprateurs :
x y x . y x + y
1 1 0 1 1
1 0 0 0 1
0 1 1 0 1
0 0 1 0 0
3. Circuits boolens ou logiques
Nous reprsentons par une variable boolenne x e{0,1} le passage dun courant lectrique.
Lorsque x = 0, nous dirons que x est ltat 0 (le courant ne passe pas)
Lorsque x = 1, nous dirons que x est ltat 1 (le courant passe)
Une telle variable boolenne permet ainsi de visualiser, sous forme dun bit dinformation (0,1) le
comportement dun composant physique laissant ou ne laissant pas passer le courant.
Nous ne nous proccuperons pas du type de circuits lectriques permettant de construire un circuit
logique (les composants lectriques sont bass sur les circuits intgrs). Nous ne nous intresserons
qu la fonction logique (boolenne) associe un tel circuit.
En fait un circuit logique est un oprateur dune algbre de Boole cest--dire une combinaison de
symboles de lalgbre {0,1}, . ,+, ).
3.1 Principaux circuits
Nous proposons donc 3 circuits logiques de base correspondant aux deux lois internes et loprateur
de complmentation involutif.
Le circuit OU associ la loi " + " :
La table de vrit de ce circuit est celle de
l'oprateur +
Le circuit ET associ la loi "-" :
La table de vrit de ce circuit est celle de
l'oprateur -
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
22
Le circuit NON associ la loi " " :
la table de vrit est celle de l'oprateur involutif
On construit deux circuits classiques laide des circuits prcdents :
Loprateur XOR = " ou exclusif " :
dont voici le schma :
Table de vrit du ou exclusif :
a b a b
1 1 0
1 0 1
0 1 1
0 0 0
Loprateur NAND (le NON-ET):
dont voici le schma :
Table de vrit du Nand :
a b
1 1 0
1 0 1
0 1 1
0 0 1
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
23
Loprateur NOR (le NON-OU):
dont voici le schma :
Table de vrit du Nor :
a b a O b
1 1 0
1 0 0
0 1 0
0 0 1
L'on montre facilement que les deux oprateurs NAND et NOR rpondent aux critres axiomatiques
d'une algbre de Boole, ils sont ralisables trs simplement avec un minimum de composants
lectroniques de type transistor et diode (voir paragraphes plus loin). Enfin le NOR et le NAND
peuvent engendrer les trois oprateurs de base non, et , ou. :
Oprateur de base Ralisation de l'oprateur en NAND ou en NOR
circuit ET
circuit OU
circuit NON
Expression des 3 premiers oprateurs (x , + , . ) l'aide de NAND et de NOR
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
24
3.2 Fonction logique associe un circuit
Un circuit logique est un systme de logique squentielle o la valeur de sortie
S (tat de la variable boolenne S de sortie) dpend des valeurs des entres
e
1
,e
2
,...,e
n
(tats des variables boolennes dentres e
i
). Sa valeur de sortie est
donc une fonction S = f(e
1
,e
2
,...,e
n
).
Pour calculer la fonction f partir dun schma de circuits logiques, il suffit dindiquer la sortie de
chaque oprateur (circuit de base) la valeur de lexpression boolenne en cours. Puis, la fin, nous
obtenons une expression boolenne que lon simplifie laide des axiomes ou des thormes de
lalgbre de Boole.
Exemple :
En simplifiant S : (a+b).b+ = b + (formule dabsorbtion)
b + = 1.
3.3 Circuit logique associ une fonction
A linverse, la cration de circuits logiques partir dune fonction boolenne f n entres est aussi
simple. Il suffit par exemple, dans la fonction, dexprimer graphiquement chaque oprateur par un
circuit, les entres tant les oprandes de loprateur. En rptant laction sur tous les oprateurs, on
construit un graphique de circuit logique associ la fonction f.
Exemple : Soit la fonction f de 3 variables boolennes, f (a,b,c) = (a+b)+(b.c)
Construction progressive du circuit associ.
1) oprateur " + " :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
25
2) branche suprieure de loprateur " + " :
3) branche infrieure de loprateur " + " :
Les lectroniciens classent les circuits logiques en deux catgories : les circuits combinatoires et les
circuits squentiels (ou mmoire).
Un circuit combinatoire est un circuit logique n entres dont la fonction de sortie ne dpend
uniquement que des variables d'entres.
Un circuit mmoire (ou squentiel) est un circuit logique n entres dont la fonction de sortie
dpend la fois des variables d'entres et des tats antrieurs dj mmoriss des variables de sorties.
Exemple de circuit mmoire
f( a , b , S
3
) = S
3
La sortie intermdiaire S
2
est value en fonction
de la sortie S
3
: S
2
= b . S
3
(valeur de S3 un temps
avant)
Si b=0 alors S
2
= 0
Si b=1 alors S
2
= S
3
Nous avons S
3
= S
1
+ S
2
En notant S'
3
la valeur au temps t
0
et S
3
la valeur
au temps t
0
+dt, il vient que S
3
= S
1
+ b . S'
3
Table de vrit associe ce circuit :
a b S
1
S
2
S
3
f(a,b,S
3
)
1 1 0 S'
3
S'
3 S'
3
1 0 0 0 0 1
0 1 1 S'
3
1 0
0 0 1 0 1 0
Dans le cas a=1 et b=1 ce circuit fictif fournit le complment de la valeur antrieure.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
26
Quelques noms de circuits logiques utiliss dans un ordinateur
Circuit combinatoire : additionneur, multiplexeur, dcodeur, dcaleur, comparateur.
Circuit mmoire : bascules logiques.
3.4 Additionneur dans lUAL (circuit combinatoire)
a) Demi-additionneur
Reprenons les tables de vrits du " " (Xor), du " + " et du " - " et adjoignons la table de calcul de
laddition en numration binaire.
Tout dabord les tables compares des oprateurs boolens :
a b a b a+b a.b
1 1 0 1 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 0
Rappelons ensuite la table daddition en numration binaire :
+ 0 1
0 0 1
1 1 0(1)
0(1) reprsente la retenue 1 reporter.
En considrant une addition binaire comme la somme effectuer sur deux mmoires un bit, nous
observons dans laddition binaire les diffrentes configurations des bits concerns (nots a et b).
Nous aurons comme rsultat un bit de somme et un bit de retenue :
bit a bit b bit somme bit de retenue
1 + 1 = 0 1
1 + 0 = 1 0
0 + 1 = 1 0
0 + 0 = 0 0
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
27
Si lon compare avec les tables doprateurs boolens, on saperoit que loprateur "" (Xor) fournit
en sortie les mmes configurations que le bit de somme, et que loprateur "-" (Et) dlivre en sortie
les mmes configurations que le bit de retenue.
Il est donc possible de simuler une addition binaire (arithmtique binaire) avec les deux oprateurs
"" et "-". Nous venons de construire un demi-additionneur ou additionneur sur un bit. Nous
pouvons donc raliser le circuit logique simulant la fonction complte daddition binaire, nous
lappellerons " additionneur binaire "(somme arithmtique en binaire de deux entiers en binaire).
schma logique dun demi-additionneur
Ce circuit est not :
b)Additionneur complet
Une des constructions les plus simples et la plus pdagogique dun additionneur complet est de
connecter entre eux et en srie des demi-additionneurs (additionneurs en cascade). Il existe une autre
mthode dnomme " diviser pour rgner " pour construire des additionneurs complets plus rapides
lexcution que les additionneurs en cascade. Toutefois un additionneur en cascade pour UAL 32
bits, utilise 2 fois moins de composants lectroniques quun additionneur diviser pour rgner.
Nous concluons donc quune UAL neffectue en fait que des oprations logiques (algbre de Boole)
et simule les calculs binaires par des combinaisons doprateurs logiques
Soient a et b deux nombres binaires additionner dans lUAL. Nous supposons quils sont stocks
chacun dans une mmoire n bits. Nous notons a
p
et b
p
leur bit respectif de rang p. Lors de laddition
il faut non seulement additionner les bits a
p
et b
p
laide dun demi-aditionneur, mais aussi
lventuelle retenue note Rp provenant du calcul du rang prcdent.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
28
additionneur en cascade (addition sur le bit de rang p)
On radditionne Rp laide dun demi-additionneur la somme de a
p
et b
p
et lon obtient le bit de
somme du rang p not Sp. La propagation de la retenue Rp
+1
est faite par un " ou " sur les deux
retenues de chacun des demi-additionneurs et passe au rang p+1. Le processus est itratif sur tous les
n bits des mmoires contenant les nombres a et b.
Notation du circuit additionneur :
Soit un exemple fictif de ralisation d'un demi-additionneur simulant l'addition binaire suivante :
0 + 1 = 1. Nous avons figur le passage ou non du courant l'aide de deux interrupteurs (valeur = 1
indique que l'interrupteur est ferm et que le courant passe, valeur = 0 indique que l'interrupteur est
ouvert et que le courant ne passe pas)
Le circuit et fournit le bit de retenue soit : 0 -1 = 0
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
29
Le circuit Xor fournit le bit de somme soit : 0 1 = 1
Nous figurons le dtail du circuit Xor du schma prcdent lorsqu'il reoit le courant des deux
interrupteurs prcdents dans la mme position (l'tat lectrique correspond l'opration 0 1 = 1 )
Si lUAL effectue des additions sur 32 bits, il y aura 32 circuits comme le prcdent, tous relis en
srie pour la propagation de la retenue.
Un exemple d'additionneur sur deux mmoires a et b 2 bits contenant respectivement les nombres 2
et 3 :
Les 4 interrupteurs figurent le passage du courant sur les bits de mme rang des mmoires a=2 et
b=3, le rsultat obtenu est la valeur attendue soit 2+3 = 5.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
30
Notation du circuit additionneur sur 2 bits :
Remarque :
Ce circuit d'addition sur 2 bits engendre en fait en plus des bits de somme un troisime bit de retenue
qui sera gnralement mmoris dans le bit de retenue (bit de carry not C) du mot d'tat programme
ou PSW (Progral Status Word) du processeur. C'est le bit C de ce mot qui est consult par exemple
afin de savoir si l'opration d'addition a gnr un bit de retenu ou non.
3.5 Circuit multiplexeur (circuit combinatoire)
C'est un circuit d'aiguillage comportant 2
n
entres, n lignes de slection et une seule sortie. Les n
lignes de slection permettent de "programmer" le numro de l'entre qui doit tre slectionne pour
sortir sur une seule sortie (un bit). La construction d'un tel circuit ncessite 2
n
circuits "et", n circuits
"non" et 1 circuit "ou".
Notation du multiplexeur :
3.6 Circuit dmultiplexeur (circuit combinatoire)
C'est un circuit qui fonctionne l'inverse du circuit prcdent, il permet d'aiguiller une seule entre
(un bit) sur l'une des 2
n
sorties possibles, selon la "programmation"( l'tat ) de ses n lignes de
slection.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
31
Notation du dmultiplexeur :
3.7 Circuit dcodeur d'adresse (circuit combinatoire)
C'est un circuit compos de n lignes d'entres qui reprsentent une adresse sur n bits et de 2
n
lignes de
sortie possibles dont une seule est slectionne en fonction de la "programmation" des n lignes
d'entres.
Notation du dcodeur d'adresse :
Exemple d'utilisation d'un dcodeur d'adresse 8 bits :
On entre l'adresse de la ligne slectionner soit 10100010 ( A
0
=1 , A
1
= 0, A
2
= 1, , A
7
= 0 ) ce
nombre binaire vaut 162 en dcimal, c'est donc la sortie S
162
qui est active par le composant comme
le montre la figure ci-dessous.
La construction d'un circuit dcodeur d'adresse n bits ncessite 2
n
circuits "et", n circuits "non". Ce
genre de circuits trs frquent dans un ordinateur sert slectionner des registres, des cellules
mmoires ou des lignes de priphriques.
3.8 Circuit comparateur (circuit combinatoire)
C'est un circuit ralisant la comparaison de deux mots X et Y de n bits chacun et sortant une des trois
indication possible X+Y ou bien X>Y ou X<Y. Il possde donc 2n entres et 3 sorties.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
32
Notation du comparateur de mots n bits :
3.9 Circuit bascule (circuit mmoire)
C'est un circuit permettant de mmoriser l'tat de la valeur d'un bit. Les bascules sont les principaux
circuits constituant les registres et les mmoires dans un ordinateur.
Les principaux types de bascules sont RS, JK et D, ce sont des dispositifs chargs de "conserver" la
valeur qu'ils viennent de prendre.
Schma lectronique et notation de bascule RS minimale thorique
notation
Table de vrit associe cette bascule :
R S Qt+dt
1 1 ------
1 0 0
0 1 1
0 0 Qt
Qt reprsente la valeur de la sortie au temps t , Qt+dt
reprsente la valeur de cette mme sortie un peu plus tard au
temps t+dt.
L'tat R=1 et S=1 n'est pas autoris
L'tat R=0 et S=0 fait que Qt+dt = Qt , la sortie Qconserve la
mme valeur au cours du temps, le circuit "mmorise" donc un
bit.
Si l'on veut que le circuit mmorise un bit gal 0 sur sa sortie Q, on applique aux entres les valeurs
R=1 et S=0 au temps t
0
, puis t
0
+dt on applique les valeurs R=0 et S=0. Tant que les entres R et S
restent la valeur 0, la sortie Q conserve la mme valeur (dans l'exemple Q=0).
En pratique ce sont des bascules RS synchronises par des horloges (CLK pour clock) qui sont
utilises, l'horloge sert alors commander l'tat de la bascule. Seule la sortie Q est considre.
Dans une bascule RS synchronise, selon que le top d'horloge change d'tat ou non et selon les
valeurs des entres R et S soit d'un top l'autre la sortie Q du circuit ne change pas soit la valeur du
top d'horloge fait changer (basculer) l'tat de la sortie Q.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
33
Schma lectronique gnral et notation d'une bascule RS synchronise
notation
Remarque
Certains types de mmoires ou les registres dans un ordinateur sont conus avec des variantes de
bascules RS (synchronises) note JK ou D.
Schma lectronique gnral et notation d'une bascule de type D
notation
Fonctionnement pratique d'une telle bascule D dont les entres sont relies entre elles. Supposons que
la valeur de l'entre soit le boolen x (x=0 ou bien x=1) et que l'horloge soit 0.
En simplifiant le schma nous obtenons une autre prsentation faisant apparatre la bascule RS
minimale thorique dcrite ci-haut :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
34
Or la table de vrit de cet lment lorsque les entres sont gales 0 indique que la bascule conserve
l'tat antrieur de la sortie Q:
R S Qt+dt
0 0 Qt
Conclusion pour une bascule D
Lorsque l'horloge est 0, quelque soit la valeur de l'entre D (D=0 ou D=1) une bascule D
conserve la mme valeur sur la sortie Q.
Que se passe-t-il lorsque lors d'un top d'horloge celle-ci passe la valeur 1 ?
Reprenons le schma simplifi prcdent d'une bascule D avec une valeur d'horloge gale 1.
Nous remarquons que sur les entre R et S nous trouvons la valeur x et son complment x , ce qui
limine deux couples de valeurs d'entres sur R et S (R=0 , S=0) et (R=1 , S=1). Nous sommes srs
que le cas d'entres non autoris par un circuit RS (R=1 , S=1) n'a jamais lieu dans une bascule de
type D. Il reste envisager les deux derniers couples (R=0 , S=1) et (R=1 , S=0). Nous figurons ci-
aprs la table de vrit de la sortie Q en fonction de l'entre D de la bascule (l'horloge tant
positionne 1) et pour clairer le lecteur nous avons ajout les deux tats associs des entres
internes R et S :
x R S Q
0 1 0 0
1 0 1 1
Nous remarquons que la sortie Q prend la
valeur de l'entre D (D=x ), elle change donc
d'tat.
Conclusion pour une bascule D
Lorsque l'horloge est 1, quelque soit la valeur de l'entre D (D=0 ou D=1) une bascule D
change et prend sur la sortie Q la valeur de l'entre D.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
35
3.10 Registre (circuit mmoire)
Un registre est un circuit qui permet la mmorisation de n bits en mme temps. Il existe dans un
ordinateur plusieurs varits de registres, les registres parallles, les registres dcalage (dcalage
droite ou dcalage gauche) les registres sries.
Les bascules de type D sont les plus utilises pour construire des registres de diffrents types en
fonction de la disposition des entres et des sorties des bascules : les registres entre srie/sortie
srie, entre srie/sortie parallle, entre parallle/sortie parallle, entre parallle/sortie srie.
Voici un exemple de registre n entres parallles (a
0
,a
1
,,a
n-1
) et n sorties parallles (s
0
,s
1
,,s
n-1
)
construit avec des bascules de type D :
Examinons le fonctionnement de ce "registre parallle n bits"
La ligne CLK fournit le signal d'horloge, la ligne RAZ permet l'effacement de toutes les sorties s
k
du
registre, on dit qu'elle fournit le signal de validation :
Lorsque RAZ = 0 on a (s
0
=0, s
1
=0, , s
n-1
=0)
Lorsque RAZ = 1 on a (s
0
= q
0
, s
1
= q
1
, , s
n-1
= q
n-1
)
Donc RAZ=0 sert effacer tous les bits de sortie du registre, dans le cas o RAZ=1 qu'en est-il des
sorties s
k
. D'une manire gnrale nous avons par construction s
k
= RAZ . q
k
:
- Tant que CLK = 0 alors, comme RAZ=1 nous avons s
k
= q
k
(q
k
est l'tat antrieur de la
bascule). Dans ces conditions on dit que l'on "lit le contenu actuel du registre".
- Lorsque CLK = 1 alors, tous les q
k
basculent et chacun d'eux prend la nouvelle valeur de
son entre a
k
. Comme RAZ=1 nous avons toujours s
k
= q
k
(q
k
est le nouvel tat de la
bascule). Dans ces conditions on dit que l'on vient de "charger le registre" avec une
nouvelle valeur.
Notations des diffrents type de registres :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
36
registre srie/srie
registre srie/parallle
registre parallle/srie registre parallle/parallle
Registre dcalage
C'est un registre entre srie ou parallle qui dcale de 1 bit tous les bits d'entre soit vers "la
droite" (vers les bits de poids faibles), soit vers "la gauche" (vers les bits de poids forts). Un registre
dcalage dans un ordinateur correspond soit une multiplication par 2 dans le cas du dcalage
gauche, soit une division par 2 dans le cas du dcalage droite.
Conclusion mmoire-registre
Nous remarquons donc que les registres en gnral sont des mmoires construites avec des bascules
dans lesquelles on peut lire et crire des informations sous forme de bits. Toutefois ds que la
quantit d'information stocker est trs grande les bascules prennent physiquement trop de place (2
NOR, 2 AND et 1 NON). Actuellement, pour laborer une mmoire stockant de trs grande quantit
d'informations, on utilise une technologie plus compacte que celle des bascules, elle est fonde sur la
reprsentation d'un bit par 1 transistor et 1 condensateur. Le transistor ralise la porte d'entre du bit
et la sortie du bit, le condensateur selon sa charge ralise le stockage du bit.
Malheureusement un condensateur ne conserve pas sa charge au cours du temps (courant de fuite
inhrent au condensateur), il est alors indispensable de restaurer de temps en temps la charge du
condensateur (opration que l'on dnomme rafrachir la mmoire) et cette opration de
rafrachissement mmoire a un cot en temps de ralisation. Ce qui veut donc dire que pour le mme
nombre de bits stocker un registre bascule est plus rapide lire ou crire qu'une mmoire
transistor, c'est pourquoi les mmoires internes des processeurs centraux sont des registres.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
37
3.11 Mmoire SRAM et mmoire DRAM
Dans un ordinateur actuel coexistent deux catgories de mmoires :
1) Les mmoires statiques SRAM labores l'aide de bascules : trs rapides mais volumineuses
(plusieurs transistors pour 1 bit).
2) Les mmoires dynamiques DRAM labores avec un seul transistor coupl un condensateur :
trs facilement intgrables dans une petite surface, mais plus lente que les SRAM cause de la
ncessit du rafrachissement.
Voici titre indicatif des ordres de grandeur qui peuvent varier avec les innovations technologiques
rapides en ce domaine :
SRAM temps d'accs une information : 5 nanosecondes
DRAM temps d'accs une information : 50 nanosecondes
Fonctionnement d'une DRAM de 256 Mo fictive
La mmoire physique aspect extrieur :
Le schma gnral de la mmoire :
Vcc = alimentation lectrique
D1 D8 = bits de donnes (1 octet ici)
Ligne, Colonne = lignes de slection soit d'une adresse de
ligne soit d'une adresse de colonne
W = autorisation d'criture
R = validation de lecture
A0, , A13 = adresse d'une ligne ou adresse d'une colonne
= symbole de mise la masse
Nous adoptons une vision abstraite de l'organisation interne de cette mmoire sous forme d'une
matrice de 2
14
lignes et 2
14
colonnes soient en tout 2
14
. 2
14
= 2
28
cellules de 1 octet chacune (2
28
octets
= 2
8
. 2
20
o = 256 . 2
20
o = 256 Mo, car 1 Mo = 2
20
o)
Ce qui donne une matrice de 16384 lignes et 16384 colonnes, numrotes par exemple de 2
0
= 1
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
38
jusqu' 2
14
= 16384, selon la figure ci-dessous :
Dans l'exemple gauche :
La slection d'une ligne de numro mdonn
(d'adresse m-1 donne) et d'une colonne de
numro k donn (d'adresse k-1 donne) permet
de slectionner directement une cellule
contenant 8 bits.
Exemple de slection de ligne dans la matrice mmoire partir d'une adresse (A0, , A13) , dans
notre exemple thorique la ligne de numro 2
0
= 1 a pour adresse (0,0,,0) et la ligne de numro 2
14
= 16384 a pour adresse (1,1,,1). Lorsque l'adresse de slection d'une ligne arrive sur les pattes (A0,
, A13) de la mmoire elle est range dans un registre interne (not tampon) puis passe un
circuit interne du type dcodeur d'adresse 14 bits (14 entres et 2
14
= 16384 sorties) qui slectionne
la ligne adquate.
Il en va de mme pour la slection d'une colonne :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
39
La slection d'une ligne, puis d'une colonne permet d'obtenir sur les pattes D, D2, , D8 de la puce
les 8 bits slectionns. Ci dessous une slection en mode lecture d'une cellule de notre mmoire de
256 Mo :
Il est possible aussi d'crire dans une cellule de la mmoire selon la mme dmarche de slection.
Pour oprer une lecture il faut que la ligne de validation R de la mmoire soit active, pour oprer
une criture, il faut que la ligne de validation Wde la mmoire soit active.
En attendant une nouvelle technologie (optique, quantique, organique,) les constituants de base
d'un ordinateur sont fonds sur l'lectronique base de transistor dcouverts la fin des annes
quarante. De nos jours deux technologie de transistor sont prsentes sur le march : la technologie
TTL (Transistor Transistor Logic) la plus ancienne et la technologie MOS (Metal Oxyde Semi-
conductor).
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
40
3.12 Afficheur LED 7 segments
On utilise dans les ordinateurs des afficheurs LED, composs de 7 led diffrentes qui sont allumes
indpendamment les unes des autres, un circuit dcodeur 3 bits permet de raliser simplement cet
affichage :
3.13 Compteurs
Ce sont des circuits chargs d'effectuer un comptage cumulatif de divers signaux.
Par exemple considrons un compteur sur 2 bits avec retenue ventuelle, capable d'tre activ ou
dsactiv, permettant de compter les changement d'tat de la ligne d'horloge CLK. Nous proposons
d'utiliser deux demi-additionneurs et deux bascules de type D pour construire le circuit.
Le circuit compteur de gauche possde deux
entres En et CLK, il possde trois sorties a
0
, a
1
et
carry.
Ce compteur sort sur les bits a
0
, a
1
et sur le bit de
carry le nombre de changements en binaire de la
ligne CLK (maximum 4 pour 2 bits) avec retenue
s'il y a lieu.
La ligne d'entre En est charge d'activer ou de
dsactiver le compteur
Notation pour ce compteur :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
41
Fonctionnement de l'entre En (enable) du compteur prcdent :
- Lorsque En = 0, sur la premire bascule en entre D nous avons D = a
0
0 (or nous
savons que : x, x 0 = x ), donc D = a
0
et Q ne change pas de valeur. Il en est de mme
pour la deuxime bascule et son entre D vaut a
1
. Donc quoiqu'il se passe sur la ligne
CLK les sorties a
0
et a
1
ne changent pas, on peut donc dire que le comptage est dsactiv
lorsque le enable est zro.
- Lorsque En = 1, sur la premire bascule en entre D nous avons D = a
0
1 (or nous
savons que : x, x 1 = x ), donc Q change de valeur. On peut donc dire que le
comptage est activ lorsque le enable est un.
Utilisons la notation du demi-additionneur pour reprsenter ce compteur 2 bits :
un demi-additionneur
le compteur 2 bits
En gnralisant la notion de compteur n bits nous obtenons le schma ci-aprs :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
42
3.14 Ralisation lectronique de circuits boolens
Dans ce paragraphe nous indiquons pour information anecdotique au lecteur, partir de quelques
exemples de schmas lectroniques de base, les ralisation physiques possibles de diffrents
oprateurs de l'algbre de Boole.
Le transistor est principalement utilis comme un interrupteur lectronique, nous utiliserons les
schmas suivants reprsentant un transistor soit en TTL ou MOS et une diode.
Circuits (ET, OU , NON) labors partir de diodes :
NON
OU
ET
Circuits (NOR, NAND , NON) labors partir de transistor MOS :
NON
NAND
NOR
Ce sont en fait la place occupe par les composants lectroniques et leur cot de production qui sont
les facteurs essentiels de choix pour la construction des oprateurs logiques de base.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
43
Voici par exemple une autre faon de construire une circuit NOR partir de transistor et de diodes :
Le lecteur intress consultera des ouvrages d'lectronique spcialiss afin d'approfondir ce domaine
qui dpasse le champ de l'informatique qui n'est qu'une simple utilisatrice de la technologie
lectronique en attendant mieux !
Finissons ce paragraphe, afin de bien fixer nos ides, par un schma montrant comment dans une
puce lectronique sont situs les circuits boolens :
Supposons que la puce prcdente permette de raliser plusieurs fonctions et contienne par exemple
4 circuits boolens : un OU, un ET, deux NON. Voici figur une possible implantation physique de
ces 4 circuits dans la puce, ainsi que la liaison de chaque circuit boolen avec les pattes du composant
physique :
Pour information, le micro-processeur pentium IV Northwood de la socit Intel contient environ 55
000 000 (55 millions) de tansistors, le micro-processeur 64 bits Opteron de la socit concurrente
AMD plus rcent que le pentium IV, contient 105 000 000 (105 millions) de transistor.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
44
1.3 Codage numration
Plan du chapitre:
1. Codage de linformation
1.1 Codage en gnral : le pourquoi
1.2 Codage des caractres : code ASCII
1.3 Codage des nombres entiers : numration
1.4 Les entiers dans une mmoire n+1 bits
1.5 Codage des nombres entiers
1.6 Un autre codage des nombres entiers
2. Numration
2.1 Oprations en binaire
2.2 Conversions base quelconque dcimal
2.3 Exemple de conversion dcimal binaire
2.4 Exemple de conversion binaire dcimal
2.5 Conversion binaire hexadcimal
2.6 Conversion hexadcimal binaire
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
45
1. Codage de linformation
1.1 Codage en gnral : le pourquoi
Dans une machine, toutes les informations sont codes sous forme d'une suite de "0" et de "1"
(langage binaire). Mais l'tre humain ne parle gnralement pas couramment le langage
binaire.
Il doit donc tout "traduire" pour que la machine puisse excuter les instructions relatives aux
informations qu'on peut lui donner.
Le codage tant une opration purement humaine, il faut produire des algorithmes qui
permettront la machine de traduire les informations que nous voulons lui voir traiter.
Le codage est une opration tablissant une bijection entre une information et une suite de " 0 " et
de " 1 " qui sont reprsentables en machine.
1.2 Codage des caractres : code ASCII
Parmi les codages les plus connus et utiliss, le codage ASCII (American Standard Code for
Information Interchange)tendu est le plus courant (version ANSI sur Windows).
Voyons quelles sont les ncessits minimales pour lcriture de documents alphanumriques simples
dans la civilisation occidentale. Nous avons besoin de :
Un alphabet de lettres minuscules ={a, b, c,...,z}
soient 26 caractres
Un alphabet de lettres majuscules ={A,B,C,...,Z}
soient 26 caractres
Des chiffres {0,1,...,9}
soient 10 caractres
Des symboles syntaxiques {? , ; ( " ...
au minimum 10 caractres
Soit un total minimal de 72 caractres
Si lon avait choisi un code 6 bits le nombre de caractres codables aurait t de 2
6
= 64 ( tous les
nombres binaires compris entre 000000 et 111111), nombre donc insuffisant pour nos besoins.
Il faut au minimum 1 bit de plus, ce qui permet de dfinir ainsi 2
7
= 128 nombres binaires diffrents,
autorisant alors le codage de 128 caractres.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
46
Initialement le code ASCII est un code 7 bits (2
7
= 128 caractres). Il a t tendu un code sur 8
bits ( 2
8
= 256 caractres ) permettant le codage des caractres nationaux (en France les caractres
accentus comme : ,,,,,...etc) et les caractres semi-graphiques.
Les pages HTML qui sont diffuses sur le rseau Internet sont en code ASCII 8 bits.
Un codage rcent dit " universel " est en cours de diffusion : il sagit du codage Unicode sur 16 bits
(2
16
= 65536 caractres).
De nombreux autres codages existent adapts diverses solution de stockage de linformation (DCB,
EBCDIC,...).
1.3 Codage des nombres entiers : numration
Les nombres entiers peuvent tre cods comme des caractres ordinaires. Toutefois les codages
adopts pour les donnes autres que numriques sont trop lourds manipuler dans un ordinateur. Du
fait de sa constitution, un ordinateur est plus " habile " manipuler des nombres crits en numration
binaire (qui est un codage particulier).
Nous allons dcrire trois modes de codage des entiers les plus connus.
Nous avons lhabitude dcrire nos nombres et de calculer dans le systme dcimal. Il sagit en fait
dun cas particulier de numration en base 10.
Il est possible de reprsenter tous les nombres dans un systme base b (b entier, b1). Nous ne
prsenterons pas ici un cours darithmtique, mais seulement les lments ncessaires lcriture
dans les deux systmes les plus utiliss en informatique : le binaire (b=2) et lhexadcimal (b=16).
Lorsque nous crivons 5876 en base 10, la position des chiffres 5,8,7,6 indique la puissance de 10
laquelle ils sont associs :
5 est associ 10
3
8 est associ 10
2
7 est associ 10
1
6 est associ 10
0
Il en est de mme dans une base b quelconque (b=2, ou b=16). Nous conviendrons de mentionner la
valeur de la base au dessus du nombre afin de savoir quel est son type de reprsentation.
Soit un nombre x crit en base b avec n+1 symboles.
" x
k
" est le symbole associ la puissance " b
k
"
" x
k
" {0,1, ... , b-1}
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
47
Lorsque b=2 (numration binaire)
Chaque symbole du nombre x, " x
k
" {0,1}; autrement dit les nombres binaires sont donc crits
avec des 0 et des 1, qui sont reprsents physiquement par des bits dans la machine.
Voici le schma dune mmoire n+1 bits (au minimum 8 bits dans un micro-ordinateur) :
Les cases du schma reprsentent les bits, le chiffre marqu en dessous dune case, indique la
puissance de 2 laquelle est associ ce bit (on dit aussi le rang du bit).
Le bit de rang 0 est appel le bit de poids faible.
Le bit de rang n est appel le bit de poids fort.
1.4 Les entiers dans une mmoire n+1 bits : binaire pur
Ce codage est celui dans lequel les nombres entiers naturels sont crits en numration binaire (en
base b=2).
Le nombre " dix " scrit 10 en base b=10, il scrit 1010 en base b=2. Dans la mmoire ce nombre
dix est cod en binaire ainsi:
Une mmoire n+1 bits (n>0), permet de reprsenter sous forme binaire (en binaire pur) tous les
entiers naturels de l'intervalle [ 0 , 2
n+1
-1 ].
soit pour n+1=8 bits, tous les entiers de l'intervalle [ 0 , 255 ]
soit pour n+1=16 bits, tous les entiers de l'intervalle [ 0 , 65535 ]
1.5 Codage des nombres entiers : binaire sign
Ce codage permet la reprsentation des nombres entiers relatifs.
Dans la reprsentation en binaire sign, le bit de poids fort ( bit de rang n associ 2
n
) sert
reprsenter le signe (0 pour un entier positif et 1 pour un entier ngatif), les n autres bits reprsentent
la valeur absolue du nombre en binaire pur.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
48
Exemple du codage en binaire sign des nombres +14 et -14 :
+14 est reprsent par 0000...01110 -14 est reprsent par 1000...01110
Une mmoire n+1 bits (n>0), permet de reprsenter sous forme binaire (en binaire sign) tous les
entiers naturels de l'intervalle [- (2
n
- 1) , (2
n
-1)]
soit pour n+1=8 bits, tous les entiers de l'intervalle [-127 , 127]
soit pour n+1=16 bits, tous les entiers de l'intervalle [-32767 , 32767]
Le nombre zro est reprsent dans cette convention (dites du zro positif) par : 0000...00000
Remarque : Il reste malgr tout une configuration mmoire inutilise : 1000...00000. Cet tat
binaire ne reprsente priori aucun nombre entier ni positif ni ngatif de lintervalle [- (2
n
- 1)
, (2
n
-1)]. Afin de ne pas perdre inutilement la configuration " 1000...00000 ", les
informaticiens ont dcid que cette configuration reprsente malgr tout un nombre ngatif
parce que le bit de signe est 1, et en mme temps la puissance du bit contenant le "1", donc
par convention -2
n
.
Lintervalle de reprsentation se trouve alors augment dun nombre :
il devient :[-2
n
,2
n
-1]
soit pour n+1=8 bits, tous les entiers de l'intervalle [-128 , 127]
soit pour n+1=16 bits, tous les entiers de l'intervalle [-32768 , 32767]
Ce codage nest pas utilis tel quel, il est donn ici titre pdagogique. En effet le traitement
spcifique du signe cote cher en circuits lectroniques et en temps de calcul. Cest une version
amliore qui est utilise dans la plupart des calculateurs : elle se nomme le complment deux.
1.6 Un autre codage des nombres entiers : complment deux
Ce codage, purement conventionnel et trs utilis de nos jours, est driv du binaire sign ; il sert
reprsenter en mmoire les entiers relatifs.
Comme dans le binaire sign, la mmoire est divise en deux parties ingales; le bit de poids fort
reprsentant le signe, le reste reprsente la valeur absolue avec le codage suivant :
Supposons que la mmoire soit n+1 bits, soit x un entier relatif reprsenter :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
49
si x > 0, alors c'est la convention en binaire sign qui s'applique (le bit de signe vaut 0, les n bits
restants codent le nombre), soit pour le nombre +14 :
+14 est reprsent par 0000...01110
si x < 0, alors (3 tapes suivre)
On code la valeur absolue du nombre x, |x| en binaire sign.
Puis lon complmente tous les bits de la mmoire (complment 1 ou complment restreint).
Cette opration est un non logique effectu sur chaque bit de la mmoire.
Enfin lon additionne +1 au nombre binaire de la mmoire (addition binaire).
Exemple, soit reprsenter le nombre -14 en suivant les 3 tapes :
codage de |-14|= 14
complment 1
addition de 1
Le nombre -14 s'crit donc en complment 2 : 1111..10010.
Un des intrts majeurs de ce codage est dintgrer la soustraction dans lopration de codage et de
ne faire effectuer que des oprations simples et rapides (non logique, addition de 1).
Nous venons de voir que le codage utilisait essentiellement la reprsentation d'un nombre en binaire
(la numration binaire) et qu'il fallait connatre les rudiments de l'arithmtique binaire. Le paragraphe
ci-aprs traite de ce sujet.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
50
2. Numration
Ce paragraphe peut tre ignor par ceux qui connaissent dj les lments de base des calculs en
binaire et des conversions binaire-dcimal-hexadcimal, dans le cas contraire, il est conseill de le
lire.
Pour des commodits d'criture, nous utilisons la notation indice pour reprsenter la base d'un
nombre en parallle de la reprsentation avec la barre au dessus. Ainsi 145
10
signifie le nombre 145
en base dix; 1101011
2
signifie 1101011 en binaire.
2.1 Oprations en binaire
Nous avons parl daddition en binaire ; comme dans le systme dcimal, il nous faut connatre les
tables daddition, de multiplication, etc... afin deffectuer des calculs dans cette base. Heureusement
en binaire, elles sont trs simples :
Exemples de calculs (109+19=128
10
=10000000
2
) et (22x5=110) :
addition multiplication
1101101
+ 10011
_____________
10000000
2
=128
10
10110
x 101
____________
10110
10110..
___________
1101110
2
=110
10
Vous noterez que le procd est identique celui que vous connaissez en dcimal. En hexadcimal
(b=16) il en est de mme. Dans ce cas les tables doprateurs sont trs longues apprendre.
Etant donn que le systme classique utilis par chacun de nous est le systme dcimal, nous nous
proposons de fournir dune manire pratique les conversions usuelles permettant d'crire les diverses
reprsentations dun nombre entre les systmes dcimal, binaire et hexadcimal.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
51
2.2 Conversions base quelconque dcimal
Voici ci-dessous un rappel des mthodes gnrales permettant de convertir un nombre en base b
(b>1)en sa reprsentation dcimale et rciproquement.
A ) Soit un nombre crit en base b.
Pour le convertir en dcimal (base 10), il faut :
convertir chaque symbole x
k
en son quivalent a
k
en base 10, nous obtenons ainsi la suite de
chiffres : a
n
,....,a
0
Exemple, soit b=13, les symboles de la base 13 sont : { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C }
Si le chiffre x
k
de rang k du nombre s'crit C, son quivalent en base 10 est a
k
=12
rcrire le nombre comme une somme :
effectuer tous les calculs en base 10 (somme, produit, puissance).
B ) Soit " a " un nombre crit dcimal et reprsenter en base b :
La mthode utilise est un algorithme fond sur la division euclidienne.
Si a < b, il n'a pas besoin d'tre converti.
Si a = b, on peut diviser a par b. Et lon divise successivement les diffrents quotients q
k
obtenus
par la base b.
De manire gnrale on aura :
a = b
k
.r
k
+ b
k-1
.r
k-1
+ ... + b.r
1
+ r
0
(o r
i
est le reste de la division de a par b).
En remplaant chaque r
i
par son symbole quivalent p
i
en base b, nous obtenons :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
52
Cet algorithme permet d'obtenir une reprsentation de a dans la base b.
Les p
i
quivalents en base 13 sont:
r
0
= 8 p
0
= 8
r
1
= 11 p
1
= B
r
2
= 10 p
2
= A
r
3
= 2 p
3
= 2 Donc 6235
10
= 2AB8
13
Dans les deux paragraphes suivants nous allons expliciter des exemples pratiques de ces mthodes
dans le cas o la base est 2 (binaire).
2.3 Exemple de conversion dcimal binaire
Soit le nombre dcimal 35
10
, appliquons l'algorithme prcdent afin de trouver les restes successifs :
Donc : 35
10
= 100011
2
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
53
2.4 Exemple de conversion binaire dcimal
Soit le nombre binaire : 1101101
2
sa conversion en dcimal est immdiate :
1101101
2
= 2
6
+2
5
+2
3
+2
3
+2
2
+1 =64+32+8+4+1 =109
10
Les informaticiens, pour des raisons de commodit (manipulations minimales de symboles),
prfrent utiliser lhexadcimal plutt que le binaire. Lhumain, contrairement la machine, a
quelques difficults fonctionner sur des suites importantes de 1 et de 0. Ainsi lhexadcimal (sa
base b=2
4
tant une puissance de 2) permet de diviser, en moyenne, le nombre de symboles par
un peu moins de 4 par rapport au mme nombre crit en binaire. Cest lunique raison pratique
qui justifie son utilisation ici.
2.5 Conversion binaire hexadcimal
Nous allons dtailler laction de conversion en 6 tapes pratiques :
Soit a un nombre crit en base 2 (tape 1).
On dcompose ce nombre par tranches de 4 bits partir du bit de poids faible (tape 2).
On complte la dernire tranche (celle des bits de poids forts)par des 0 sil y a lieu (tape 3).
On convertit chaque tranche en son symbole de la base 16(tape 4).
On rcrit sa place le nouveau symbole par changements successifs de chaque groupe de 4
bits,(tape 5).
Ainsi, on obtient le nombre crit en hexadcimal (tape 6).
Exemple :
Soit le nombre 111101
2
convertir en hxadcimal.
Rsultat obtenu :
111101
2
= 3D
16
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
54
2.6 Conversion hexadcimal binaire
Cette conversion est lopration inverse de la prcdente. Nous allons la dtailler en 4 tapes :
Soit a un nombre crit en base 16 (ETAPE 1).
On convertit chaque symbole hexadcimal du nombre en son criture binaire (ncessitant au plus
4 bits) (ETAPE 2).
Pour chaque tranche de 4 bits, on complte les bits de poids fort par des 0 s'il y a lieu (ETAPE 3).
Le nombre " a " crit en binaire est obtenu en regroupant toutes les tranches de 4 bits partir du
bit de poids faible, sous forme dun seul nombre binaire(ETAPE 4).
Exemple :
Soit le nombre 23D5
16
convertir en binaire.
Rsultat obtenu :
23D5
16
= 10001111010101
2
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
55
1.4 Formalisation de la notion
d'ordinateur
Plan du chapitre:
1. Machine de Turing thorique
1.1 Dfinition : machine de Turing
1.2 Dfinition : Etats de la machine
1.3 Dfinition : Les rgles de la machine
2. La Machine de Turing physique
2.1 Constitution interne
2.2 Fonctionnement
2.3 Exemple : machine de Turing arithmtique
2.4 Machine de Turing informatique
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
56
1. La Machine de Turing thorique
Entre 1930 et 1936 le mathmaticien anglais A.Turing invente sur le papier une machine fictive qui
ne pouvait effectuer que 4 oprations lmentaires que nous allons dcrire. Un des buts de Turing
tait de faire rsoudre par cette " machine " des problmes mathmatiques, et dtudier la classe des
problmes que cette machine pourrait rsoudre.
Dfinitions et notations (modle dterministe)
Soit A un ensemble fini appel alphabet dfini ainsi :
A = { a
1
,..., a
n
} ( A = C )
Soit O = { D,G } une paire
1.1 Dfinition : machine de Turing
Nous appellerons machine de Turing toute application T :
T : E N x ( O A)
o E est un ensemble fini non vide : E c N x A
1.2 Dfinition : Etats de la machine
Nous appellerons E
t
ensemble des tats intrieurs de la machine T:
E
t
= { q
i
e N , (-a
i
e A / (q
i
,a
i
) e Dom(T)) o (- x e O / (q
i
, x) e Im(T)) }
Dom(T) : domaine de dfinition de T.
Im(T) : image de T (les lments T(a) de N x ( O A), pour a e E)
Comme E est un ensemble fini, E
t
est ncessairement un ensemble fini, donc il y a un nombre fini
dtats intrieurs nots q
i
.
1.3 Dfinition : Les rgles de la machine
Nous appellerons " ensemble des rgles " de la machine T, le graphe G de lapplication T. Une rgle
de T est un lment du graphe G de T.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
57
On rappelle que le graphe de T est dfini comme suit :
G = {(a,b) e E x [E
t
x ( O A)] / b = T(a) }
- Notation : afin dviter une certaine lourdeur dans lcriture nous conviendrons dcrire les
rgles en omettant les virgules et les parenthses.
- Exemple : la rgle ( (q
i
,a) , (q
k
,b) ) est note : q
i
a q
k
b
2. La Machine de Turing physique
2.1 Constitution interne
Nous construisons une machine de Turing physique constitue de :
- Une bote note UC munie dune tte de lecture-criture et dun registre dtat.
- Un ruban de papier suppos sans limite vers la gauche et vers la droite.
- Sur le ruban se trouvent des cases contigus contenant chacune un seul lment de lalphabet
A.
- La tte de lecture-criture travaille sur la case du ruban situe devant elle ; elle peut lire le
contenu de cette case ou effacer ce contenu et y crire un autre lment de A.
- Il existe un dispositif dentranement permettant de dplacer la tte de lecture-criture dune
case vers la Droite ou vers la Gauche.
- Dans la tte lecture-criture il existe une case spciale note registre dtat, qui sert recevoir
un lment q
i
de E
t
.
Cette machine physique est une reprsentation virtuelle d'une machine de Turing thorique T,
d'alphabet A, dont l'ensemble des tats est E
t
, dont le graphe est donn ci-aprs :
G = {(a,b) e E x [E
t
x ( O A)] / b = T(a) }
Donnons une visualisation schmatique d'une telle machine en cours de fonctionnement. La tte de
lecture/criture pointe vers une case contenant l'lment a
i
de A, le registre d'tat ayant la valeur q
k
:
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
58
2.2 Fonctionnement
Dpart :
On remplit les cases du ruban dlments a
i
de A.
On met la valeur " q
k
" dans le registre dtat.
On positionne la tte sur une case contenant " a
i
".
Actions : (la machine se met en marche)
La tte lit le " a
i
". LUC dont le registre dtat vaut " q
k
", cherche dans la liste des rgles si le couple
(q
k
, a
i
) e Dom(T).
Si la rponse est ngative on dit que la machine " bloque " (elle sarrte par blocage).
Si la rponse est positive alors le couple (q
k
, a
i
) a une image unique (machine dterministe)que nous
notons (q
n
, y). Dans ce couple, y ne peut prendre que l'un des 3 types de valeurs possibles a
p
, D , G :
- a) soit y=a
p
, dans ce cas la rgle est donc de la forme q
k
a
i
q
n
a
p
a.1) LUC fait effacer le a
i
dans la case et le
remplace par llment a
p
.
a.2) LUC crit q
n
dans le registre dtat en
remplacement de la valeur q
k
.
- b) soit y = D , ici la rgle est donc de la forme q
k
a
i
q
n
D
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
59
b.1) LUC fait dplacer la tte vers la droite dune
case.
b.2) LUC crit q
n
dans le registre dtat en
remplacement de la valeur q
k
.
- c) soit y = G , dans ce cas la rgle est donc de la forme q
k
a
i
q
n
G
c.1) LUC fait dplacer la tte vers la gauche
d'une case.
c.2) LUC crit q
n
dans le registre dtat en
remplacement de la valeur q
k
.
Puis la machine continue fonctionner en recommenant le cycle des actions depuis le dbut : lecture
du nouvel lment a
k
etc...
2.3 Exemple : machine de Turing arithmtique
Nous donnons ci-dessous une machine T
1
additionneuse en arithmtique unaire.
A = {#,1}
O ={D,G}
un entier n est reprsent par n+1 symboles " 1 " conscutifs (de faon pouvoir reprsenter " 0 " par
un unique " 1 ").
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
60
Etat initial du ruban avant actions :
2 3
2 est reprsent par 111
3 est reprsent par 1111
Rgles T
1
: (application des rgles suivantes pour simulation de 2+3)
q
1
1 q
2
D q
6
1 q
7
D q
11
1 q
12
#
q
2
1 q
3
D q
7
1 q
8
D q
12
# q
13
G
q
3
1 q
4
D q
8
1 q
9
D q
13
1 q
14
#
q
4
# q
5
1 q
9
1 q
10
D
q
5
1 q
6
D q
10
# q
11
G
En dmarrant la machine sur la configuration prcdente on obtient :
Etat final du ruban aprs actions : (Cette machine ne fonctionne que pour additionner 2 et 3)
. 5 .
.
Gnralisation de la machine additionneuse
Il est facile de fournir une autre version plus gnrale T
2
fonde sur la mme stratgie et le mme tat
initial permettant d'additionner non plus seulement les nombres 2 et 3, mais des nombres entiers
quelconques n et p. Il suffit de construire des nouvelles rgles.
Rgles de T
2
:
q
1
1 q
1
D q
3
1 q
3
#
q
1
# q
2
1 q
3
# q
4
G
q
2
1 q
2
D q
4
1 q
5
#
q
2
# q
3
G
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
61
Cette machine de Turing T
2
applique l'exemple prcdent (addition de 2 et 3) laisse le ruban dans
le mme tat final, mais elle est construite avec moins dtats intrieurs que la prcdente.
En fait elle fonctionne aussi si la tte de lecture-criture est positionne sur nimporte lequel des
lments du premier nombre n. et les nombres n et p sont quelconques :
Etat initial sur le nombre de gauche
Etat final la fin du nombre calcul (il y a n+p+1 symboles " 1 ")
Nous dirons que T
2
est plus " puissante " que T
1
au sens suivant :
- T
2
a moins dtats intrieurs que T
1
.
- T
2
permet dadditionner des entiers quelconques.
- Il est possible de dmarrer ltat initial sur nimporte lequel des " 1 " du nombre de gauche.
On pourrait toujours en ce sens chercher une machine T
3
qui possderait les qualits de T
2
, mais qui
pourrait dmarrer sur nimporte lequel des " 1 " de lun ou lautre des deux nombres n ou p, le lecteur
est encourag chercher crire les rgles d'une telle machine.
Nous voyons que ces machines sont capables deffectuer des oprations, elles permettent de dfinir la
classe des fonctions calculables (par machines de Turing).
Un ordinateur est fond sur les principes de calcul dune machine de Turing. J. Von Neumann a
dfini la structure gnrale dun ordinateur partir des travaux de A.Turing. Les lments physiques
supplmentaires que possde un ordinateur moderne naugmentent pas sa puissance thorique. Les
fonctions calculables sont les seules que lon puisse implanter sur un ordinateur. Les priphriques et
autres dispositifs auxiliaires extrieurs ou intrieurs nont pour effet que damliorer la " puissance "
en terme de vitesse et de capacit. Comme une petite voiture de srie et un bolide de formule 1
partagent les mmes concepts de motorisation, de la mme manire les diffrents ordinateurs du
march partagent les mmes fondements mathmatiques.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
62
2.4 Machine de Turing informatique
Nous faisons voluer la reprsentation que nous avons de la machine de Turing afin de pouvoir
mieux la programmer, c'est dire pouvoir crire plus facilement les rgles de fonctionnement d'une
telle machine.
Nous dfinissons ce qu'est un algorithme pour une machine de Turing et nous proposons une
description graphique de cet algorithme l'aide de schmas graphiques symboliques dcrivant des
actions de base d'une machine de Turing.
A) Une machine de Turing informatique est dite normalise au sens suivant :
- Lalphabet A contient toujours le symbole " # "
- Lensemble des tats E contient toujours deux tats distingus q
0
(tat initial) et q
f
(tat final).
- La machine dmarre toujours ltat initial q
0
.
- Elle termine sans blocage toujours ltat q
f
.
- Dans les autres cas on dit que la machine " bloque ".
B)Algorithme dune machine de Turing informatique
Cest lensemble des rgles prcises qui dfinissent un procd de calcul destin obtenir en sortie
un " rsultat " dtermin partir de certaines " donnes " initiales.
C) Algorithme graphique dune machine de Turing
Nous utilisons cinq classes de symboles graphiques
Positionne la tte de lecture sur le
symbole voulu, met la machine ltat
initial q
0
et fait dmarrer la machine.
Signifie que la machine termine
correctement son calcul en sarrtant
ltat final q
f
.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
63
Aucune rgle de la machine ne permettant
la poursuite du fonctionnement, arrt de
la machine sur un blocage.
Dplacer la tte dune case vers la gauche
(la tte de lecture se positionne sur la case
davant la case actuelle contenant le
symbole a
p
).
Correspond la rgle :
q
i
a
p
q
j
G
Correspond laction excuter dans la deuxime partie de la
rgle :
q
i
a
p
q
j
a
k
(la machine crit a
k
dans la case actuelle et passe ltat q
j
).
Correspond laction excuter dans la premire
partie de la rgle :
q
j
a
k
...
ou q
i
# ...
(la machine teste le contenu de la case actuelle et
passe ltat q
j
ou ltat q
i
selon la valeur du
contenu).
D) Organigramme dune machine de Turing
On appelle organigramme dune machine de Turing T, toute reprsentation graphique constitue de
combinaisons des symboles des cinq classes prcdentes.
Les rgles de la forme q
n
a
k
q
n
Gou q
n
a
k
q
n
Dse traduisent par des schmas " boucls " ce qui
donne des organigrammes non linaires.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
64
diagramme pour :q
0
a q
0
G diagramme pour :q
0
a q
0
D
Exemple : organigramme de la machine T
2
normalise(additionneuse n+p)
Rgles de T
2
normalise :
q
0
1 q
0
D q
2
1 q
2
#
q
0
# q
1
1 q
2
# q
3
G
q
1
1 q
1
D q
3
1 q
f
#
q
1
# q
2
G
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
65
Nous voyons que ce symbolisme graphique est un outil de description du mode de traitement de
linformation au niveau machine. Cest dailleurs historiquement dune faon semblable que les
premiers programmeurs dcrivaient leur programmes.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
66
1.5 Architecture de l'ordinateur
Plan du chapitre:
Les principaux constituants
1.1 Dans lUnit Centrale : lunit de traitement
1.2 Dans lUnit Centrale : lunit de commande
1.3 Dans lUnit Centrale : les Units dchange
1.4 Exemples de machine une adresse : un micro-processeur simple
1.5 Les Bus
1.6 Schma gnral dune micro-machine fictive
1.7 Notion de jeu dinstructions-machine
1.8 Architectures RISC et CISC
1.9 Pipe line dans un processeur
1.10 Architectures super-scalaire
1.11 Principaux modes d'adressages des instructions machines
2. Mmoires : Mmoire centrale - Mmoire cache
2.1 Mmoire
2.2 Les diffrents types de mmoires
2.3 Les units de capacit
2.4 Mmoire centrale : dfinitions
2.5 Mmoire centrale : caractristiques
2.6 Mmoire cache ( ECC, associative )
3. Une petite machine pdagogique 8 bits " PM "
3.1 Unit centrale de PM (pico-machine)
3.2 Mmoire centrale de PM
3.3 Jeu dinstructions de PM
4. Mmoire de masse (auxiliaire ou externe)
4.1 Disques magntiques - disques durs
4.2 Disques optiques compacts - CD / DVD
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
67
1. Les principaux constituants d'une machine minimale
Un ordinateur, nous lavons dj not, est compos dun centre et dune priphrie. Nous allons nous
intresser au cur dun ordinateur fictif mono-processeur. Nous savons que celui-ci est compos de :
Une Unit centrale comportant :
Unit de traitement,
Unit de contrle,
Units dchanges.
Une Mmoire Centrale.
Nous dcrivons ci-aprs l'architecture minimale illustrant simplement le fonctionnement d'un
ordinateur (machine de Von Neumann).
1.1 Dans lUnit Centrale : lUnit de Traitement
Elle est charge deffectuer les traitements des oprations de types arithmtiques ou boolennes.
LUAL est son principal constituant.
Elle est compose au minimum :
dun registre de donnes RD
dun accumulateur ACC (pour les machines une adresse)
des registres spcialiss (pour les machines plusieurs adresses)
dune unit arithmtique et logique : UAL
Schma gnral thorique de lunit de traitement :
machine une adresse
machine plusieurs adresses
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
68
La fonction du registre de donnes (mmoire rapide) est de contenir les donnes transitant entre
lunit de traitement et lextrieur.
La fonction de laccumulateur est principalement de contenir les oprandes ou les rsultats des
oprations de lUAL.
La fonction de lUAL est deffectuer en binaire les traitements des oprations qui lui sont soumises et
qui sont au minimum:
Oprations arithmtiques binaires: addition,multiplication, soustraction, division.
Oprations boolennes : et, ou, non.
Dcalages dans un registre.
Le rsultat de lopration est mis dans laccumulateur (Acc) dans le cas d'une machine une adresse,
dans des registres internes dans le cas de plusieurs adresses.
1.2 Dans lUnit Centrale : lUnit de Contrle ou de Commande
Elle est charge de commander et de grer tous les diffrents constituants de lordinateur (contrler
les changes, grer lenchanement des diffrentes instructions, etc...)
Elle est compose au minimum de :
dun registre instruction RI,
dun compteur ordinal CO,
dun registre adresse RA,
dun dcodeur de fonctions,
dune horloge.
Schma gnral de lunit de contrle
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
69
Vocabulaire :
Bit = plus petite unit dinformation binaire (un objet physique ayant deux tats
reprsente un bit).
Processeur central = unit de commande + unit de traitement. IL a pour
fonction de lire squentiellement les instructions prsentes dans la mmoire, de
dcoder une instruction, de lire, crire et traiter les donnes situes dans la
mmoire.
Instruction = une ligne de texte comportant un code opration, une ou plusieurs
rfrences aux oprandes.
Soit linstruction fictive daddition du contenu des deux mmoires x et y dont le rsultat est mis dans
une troisime mmoire z :
(exemple d'instruction trois adresses)
| Oprateur | rfrences oprandes |
Registre instruction = contient linstruction en cours dexcution, elle demeure
dans ce registre pendant toute la dure de son excution.
Compteur ordinal = contient le moyen de calculer ladresse de la prochaine
instruction excuter.
Registre adresse = contient ladresse de la prochaine instruction excuter.
Dcodeur de fonction = associ au registre instruction, il analyse linstruction
excuter et entreprend les actions appropries dans lUAL ou dans la mmoire
centrale.
Au dbut, la diffrentiation des processeurs s'effectuait en fonction du nombre d'adresses contenues
dans une instruction machine. De nos jours, un micro-processeur comme le pentium par exemple,
possde des instructions une adresse, deux adresses, voir trois adresses dont certaines sont des
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
70
registres. En fait deux architectures machines coexistent sur le march : l'architecture RISC et
l'architecture CISC, sur lesquelles nous reviendrons plus loin. Historiquement l'architecture CISC est
la premire, mais les micro-processeur rcents semblent utiliser un mlange de ces deux architectures
profitant ainsi du meilleur de chacune d'elle.
Il existe de trs bons ouvrages spcialiss uniquement dans l'architecture des ordinateurs nous
renvoyons le lecteur certains d'entre eux cits dans la bibliographie. Dans ce chapitre notre objectif
est de fournir au lecteur le vocabulaire et les concepts de bases qui lui sont ncessaires et utiles sur le
domaine, ainsi que les notions fondamentales qu'il retrouvera dans les architectures de machines
rcentes. L'volution matrielle est actuellement tellement rapide que les ouvrages spcialiss sont
mis jour en moyenne tous les deux ans.
1.3 Dans lUnit Centrale : les Units dchange
Une unit dchange est spcialise dans les entres/sorties.
Ce peut tre un simple canal, un circuit ou bien un processeur particulier.
Cet organe est plac entre la mmoire et un certain nombre de priphriques (dans un micro-
ordinateur ce sont des cartes comme la carte son, la carte vido, etc...).
Une unit dchange soulage le processeur central dans les tches de gestion du transfert de
linformation.
Les priphriques sont trs lents par rapport la vitesse du processeur (rapport de 1 10
9
). Si le
processeur central tait charg de grer les changes avec les priphriques il serait tellement ralenti
quil passerait le plus clair de son temps attendre.
1.4 Exemple de machine une adresse : un micro-processeur simple
Un micro-processeur simple a les mmes caractristiques que celles dun processeur central avec un
niveau de complexit et de sophistication moindre. Il faut savoir que plus une instruction machine
contient d'adresses (de rfrences des oprandes), plus le processeur est complexe. En effet avec les
instructions une adresse, le processeur est moins complexe en contre partie les programmes (listes
d'instructions machines) contiennent beaucoup d'instructions et sont donc plus longs excuter que
sur un matriel dont le jeu d'instruction est plusieurs adressses.
Un micro-processeur simple est essentiellement une machine une adresse, cest dire une partie
code oprande et une rfrence un seul oprande. Ce genre de machine est fond sur un cycle de
passage par laccumulateur.
Lopration prcdente z = x + y , se dcompose dans une telle machine fictivement en 3 oprations
distinctes illustres par la figure ci-aprs :
LoadAcc x { chargement de laccumulateur avec x : (1) }
Add y { prparation des oprandes x et y vers lUAL : (2) }
{ lancement commande de lopration dans lUAL : (3) }
{ rsultat transfr dans laccumulateur : (3) }
Store z { copie de laccumulateur dans z : (4) }
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
71
Laccumulateur gardant son contenu au final.
Comparaison de "programme" ralisant le calcul de l'opration prcdente "z = x + y "avec une
machine une adresse et une machine trois adresses :
Une machine une adresse
(3 instructions)
Une machine trois adresses
(1 instruction)
1.5 Les Bus
Un bus est un dispositif destin assurer le transfert simultan dinformations entre les divers
composants dun ordinateur.
On distingue trois catgories de Bus :
Bus dadresses (unidirectionnel)
il permet lunit de commande de transmettre les adresses rechercher et stocker.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
72
Bus de donnes (bi-directionnel)
sur lequel circulent les instructions ou les donnes traiter ou dj traites en vue de leur rangement.
Bus de contrle (bi-directionnel)
transporte les ordres et les signaux de synchronisation provenant de lunit de commande vers les
divers organes de la machine. Il vhicule aussi les divers signaux de rponse des composants.
Largeur du bus
Pour certains Bus on dsigne par largeur du Bus, le nombre de bits qui peuvent tre transports en
mme temps par le Bus, on dit aussi transports en parallle.
Les principaux Bus de donnes rcents de micro-ordinateur
Les Bus de donnes sont essentiellement des bus "synchrones", c'est dire qu'ils sont cadencs par
une horloge spcifique qui fonctionne un frquence fixe. Entre autres informations commerciales,
les constructeurs de Bus donnent en plus de la frquence et pour des raison psychologiques, le dbit
du Bus qui est en fait la valeur du produit de la frquence par la largeur du Bus, ce dbit correspond
au nombre de bits par seconde transports par le Bus.
Quelques chiffres sur des Bus de donnes parallles des annes 2000
BUS Largeur Frquence Dbit Utilisation
PCI 64 bits 66 MHz 528 Mo/s
Processeur/priphrique
non graphique
AGP 32 bits 66 MHz x 8 4 Go/s
Processeur/carte
graphique
SCSI 16 bits 40 MHz 80 Mo/s
Echanges entres
priphriques
Il existe aussi des "Bus srie" ( Bus qui transportent les bits les uns la suite des autres,
contrairement aux Bus parallles), les deux plus rcents concurrents quipent les matriels de grande
consommation : USB et Firewire.
BUS Dbit Nombre de priphriques accepts
USB 1,5 Mo/s
127
USB2 60 Mo/s 127
Firewire 50 Mo/s
63
FirewireB 200 Mo/s
63
Ces Bus vitent de connecter des
priphriques divers comme les
souris, les lecteurs de DVD, les
GSM, les scanners, les imprimantes,
les appareils photo, , sur des ports
spcifiques de la machine
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
73
1.6 Schma gnral dune micro-machine fictive une adresse
1.7 Notion de jeu dinstructions-machine : Les premiers programmes
Comme dfini prcdemment, une instruction-machine est une instruction qui est directement
excutable par le processeur.
Lensemble de toutes les instructions-machine excutables par le processeur sappelle le " jeu
dinstructions " de lordinateur. Il est compos au minimum de quatre grandes classes dinstructions
dans les micro-processeurs :
instructions de traitement
instructions de branchement ou de droutement
instructions dchanges
instructions de comparaisons
Dautres classes peuvent tre ajoutes pour amliorer les performances de la machine (instructions de
gestion mmoire, multimdias etc..)
1.8 Architectures CISC et RISC
Traditionnellement, depuis les annes 70 on dnomme processeur architecture CISC (Complex
Instruction Set Code) un processeur dont le jeu d'instructions possde les proprits suivantes :
Il contient beaucoup de classes d'instructions diffrentes.
Il contient beaucoup de type d'instructions diffrentes complexes et de taille variable.
Il se sert de beaucoup de registres spcialiss et de peu de registres gnraux.
L'architecture RISC (Reduced Instruction Set Code) est un concept mis en place par IBM dans les
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
74
annes 70, un processeur RISC est un processeur dont le jeu d'instructions possde les proprits
suivantes :
Le nombre de classes d'instructions diffrentes est rduit par rapport un CISC.
Les instructions sont de taille fixe.
Il se sert de beaucoup de registres gnraux.
Il fonctionne avec un pipe-line
Depuis les dcennies 90, les microprocesseur adoptent le meilleur des fonctionnalits de chaque
architecture provoquant de fait la disparition progressive de la diffrence entre RISC et CISC et le
invitables polmiques sur l'efficacit suppose meilleure de l'une ou de l'autre architecture.
1.9 Pipe-line dans un processeur
Soulignons qu'un processeur est une machine squentielle ce qui signifie que le cycle de traitement
d'une instruction se droule squentiellement. Supposons que par hypothse simplificatrice, une
instruction machine soit traite en 3 phases :
1 - lecture : dans le registre instruction (RI)
2 - dcodage : extraction du code opration et des oprandes
3 - excution : du traitement et stockage ventuel du rsultat.
Reprsentons chacune de ces 3 phases par une unit matrielle distinctes dans le processeur (on
appelle cette unit un "tage") et figurons schmatiquement les 3 tages de traitement d'une
instruction :
Supposons que suivions pas pas l'excution des 4 instructions machines suivants le long des 3
tages prcdents :
ADD 100, 200, 300
MUL 150, 250, 350
DIV 300, 200, 120
MOV 100, 500
Chacune des 4 instruction est traite squentiellement en 3 phases sur chacun des tages; une fois une
instruction traite par le dernier tage (tage d'excution) le processeur passe l'instruction suivante
et la traite au premier tage et ainsi de suite :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
75
Traitement de la premire instruction
ADD 100, 200, 300
On remarquera que :
Pendant le temps d'activation d'un
tage, les deux autres restent
inactifs.
Il faut attendre la fin du traitement
de l'instruction ADD 100, 200, 300
pour pouvoir passer au traitement de
l'instruction MUL 150, 250, 350
etc
Le cycle recommence identique pour
l'instruction MUL 150, 250, 350
L'architecture pipe-line consiste optimiser les temps d'attente de chaque tage, en commenant le
traitement de l'instruction suivante ds que l'tage de lecture a t libr par l'instruction en cours, et
de procder identiquement pour chaque tage de telle faon que durant chaque phase, tous les tages
soient occups fonctionner (chacun sur une instruction diffrente).
A un instant t
0
donn l'tage d'excution travaille sur les actions effectuer pour l'instruction de rang
n, l'tage de dcodage travaille sur le dcodage de l'instruction de rang n+1, et l'tage de lecture sur
la lecture de l'instruction de rang n+2.
Il est clair que cette technique dnomme architecture pipe-line acclre le traitement d'une
instruction donne, puisqu' la fin de chaque phase une instruction est traite en entier. Le nombre
d'units diffrentes constituant le pipe-line s'appelle le nombre d'tages du pipe-line.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
76
La figure ci-dessous illustre le dmarrage du traitement des 4 instructions selon un pipe-line 3
tages (lecture, dcodage, excution) :
etc
Priode initiale (une seule fois au
dmarrage)
Chaque tage se met en route
Excution de l'instruction ADD
Excution de l'instruction MUL
La prochaine phase verra la fin de
l'excution de l'instruction DIV,
1.10 Architecture super-scalaire
On dit qu'un processeur est super-scalaire lorsqu'il possde plusieurs pipe-lines indpendants dans
lesquels plusieurs instructions peuvent tre traites simultanment. Dans ce type d'architecture
apparat la notion de paralllisme avec ses contraintes de dpendances (par exemple lorsqu'une
instruction ncessite le rsultat de la prcdente pour s'excuter, ou encore lorsque deux instructions
accdent la mme ressource mmoire,).
Examinons l'excution de notre exemple 4 instructions sur un processeur super-scalaire 2 pipe-
lines. Nous supposons nous trouver dans le cas idal pour lequel il n'y a aucune dpendance entre
deux instructions, nous figurons sparment le schma temporel d'excution de chacun des deux
pipe-lines aux t, t+dt, t+2dt et t+3dt afin d'observer leur comportement et en sachant que les deux
fonctionnent en mme temps un instant quelconque.
Le processeur envoie les deux premires instruction ADD et MUL au pipe-line n1, et les deux
suivantes DIV et MOV au pipe-line n2 puis les tages des deux pipe-lines se mettent fonctionner.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
77
PIPE-LINE n1
PIPE-LINE n2
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
78
nous remarquerons qu'aprs de t+dt, chaque phase voit s'excuter 2 instructions :
t+2dt ce sont ADD et DIV
t+3dt se sont MUL et MOV
Rappelons au lecteur que nous avons suppos par simplification de l'explication que ces 4
instructions sont indpendantes et donc leur ordre d'excution est indiffrent. Ce n'est dans la ralit
pas le cas car par exemple si l'instruction DIV 300, 200, 120 utilise le contenu de la mmoire 300
pour le diviser par le contenu de la mmoire 200, et que l'instruction ADD 100, 200, 300 range dans
cette mmoire 300 le rsultat de l'addition des contenus des mmoires 100 et 200, alors l'excution de
DIV dpend de l'excution de ADD. Dans cette ventualit t+2dt, le calcul de DIV par le second
pipe-line doit "attendre" que le calcul de ADD soit termin pour pouvoir s'excuter sous peine
d'obtenir une erreur en laissant le paralllisme fonctionner : un processeur super-scalaire doit tre
capable de dsactiver le paralllisme dans une telle condition. Par contre dans notre exemple,
t+3dt le paralllisme des deux pipe-lines reste efficace MUL et MOV sont donc excutes en mme
temps.
Le pentium IV de la socit Intel intgre un pipe-line 20 tages et constitue un exemple de
processeur combinant un mlange d'architecture RISC et CISC. Il possde en externe un jeu
d'instruction complexes (CISC), mais dans son cur il fonctionne avec des micro-instructions de type
RISC traites par un pipe-line super-scalaire.
L'AMD 64 Opteron qui est un des micro-processeur de l'offre 64 bits du deuxime constructeur
mondial de micro-processeur derrire la socit Intel, dispose de 3 pipe-lines d'excution identiques
pour les calculs en entiers et de 3 pipe-lines spcialiss pour les calculs en virgules flottante. L'AMD
64 Opteron est aussi un mlange d'architecture RISC-CISC avec un cur de micro-instructions RISC
comme le pentium IV.
Nous figurons ci-dessous les 3 pipe-lines d'excution (sur les entiers par exemple) :
Chacune des 3 UAL effectue les fonctions classiques d'une UAL, plus des oprations de
multiplexage, de drapeau, des fonctions conditionnelles et de rsolution de branchement. Les
multiplications sont traites dans une unit part de type pipe-line et sont diriges vers les pipe-lines
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
79
UAL0 et UAL1.
1.11 Principaux modes d'adressage des instructions machines
Nous avons indiqu prcdemment qu'une instruction machine contenait des adresses d'oprandes
situes en mmoire centrale. En outre, il a t indiqu que les processeurs centraux disposaient de
registres internes. Les informaticiens ont mis au point des techniques d'adressages diffrentes en vue
d'accder un contenu mmoire. Nous dtaillons dans ce paragraphe les principales d'entre ces
techniques d'adressage. Afin de conserver un point de vue pratique, nous montrons le fonctionnement
de chaque mode d'adressage l'aide de schmas reprsentant le cas d'une instruction LOAD de
chargement d'un registre nomm ACC d'une machine une adresse, selon 6 modes d'adressages
diffrents.
Environnement d'excution d'un LOAD
Soit considrer un processeur contenant en particulier deux registres X charg de la valeur entire
100 et ACC (accumulateur de machine une adresse) et une mmoire centrale dans laquelle nous
exhibons 5 mots mmoire d'adresses 15, 20, 50, 100, 115. Chaque mot et contient un entier
respectivement dans l'ordre 50, 70, 80, 20, 60, comme figur ci-dessous :
L'instruction "LOAD Oper" a pour fonction de charger le contenu du registre ACC avec un oprande
Oper qui peut prendre 6 formes, chacune de ces formes reprsente un mode d'adressage particulier
que nous dfinissons maintenant.
Adressage immdiat
L'oprande Oper est considr comme une valeur charger immdiatement (dans le registre ACC
ici). Par exemple, nous noterons LOAD #15, pour indiquer un adressage immdiat (c'est dire un
chargement de la valeur 15 dans le registre ACC).
Adressage direct
L'oprande Oper est considr comme une adresse en mmoire centrale. Par exemple, nous noterons
LOAD 15, pour indiquer un adressage direct (c'est dire un chargement du contenu 50 du mot
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
80
mmoire d'adresse 15 dans le registre ACC).
Adressage direct avec registre
L'oprande Oper est un registre interne du processeur (not X dans l'exemple), un tel mode
d'adressage indique de charger dans ACC le contenu du registre Oper. Par exemple, nous noterons
LOAD X, pour indiquer un adressage direct avec registre qui charge l'accumulateur ACC avec la
valeur 100 contenue dans X.
Adressage indirect
L'oprande Oper est considr comme l'adresse d'un mot
1
en mmoire centrale, mais ce mot
1
contient
lui-mme l'adresse d'un autre mot
2
dont on doit charger le contenu dans ACC. Par exemple, nous
noterons LOAD (15), pour indiquer un adressage indirect (c'est dire un chargement dans le registre
ACC, du contenu 80 du mot
2
mmoire dont l'adresse 50 est contenue dans le mot
1
d'adresse 15).
Adressage indirect avec registre
L'oprande Oper est considr comme un registre dont le contenu est l'adresse du mot dont on doit
charger la valeur dans ACC. Par exemple, nous noterons LOAD (X), pour indiquer un adressage
indirect avec le registre X (c'est dire un chargement dans le registre ACC, du contenu 20 du mot
mmoire dont l'adresse 100 est contenue dans le registre X).
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
81
Adressage index
L'oprande Oper est un couple form par un registre R et une adresse adr. La connaissance de
l'adresse du mot dont on doit charger la valeur est obtenue par addition de l'adresse adr au contenu
du registre R. Par exemple, nous noterons LOAD 15, X , pour indiquer un adressage index par le
registre X (c'est dire un chargement dans le registre ACC, du contenu 60 du mot mmoire dont
l'adresse 115 est obtenue par addition de 15 et du contenu 100 du registre X).
Quelques remarques sur les diffrents modes d'adressages (avec l'exemple du LOAD) :
Le mode direct correspond des proccupations de chargement de valeur des emplacements
fixs.
Les modes indirects permettent partir d'un emplacement mmoire quelconque d'atteindre un
autre emplacement mmoire et donc autorise des traitements sur les adresses elles-mmes.
Le mode index est trs utile lorsque l'on veut atteindre une famille de cellules mmoires
contigus possdant une adresse de base (comme pour un tableau). L'instruction LOAD 15,X
permet si l'on fait varier le contenu du registre X de la valeur 0 la valeur 10 (dans une
itration par exemple) d'atteindre les mots d'adresse 15, 16, , 25.
Les registres sont trs prsents dans les micro-processeurs du march
Le processeur AMD 64 bits Optron travaille avec 16 registres gnraux de 64 bits et 16 registres
gnraux de 128 bits.
Le processeur pentium IV travaille avec 8 registres gnraux 32 bits et 8 registres gnraux 80 bits.
L'architecture IA 64 d'Intel et HP est fonde sur des instructions machines trs longues travaillant
avec 128 registres gnraux 64 bits et 128 registres gnraux 82 bits pour les calculs classiques.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
82
Il en est des processeurs comme il en est des moteurs explosion dans les voitures, quelle que soit
leur sophistication technique (processeur vectoriel, machine parallle, machine multi-processeur,
)leurs fondements restent tablis sur les principes d'une machine de Von Neumann ( mmoire,
registre, adresse, transfert).
2. Mmoires : mmoire Centrale , mmoire cache
2.1 Mmoire
Mmoire :cest un organe (lectronique de nos jours), capable de contenir, de
conserver et de restituer sans les modifier de grandes quantits dinformation.
2.2 Les diffrents types de mmoires
La mmoire vive RAM (Random Access Memory)
Mmoire dans laquelle on peut lire et crire.
Mmoire volatile (perd son contenu ds la coupure du courant).
La mmoire morte ROM (Read Only Memory)
Mmoire dans laquelle on ne peut que lire.
Mmoire permanente (conserve indfiniment son contenu).
Les PROM (Programable ROM)
Ce sont des mmoires vierges programmables une seule fois avec un outil spcialis sappelant
un programmateur de PROM.
Une fois programmes elles se comportent dans lordinateur comme des ROM.
Les EPROM (Erasable PROM)
Ce sont des PROM effaables (gnralement sous rayonnement U.V),
elles sont reprogrammables avec un outil spcialis,
elles se comportent comme des ROM en utilisation courante.
Les EEPROM (Electrical EPROM) sont effaables par signaux lectriques.
Les FLASH EEPROM sont des EEPROM effaables par bloc.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
83
2.3 Les units de capacit
Les units de mesure de stockage de linformation sont :
Le bit (pas de notation)
Loctet = 2
3
bits = 8 bits. (not 1 o)
Le Kilo-octet = 2
10
octets =1024 o (not 1 Ko)
Le Mga-octet = 2
20
octets =(1024)
2
o (not 1 Mo)
Le Giga-octet = 2
30
octets =(1024)
3
o (not 1 Go)
Le Tra-octet = 2
40
octets =(1024)
4
o (not 1 To)
Les autres sur-units sont encore peu employes actuellement.
2.4 Mmoire centrale : dfinitions
Mot : cest un regroupement de n bits constituant une case mmoire dans la
mmoire centrale. Ils sont tous numrots.
Adresse : cest le numro dun mot-mmoire (case mmoire) dans la mmoire
centrale.
Programme : cest un ensemble dinstructions pralablement codes (en binaire)
et enregistres dans la mmoire centrale sous la forme dune liste squentielle
dinstructions. Cette liste reprsente une suite dactions lmentaires que
lordinateur doit accomplir sur des donnes en entre, afin datteindre le rsultat
recherch.
Organisation : La mmoire centrale est organise en bits et en mots. Chaque mot-
mmoire est repr bijectivement par son adresse en mmoire centrale.
Contenu : La mmoire centrale contient en binaire, deux sortes dinformations
des programmes,
des donnes.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
84
Composition : Il doit tre possible de lire et dcrire dans une mmoire centrale.
Elle est donc habituellement compose de mmoires de type RAM.
Remarques
Un ordinateur dot dun programme est un automatisme apte
seulement rpter le mme travail(celui dict par le programme).
Si lon change le programme en mmoire centrale, on obtient un
nouvel automatisme.
2.5 Mmoire centrale : caractristiques
La mmoire centrale peut tre ralise grce des technologies diffrentes. Elle possde toujours des
caractristiques gnrales qui permettent de comparer ces technologies. En voici quelques unes :
La capacit reprsente le nombre maximal de mots que la mmoire peut stocker
simultanment.
Le temps daccs est le temps qui scoule entre le stockage de ladresse du mot
slectionner et lobtention de la donne.
Le temps de cycle ou cycle mmoire est gal au temps daccs ventuellement
additionn du temps de rafrachissement ou de rcriture pour les mmoires qui
ncessitent ces oprations.
Le dbit d'une mmoire : c'est l'inverse du cycle mmoire en octet par seconde
La volatilit, la permanence.
Terminons ce survol des possibilits dune mmoire centrale, en indiquant que le mcanisme daccs
une mmoire centrale par le processeur est essentiellement de type squentiel et se dcrit selon trois
phases :
stockage,
slection,
transfert.
Pour l'instant :
Un ordinateur est une machine squentielle de Von Neumann dans
laquelle sexcutent ces 3 phases dune manire immuable, que ce soit
pour les programmes ou pour les donnes et aussi complexe que soit la
machine.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
85
La mmoire centrale est un lment d'importance dans l'ordinateur, nous avons vu qu'elle est
compose de RAM en particulier de RAM dynamiques nommes DRAM dont on rappelle que sont
des mmoires construite avec un transistor et un condensateur. Depuis 2004 les micro-ordinateurs du
commerce sont tous quips de DRAM, le sigle employ sur les notices techniques est DDR qui est
l'abrviation du sigle DDR SDRAM dont nous donnons l'explication :
Ne pas confondre SRAM et SDRAM
Une SRAM est une mmoire statique (SRAM= Statique RAM) construite avec des bascules,
une SDRAM est une mmoire dynamique DRAM qui fonctionne la vitesse du bus mmoire,
elle est donc synchrone avec le fonctionnement du processeur le "S" indique la synchronicit
(SDRAM = Synchrone DRAM).
Une DDR SDRAM
C'est une SDRAM double taux de transfert pouvant expdier et recevoir des donnes deux
fois par cycle d'horloge au lieu d'une seule fois. Le sigle DDR signifie Double Data Rate.
Les performances des mmoires s'amliorent rgulirement, le secteur d'activit est trs innovant, le
lecteur retiendra que les mmoires les plus rapides sont les plus chres et que pour les comparer en ce
domaine, il faut utiliser un indicateur qui se nomme le cycle mmoire.
Temps de cycle d'une mmoire ou cycle mmoire : le processeur attend
Nous venons de voir qu'il reprsente l'intervalle de temps qui s'coule entre deux accs conscutif
la mmoire toutes opration cumules. Un processeur est cadenc par une horloge dont la frquence
est donne actuellement en MHz (Mga Hertz). Un processeur fonctionne beaucoup plus rapidement
que le temps de cycle d'une mmoire, par exemple prenons un micro-processeur cadenc 5 MHz
auquel est connecte une mmoire SDRAM de temps de cycle de 5 ns (ordre de grandeur de
matriels rcents). Dans ces conditions le processeur peut accder aux donnes selon un cycle qui lui
est propre 1/5MHz soit un temps de 2.10
-1
ns, la mmoire SDRAM ayant un temps de cycle de 5 ns,
le processeur doit attendre 5ns / 2.10
-1
ns = 25 cycles propres entre deux accs aux donnes de la
mmoire. Ce petit calcul montre au lecteur l'intrt de l'innovation en rapidit pour les mmoires.
C'est aussi pourquoi on essaie de ne connecter directement au processeur que des mmoires qui
fonctionnent une frquence proche de celle du processeur.
Les registres d'un processeur sont ses mmoires les plus rapides
Un processeur central est quip de nombreux registres servant diffrentes fonctions, ce sont en
gnral des mmoires qui travaillent une frquence proche de celle du processeur , actuellement
leur architecture ne leur permet pas de stocker de grandes quantits d'informations. Nous avons vu au
chapitre consacr aux circuits logiques les principaux types de registres (registres parallles, registres
dcalages, registres de comptage, )
Nous avons remarqu en outre que la mmoire centrale qui stocke de trs grandes quantits
d'informations (relativement aux registres) fonctionne une vitesse plus lente que celle du
processeur. Nous retrouvons alors la situation classique d'quilibre entre le dbit de robinets qui
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
86
remplissent ou vident un rservoir. En informatique, il a t prvu de mettre entre le processeur et la
mmoire centrale une sorte de rservoir de mmoire intermdiaire nomme la mmoire cache.
2.6 Mmoire cache
La mmoire cache (on dit aussi le cache) est une varit de mmoire plus rapide que la mmoire
centrale (un peu moins rapide que les registres). La particularit technique actuelle de la mmoire
cache est que plus sa taille est grande plus son dbit a tendance ralentir.
La caractristique fonctionnelle du cache est de servir stocker des instructions et des donnes
provenant de la mmoire centrale et qui ont dj t utilises les plus rcemment par le
processeur central.
Actuellement le cache des micro-processeurs rcents du march est compos de deux niveaux de
mmoires de type SRAM la plus rapide (type de mmoire RAM statique semblable celle des
registres) : le cache de niveau un est not L1, le cache de niveau deux est not L2.
Le principe est le suivant :
Le cache L1 est form de deux blocs spars, l'un servant au stockage des donnes, l'autre servant au
stockage des instructions.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
87
Si un tage du processeur cherche une donne, elle va tre d'abord recherche dans le cache de
donne L1 et rapatrie dans un registre adquat, si la donne n'est pas prsente dans le cache L1, elle
sera recherche dans le cache L2.
Si la donne est prsente dans L2, elle est alors rapatrie dans un registre adquat et recopie dans
le bloc de donne du cache L1. Il en va de mme lorsque la donne n'est pas prsente dans le cache
L2, elle est alors rapatrie depuis la mmoire centrale dans le registre adquat et recopie dans le
cache L2.
Gnralement la mmoire cache de niveau L1 et celle de niveau L2 sont regroupes dans la mme
puce que le processeur (cache interne).
Nous figurons ci-dessous le facteur d'chelle relatif entre les diffrents composants mmoires du
processeur et de la mmoire centrale (il s'agit d'un coefficient de multiplication des temps d'accs
une information selon la nature de la mmoire qui la contient). Les registres, mmoires les plus
rapides se voient affecter la valeur de rfrence 1 :
L'accs par le processeur une information situe dans la DDR SDRAM de la mmoire centrale est
100 fois plus lente qu'un accs une information contenue dans un registre.
Par exemple, le processeur AMD 64 bits Optron travaille avec un cache interne L1 de 64 Ko
constitu de mmoires associatives (type ECC pour le bloc L1 de donnes et type parit pour
le bloc L1 d'instructions), le cache L2 de l'Optron a une taille de 1 Mo constitu de mmoires
64 bits associatives de type ECC, enfin le contrleur de mmoire accepte de la DDR SDRAM
128 bits jusqu' 200 Mhz en qualit ECC.
Dfinition de mmoire ECC (mmoire code correcteur d'erreur)
Une mmoire ECC est une mmoire contenant des bits supplmentaires servant dtecter et
corriger une ventuelle erreur ou altration de l'information qu'elle contient (par exemple lors d'un
transfert).
La technique la plus simple est celle du bit de parit (Parity check code), selon cette technique
l'information est code sur n bits et la mmoire contient un n+1 me bit qui indique si le nombre de
bits codant l'information contenue dans les n bits est pair (bit=0)ou impair(bit=1). C'est un code
dtecteur d'erreur.
Exemple d'une mmoire 4 bits plus bit de parit (le bit de poids faible contient la parit) :
Information 10010 bit de parit = 0 , car il y a deux bits gaux 1 (nombre pair)
Information 11110 bit de parit = 0 , car il y a quatre bits gaux 1 (nombre pair)
Information 11011 bit de parit = 1 , car il y a trois bits gaux 1 (nombre impair)
Une altration de deux bits (ou d'un nombre pair de bits) ne modifiant pas la parit du dcompte ne
sera donc pas dcele par ce code :
Supposons que l'information 10010 soit altre en 01100 ( le bit de parit ne change pas car le
nombre de 1 de l'information altre est toujours pair, il y en a toujours 2 ! ). Ce code est simple peu
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
88
coteux, il est en fait un cas particulier simple de codage linaire systmatique invents par les
spcialistes du domaine.
Mmoire ECC gnrale
Les mathmaticiens mis contribution travers la thorie des groupes et des espaces vectoriels
fournissent des modles de codes dtecteur et correcteur d'erreurs appels codes linaire cycliques,
les codes de Hamming sont les plus utiliss. Pour un tel code permettant de corriger d'ventuelles
erreur de transmission, il faut ajouter aux n bits de l'information utile, un certain nombre de bits
supplmentaires reprsentant un polynme servant corriger les n bits utiles.
Pour une mmoire ECC de 64 bits utiles, 7 supplmentaires sont ncessaires pour le polynme de
correction, pour une mmoire de 128 bits utiles, 8 bits sont ncessaires. Vous remarquez que
l'Optron d'AMD utilise de la mmoire ECC pour le cache L1 de donnes et de la mmoire parit
pour le cache instruction. En effet, si un code d'instruction est altr, l'tage de dcodage du
processeur fera la vrification en bloquant l'instruction inexistante, la protection apporte par la parit
est suffisante; en revanche si c'est une donne qui est altre dans le cache L1 de donnes, le
polynme de correction aidera alors restaurer l'information initiale.
Mmoire associative
C'est un genre de mmoire construit de telle faon que la recherche d'une information s'effectue non
pas travers une adresse de cellule, la mmoire renvoyant alors le contenu de la cellule, mais plutt
en donnant un "contenu" rechercher dans la mmoire et celle-ci renvoie l'adresse de la cellule.
Une mmoire cache est une mmoire associative, ainsi elle permet d'adresser directement dans la
mmoire centrale qui n'est pas associative.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
89
On peut considrer une mmoire cache comme une sorte de table de recherche contenant des
morceaux de la mmoire centrale. La mmoire centrale est divise en blocs de n mots, et la mmoire
cache contient quelques un de ces blocs qui ont t chargs prcdemment.
Notation graphiques utilises :
Mcanisme synthtique de lecture-criture avec cache :
Le processeur fournit l'adresse d'un mot lire :
1) Si ce mot est prsent dans le cache, il se trouve dans un bloc dj copi partir de son original
dans le MC (mmoire centrale), il est alors envoy au processeur :
2) Si ce mot n'est pas prsent dans le
cache, l'adresse porte alors sur un mot
situ dans un bloc prsent dans la MC
(mmoire centrale).
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
90
Dans cette ventualit le bloc de la MC dans lequel se trouve le mot, se trouve recopi dans le cache
et en mme temps le mot est envoy au processeur :
Pour l'criture l'opration est semblable, selon que le mot est dj dans le cache ou non.
Lorsque le mot est prsent dans le cache et qu'il est modifi par une criture il est modifi dans le
bloc du cache et modifi aussi dans la MC :
Ce fonctionnement montre qu'il est donc ncessaire que la mmoire cache soit lie par une
correspondance entre un mot situ dans elle-mme et sa place dans la MC. Le fait que la mmoire
cache soit constitue de mmoires associatives, permet la mmoire cache lorsqu'un mot est
slectionn de fournir l'adresse MC de ce mot et donc de pouvoir le modifier.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
91
3. Une petite machine pdagogique 8 bits
( assistant du package pdagogique prsent sur le CD-ROM )
3.1 Unit centrale de PM (pico-machine)
Objectif:
Support pdagogique interactif destin faire comprendre
l'analyse et le cheminement des informations dans un processeur
central d'ordinateur fictif avec accumulateur.
La mmoire centrale est mots de 8 bits, les adresses sont sur 16 bits.
le processeur est dot d'instructions immdiates ou relatives.
Les instructions sont de 3 types 1 octet (immdiat), 2 octets (court) ou 3 octets (long).
Les instructions sont adressages immdiat et adressage direct.
Interface utilisateur de l'assistant :
Description gnrale de lunit centrale de PM simule sur le tableau de bord ci-dessous :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
92
RA = Registre Adresse sur 16 bits
CO = Compteur Ordinal sur 16 bits
DC = Registre de formation d'adresse sur 16 bits
RD = Registre de Donnes sur 8 bits
UAL = Unit Arithmtique et Logique effectuant les calculs sur 8 bits avec possibilit de
dbordement.
Acc = Accumulateur sur 8 bits (machine une adresse).
RI = Registre Instruction sur 8 bits (instruction en cours d'excution).
Dcodeur de fonction.
squenceur
Horloge
CCR = un Registre de 4 Codes Condition N, V, Z, C,
BUS de contrle (bi-directionnel)
BUS interne (circulation des informations internes).
3.2 Mmoire centrale de PM
La mmoire centrale de PM est de 512 octets, ce qui permet dans une machine 8 bits de voir
comment est construite la technique d'adressage court (8 bits) et d'adressage long (16 bits).
|adresse|contenu|
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
93
Elle est connecte lunit centrale travers deux bus : un bus dadresse et un bus de donnes.
3.3 Jeu dinstructions de PM
PM est dot du jeu d'instructions suivant :
L'adressage immdiat d'une instruction INSTR est not : INSTR #<valeur>
L'adressage direct d'une instruction INSTR est not : INSTR <valeur>
addition avec l'accumulateur
ADD #<valeur> 2 octets code=16
ADD <adr 16 bits> 3 octets code=18
ADD <adr 8 bits> 2 octets code=17
chargement de l'accumulateur
LDA #<valeur> 2 octets code=10
LDA <adr 16 bits> 3 octets code=12
LDA <adr 8 bits> 2 octets code=11
rangement de l'accumulateur
STA <adr 16 bits> 3 octets code=15
STA <adr 8 bits> 2 octets code=14
positionnement indicateurs CNVZ
STC (C=1) 1 octet code=100
STN (N=1) 1 octet code=101
STV (V=1) 1 octet code=102
STZ (Z=1) 1 octet code=103
CLC (C=0) 1 octet code=104
CLN (N=0) 1 octet code=105
CLV (V=0) 1 octet code=106
CLZ (Z=0) 1 octet code=107
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
94
branchement relatif sur indicateur
BCZ (brancht.si C=0) 2 octets code=22
BNZ (brancht.si N=0) 2 octets code=23
BVZ (brancht.si V=0) 2 octets code=24
BZZ (brancht.si Z=0) 2 octets code=25
END (fin programme) 1 octet code=255
Dans le CCR les 4 bits indicateurs sont dans cet ordre : N V Z C.
Ils peuvent tre :
soit positionns automatiquement par la machine:
N = le bit de poids fort de l'Accumulateur
V = 1 si overflow (dpassement capacit) 0 sinon
Z = 1 si Accumulateur vaut 0
Z = 0 si Accumulateur <0
C = 1 si retenue (dans l'addition) sinon 0
soit positionns par programme.
Exemple de programme en PM
LDA #18 ; {chargement de laccumulateur avec la valeur 18}
STA 50 ; {rangement de laccumulateur dans la mmoire n 50}
LDA #5 ; {chargement de laccumulateur avec la valeur 5}
STA 51 ; {rangement de laccumulateur dans la mmoire n51}
ADD 50 ; {addition de laccumulateur avec la mmoire n50}
STA 52 ; {rangement de laccumulateur dans la mmoire n52}
END
Le lecteur est encourag utiliser le logiciel d'assistance Pico-machine du package pdagogique qui
se trouve accessible travers l'onglet simulateur et met en uvre :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
95
4. Mmoire de masse (externe ou auxiliaire)
Les donnes peuvent tre stockes des fin de conservation ,ailleurs que dans la mmoire centrale
volatile par construction avec les constituants lectroniques actuels. Des priphriques spcialiss
sont utiliss pour ce genre de stockage longue conservation, en outre ces mmes priphriques
peuvent stocker une quantit d'information trs grande par rapport la capacit de stockage de la
mmoire centrale.
On dnomme dispositifs de stockage de masse, de tels priphriques.
Les mmoires associes ces dispositifs se dnomment mmoires de masse, mmoires externes ou
encore mmoires auxiliaires, par abus de langage la mmoire dsigne souvent le dispositif de
stockage.
Les principaux reprsentant de cette famille de mmoires sont :
Les bandes magntiques (utiliss dans de trs faible cas)
Les disques magntiques : les disquettes (en voie d'abandon), les disques durs (les plus
utiliss).
Les CD (trs utiliss mais bientt supplants par les DVD)
Les DVD
Des technologies ont vu le jour puis se sont teintes (tambour magntique, cartes magntiques,
mmoires bulles magntiques,)
A part les bandes magntiques qui sont un support ancien encore utilis fonctionnement squentiel,
les autres supports (disques, CD, DVD) sont des mmoires qui fonctionnent accs direct.
4.1 Disques magntiques - disques durs
Nous dcrivons l'architecture gnrale des disques magntiques encore appels disques durs
(terminologie amricaine hard disk, par opposition aux disquettes nommes floppy disk) trs
largement employs dans tous les types d'ordinateur comme mmoire auxiliaire.
Un micro-ordinateur du commerce dispose systmatiquement d'un ou plusieurs disques durs et au
minimum d'un lecteur-graveur combin de CD-DVD permettant ainsi l'accs aux informations
extrieures distribues sur les supports faibles cot comme les CD et les DVD qui les remplacent
progressivement.
Un disque dur est compos d'un disque mtallique sur lequel est dpos un film magntisable, sur
une seule face ou sur ses deux faces :
Ce film magntique est compos de grains d'oxyde magntisable et c'est le fait que certaines zones du
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
96
film conservent ou non un champ magntique, qui reprsente la prsence d'un bit 0 ou bien 1.
Coupe d'une tranche de disque et figuration de zones magntises interprtes comme un bit
Organisation gnrale d'un disque dur
Un disque dur est au minimum compos de pistes numrotes et de secteurs numrots, les donnes
sont stockes dans les secteurs.
Le disque tourne sur son axe vitesse d'environ 7200 tr/mn et un secteur donn peut tre atteint par
un dispositif mobile appel tte de lecture-criture, soit en lecture (analyse des zones magntiques
du secteur) ou en criture (modification du champ des zones magntiques du secteur). Opration
semblable celle qui se passe dans un magntoscope avec une bande magntique qui passe devant la
tte de lecture. Dans un magntoscope une tte, seule la bande magntise dfile, la tte reste
immobile, dans un disque dur le disque tourne sur son axe de symtrie et la tte est anime d'un
mouvement de translation permettant d'atteindre n'importe qu'elle piste du disque.
La tte "flotte" sur un coussin d'air engendr par
la rotation trs rapide du disque, ce qui la
maintient une hauteur constante de la surface du
disque adquate pour l'enregistrement du champ
magntique du film.
Afin d'augmenter la capacit d'un "disque dur" on empile plusieurs disques physique sur le mme axe
et on le muni d'un dispositif plusieurs ttes de lecture-criture permettant d'accder toutes les
faces et toutes les pistes de tous les disques physiques. La pile de disques construite est encore
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
97
appele un disque dur.
Pile de disques
ttes
disques et ttes en action
Dans une pile de disques on ajoute la notion de cylindre qui repre toutes les pistes portant le mme
numro sur chaque face de chacun des disques de la pile.
Formatage
Avant toute utilisation ou bien de temps autre pour tout effacer, les disques durs doivent tre
"formats", opration qui consiste crer des pistes magntiques et des secteurs vierges ( tous les bits
0 par exemple). Depuis 2005 les micro-ordinateurs sont livrs avec des disques durs dont la
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
98
capacit de stockage dpasse les 200 Go, ces disques sont pourvu d'un systme de mmoire cache
(semblable celui dcrit pour la cache du processeur central) afin d'acclrer les transferts de
donnes. Le temps d'accs une information sur un disque dur est de l'ordre de la milliseconde.
4.2 Disques optique compact ou CD (compact disk)
Untel disque peut tre en lecture seule (dans ce cas on parle de CD-ROM) ou bien en lecture et
criture (dans ce cas on parle de CD rinscriptible). Il est organis peu prs comme un disque
magntique, avec une diffrence notable : il n'a qu'une seule piste qui se droule sous la forme d'une
spirale.
Si sur un disque magntique les bits codant l'information sont reprsents par des grains
magntisables, dans un CD ce sont des creux provoqus par brlure d'un substrat aluminis
rflchissant qui reprsentent les bits d'information.
Gravure d'un CD-ROM
Comme pour un disque dur, le formatage appel gravure du CD cre les secteurs et les donnes en
mme temps. Plus prcisment c'est l'absence ou la prsence de brlures qui reprsente un bit 0 ou
1, le substrat aluminis est protg par une couche de plastique transparent.
Aprs gravure avec le graveur de CD, les bits sont matrialiss :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
99
Principe de lecture d'un CD :
Lorsque le substrat est lisse (non brl) un endroit matrialisant un bit, le rayon lumineux de la
diode laser du lecteur est rflchi au maximum de son intensit vers la cellule de rception.
On dira par exemple que le bit examin vaut 0 lorsque l'intensit du signal rflchi est maximale.
Lorsque le substrat est brl un endroit matrialisant un bit, la partie brle est irrgulire et le
rayon lumineux de la diode laser du lecteur est mal rflchi vers le capteur (une partie du
rayonnement est rflchi par les asprits de la brlure dans plusieurs directions). Dans cette
ventualit l'intensit du signal capt par rflexion est moindre.
On dira par exemple que le bit examin vaut 1 lorsque l'intensit du signal rflchi n'est pas
maximale.
La vitesse du disque est variable contrairement un disque dur qui tourne vitesse angulaire fixe. En
effet la lecture de la piste en spirale ncessite une augmentation au fur et mesure de l'loignement
du centre. Le temps d'accs une information sur un CD 54x est de l'ordre de 77 millisecondes.
Le temps d'accs sur un CD ou un DVD est 10 fois plus lent que celui d'un disque dur et environ 100
fois moins volumineux qu'un disque dur.
Toutefois leur cot trs faible et leur facilit de transport font que ces supports sont trs utilis de nos
jours et remplacent la disquette moins rapide et de moindre capacit.
Nous pouvons reprendre l'chelle comparative des temps d'accs des diffrents types de mmoires en
y ajoutant les mmoires de masse et en indiquant en dessous l'ordre de grandeur de leur capacit :
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
100
1.6 Systme dexploitation
Plan du chapitre:
1. Notion de systme dexploitation
1.1 Les principaux types d OS
monoprogrammation
multi-programmation
temps partag
1.2 Systmes d'exploitations actuels
2. Processus et multi-threading dans un OS
2.1 Les processus agissent grce au systme
2.2 Le multi-threading
2.3 Relation entre threads et processus
2.4 L'ordonnancement pour grer le temps du processeur
2.5 Un algorithme classique non premptif (cas batch processing)
2.6 Deux algorithmes classiques premptifs (cas interactif)
3. Gestion de la mmoire par un OS de multi-programmation
3.1 Mmoire virtuelle et segmentation
3.2 Mmoire virtuelle et pagination
4. Les OS des mico-ordinateurs
4.1 Le systme d'exploitation du monde libre : Linux
4.2 Le systme d'exploitation Windows de Microsoft
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
101
1. Notion de systme dexploitation
Un ordinateur est constitu de matriel (hardware) et de logiciel (software). Cet ensemble est la
disposition de un ou plusieurs utilisateurs. Il est donc ncessaire que quelque chose dans lordinateur
permette la communication entre lhomme et la machine. Cette entit doit assurer une grande
souplesse dans linterface et doit permettre daccder toutes les fonctionnalits de la machine. Cette
entit doue dune certaine intelligence de communication se dnomme " la machine virtuelle ". Elle
est la runion du matriel et du systme dexploitation (que nous noterons OS par la suite pour
Operating System).
Le systme dexploitation dun ordinateur est charg dassurer les fonctionnalits de communication
et dinterface avec lutilisateur. Un OS est un logiciel dont le grand domaines dintervention est la
gestion de toutes les ressources de lordinateur :
mmoires,
fichiers,
priphriques,
entre-sortie,
interruptions, synchronisation...
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
102
Un systme dexploitation nest pas un logiciel unique mais plutt une famille de logiciels. Une
partie de ces logiciels rside en mmoire centrale (nomme rsident ou superviseur), le reste est
stock en mmoire de masse (disques durs par exemple).
Afin dassurer une bonne liaison entre les divers logiciels de cette famille, la cohrence de lOS est
gnralement organise travers des tables dinterfaces architectures en couches de programmation
(niveaux abstraits de liaison). La principale tche du superviseur est de grer le contrle des changes
dinformations entre les diverses couches de lOS.
1.1 Historique des principaux types d OS
Nous avons vu dans le tableau synoptique des diffrentes gnrations dordinateurs que les OS ont
subi une volution parallle celle des architectures matrielles. Nous observons en premire
approximation quil existe trois types dOS diffrents, si lon ignore les systmes rudimentaires de la
1
re
gnration.
MONOPROGRAMMATION : La 2
me
gnration dordinateurs est quipe dOS dits de "
monoprogrammation " dans lesquels un seul utilisateur est prsent et a accs toutes les ressources
de la machine pendant tout le temps que dure son travail. LOS ne permet le passage que d'un seul
programme la fois.
A titre dexemple, supposons que sur un tel systme 5 utilisateurs excutent chacun un programme
P
1
, P
2
, P
3
, P
4
, P
5
:
Dans lordre de la figure ci-haut, chaque P
i
attend
que le P
i+1
prcdent ait termin son excution
pour tre excut son tour.
Exemple de diagramme des temps dexcution de
chaque programme P
i
de la figure de gauche.
Laxe des abscisses du diagramme des temps d'excution, indique lordre de passage prcdent (P
5
,
puis P
4
etc...) nous voyons que les temps dattente dun utilisateur ne dpendent pratiquement pas de
la dure dexcution de son programme mais surtout de lordre du passage (les derniers sont
pnaliss surtout si en plus leur temps propre dexcution est faible comme P
1
par exemple).
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
103
Une vision abstraite et synthtique dun tel systme est de considrer que 5 tables suffisent le
dcrire. La table :
des units logiques,
des units physiques,
des tats,
de ventilation des interruptions,
des canaux.
Relativement aux temps dattente, un systme de monoprogrammation est injuste vis vis des petits
programmes.
MULTIPROGRAMMATION : La 3
me
gnration dordinateur a vu natre avec elle les OS
de multiprogrammation. Dans un tel systme, plusieurs utilisateurs peuvent tre prsents en " mme
temps " dans la machine et se partagent les ressources de la machine pendant tout leur temps
dexcution.
En reprenant le mme exemple que prcdemment, P
1
, P
2
, P
3
, P
4
, P
5
sont excuts cycliquement par
lOS qui leur alloue les ressources ncessaires (disque, mmoire, fichier,...) pendant leur tranche de
temps dexcution. Nous exposons dans l'exemple ci-dessous uniquement des excutions ne
ncessitant jamais dinterruptions, ni de priorit, et nous posons comme hypothse que le temps fictif
allou pour lexcution est de 1 seconde :
Dans la figure ci-haut, chaque P
i
se voit allouer
une tranche de temps d'excution (1 seconde), ds
que ce temps est coul, l'OS passe l'excution
du P
i+1
suivant etc
Exemple de diagramme des temps dexcution
cyclique de chaque programme P
i
de la figure de
gauche.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
104
Nous observons dans le diagramme des temps d'excution que le systme excute P
5
pendant 1
seconde, puis abandonne P
5
et excute P
4
pendant 1 seconde, puis abandonne P
4
..., jusqu' l'excution
de P
1
, lorsquil a fini le temps allou P
1
, il recommence parcourir cycliquement la liste (P
5
, P
4
, P
3
,
P
2
, P
1
)et ralloue 1 seconde de temps dexcution P
5
etc... jusqu' ce quun programme ait termin
son excution et quil soit sorti de la table des programmes excuter.
Une vision abstraite dduite du paragraphe prcdent et donc simplificatrice, est de dcrire un tel
systme comme compos des 5 types de tables prcdentes en y rajoutant de nouvelles tables et en y
incluant la notion de priorit dexcution hirarchise. Les programmes se voient affecter une priorit
qui permettra lOS selon les niveaux de priorit, de traiter certains programmes plus compltement
ou plus souvent que dautres.
Relativement aux temps dattente, un systme de multiprogrammation rtablit une certaine justice
entre petits et gros programmes.
TEMPS-PARTAGE : Il sagit dune amlioration de la multiprogrammation oriente vers le
transactionnel. Un tel systme organise ses tables dutilisateurs sous forme de files dattente.
Lobjectif majeur est de connecter des utilisateurs directement sur la machine et donc doptimiser les
temps dattente de lOS (un humain tant des millions de fois plus lent que la machine sur ses temps
de rponse).
La 4
me
gnration dordinateur a vu natre les rseaux dordinateurs connects entre eux et donc de
nouvelles fonctionnalits, comme linterfaage rseau, qui ont enrichi les OS dj existants. De
nouveaux OS entirement orients rseaux sont construits de nos jours.
1.2 Systmes d'exploitation actuels
De nos jours, les systmes d'exploitation sont des systmes de multi-programmation dirigs vers
certains type d'applications, nous citons les trois types d'application les plus significatifs.
Systme inter-actif
Un tel systme a vocation permettre l'utilisateur d'intervenir pratiquement toutes les
tapes du fonctionnement du systme et pendant l'excution de son programme (Windows
Xp, Linux sont de tels systmes).
Systme temps rel
Comme son nom l'indique, un systme de temps rel excute et synchronise des applications
en tenant compte du temps, par exemple un systme grant une chane de montage de pices
assembler doit tenir compte des dlais de prsentation d'une pice la machine d'assemblage,
puis celle de soudage etc
Systme embarqu
C'est un systme d'exploitation ddi des applications en nombre restreint et identifies : par
exemple un systme de gestion et de contrle des mesures l'intrieur d'une sonde autonome,
un systme pour assistant personnel de poche, systme pour tlphone portables se connectant
internet etc
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
105
Les principales caractristiques d'un systme d'exploitation de multi-programmation sont fondes sur
la gestion des processus et la gestion de la mmoire allouer ces processus.
2. Processus et multi-threading dans un OS
Contexte d'excution d'un programme
Lorsqu'un programme qui a t traduit en instructions machines s'excute, le processeur
central lui fournit toutes ses ressources (registres internes, place en mmoire centrale,
donnes, code,), nous nommerons cet ensemble de ressources mises disposition d'un
programme son contexte d'excution.
Programme et processus
Nous appelons en premire analyse, processus l'image en mmoire centrale d'un programme
s'excutant avec son contexte d'excution. Le processus est donc une abstraction synthtique
d'un programme en cours d'excution et d'une partie de l'tat du processeur et de la mmoire.
Lorsque l'on fait excuter plusieurs programmes "en mme temps", nous savons qu'en fait la
simultanit n'est pas relle. Le processeur passe cycliquement une partie de son temps (quelques
millisecondes) excuter squentiellement une tranche d'instructions de chacun des programmes
selon une logique qui lui est propre, donnant ainsi l'illusion que tous les programmes sont traits en
mme temps parce que la dure de l'excution d'une tranche d'instruction est plus rapide que notre
attention consciente.
Le SE (systme d'exploitation) gre 4 processus
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
106
2.1 Les processus agissent grce au systme
Processus
Nous donnons la dfinition prcise de processus propose par A.Tannenbaum, spcialiste
des systmes d'exploitation : c'est un programme qui s'excute et qui possde son propre
espace mmoire, ses registres, ses piles, ses variables et son propre processeur virtuel
(simul en multi-programmation par la commutation entre processus effectue par le
processeur unique).
Un processus a donc une vie propre et une existence phmre, contrairement au programme qui lui
est physiquement prsent sur le disque dur. Durant sa vie, un processus peut agir de diffrentes
manires possibles, il peut se trouver dans diffrents tats, enfin il peut travailler avec d'autres
processus prsent en mme temps que lui.
Diffrentes actions possibles d'un processus
Un processus est cr.
Un processus est dtruit.
Un processus s'excute (il a le contrle du processeur central et excute les actions du
programme dont il est l'image en mmoire centrale).
Un processus est bloqu (il est en attente d'une information).
Un processus est passif (il n'a plus le contrle du processeur central).
On distingue trois actions particulires appeles tats du processus
Etat actif : le processus contrle le processeur central et s'excute).
Etat passif : le processus est temporairement suspendu et mis en attente, le processeur central
travaille alors avec un autre processus.
Etat bloqu : le processus est suspendu toutefois le processeur central ne peut pas le ractiver
tant que l'information attendue par le processus ne lui est pas parvenue.
Que peut faire un processus ?
Il peut crer d'autre processus
Il travaille et communique avec d'autres processus (notion de synchronisation et de messages
entre processus)
Il peut possder une ressource titre exclusif ou bien la partager avec d'autre processus.
C'est le rle de l'OS que d'assurer la gestion complte de la cration, de la destruction, des transitions
d'tats d'un processus. C'est toujours l'OS d'allouer un espace mmoire utile au travail de chaque
processus. C'est encore l'OS qui assure la synchronisation et la messagerie inter-processus.
Le systme d'exploitation implmente cette gestion des processus travers une table des processus
qui contient une entre par processus cr par le systme sous forme d'un bloc de contrle du
processus (PCB ou Process Control Block). Le PCB contient lui-mme toutes les informations de
contexte du processus, plus des informations sur l'tat du processus.
Lorsque la politique de gestion de l'OS prvoit que le processus P
k
est ractivable (c'est au tour de P
k
de s'excuter), l'OS va consulter le PCB de P
k
dans la table des processus et restaure ou non
l'activation de P
k
selon son tat (par exemple si P
k
est bloqu, le systme ne l'active pas).
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
107
Afin de sparer les tches d'un processus, il a t mis en place la notion de processus lger (ou
thread).
2.2 Le multithreading
Nous pouvons voir le multithreading comme un changement de facteur d'chelle dans le
fonctionnement de la multi-programmation.
En fait, chaque processus peut lui-mme fonctionner comme le systme d'exploitation en lanant des
sous-tches internes au processus et par l mme reproduire le fonctionnement de la multi-
programmation. Ces sous-tches sont nommes "flux d'excution" "processus lgers"ou Threads.
Qu'est exactement un thread
Un processus travaille et gre, pendant le quantum de temps qui lui est allou, des
ressources et excute des actions sur et avec ces ressources. Un thread constitue la partie
excution d'un processus allie un minimum de variables qui sont propres au thread.
Un processus peut comporter plusieurs threads.
Les threads situs dans un mme processus partagent les mmes variables gnrales de
donnes et les autres ressources alloues au processus englobant.
Un thread possde en propre un contexte d'excution (registres du processeur, code,
donnes)
Cette rpartition du travail entre thread et processus, permet de charger le processus de la gestion
des ressources (fichiers, priphriques, variables globales, mmoire,) et de ddier le thread
l'excution du code proprement dit sur le processeur central ( travers ses registres, sa pile lifo
etc).
Le processus applique au niveau local une multi-programmation interne qui est nomme le
multithreading. La diffrence fondamentale entre la multi-programmation et nomme le
multithreading se situe dans l'indpendance qui existe entre les processus,alors que les threads sont
lis minima par le fait qu'ils partagent les mme donnes globales (celles du processus qui les
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
108
contient).
2.3 Relations entre thread et processus
Ci-dessous nous supposons que le processus D assign l'application D, excute en mme temps les
3 Threads D1, D2 et D3 :
Soit par exemple 4 processus qui s'excutent "en mme temps" dont le processus D prcdent
possdant 3 threads :
La commutation entre les threads d'un processus fonctionne identiquement la commutation entre les
processus.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
109
Chaque thread se voit allou cycliquement, lorsque le processus D est excut une petite tranche de
temps dans le quantum de temps allou au processus. Le partage et la rpartition du temps sont
effectus uniquement par le systme d'exploitation.
Dans l'exemple ci-dessous, nous figurons les processus A, B, C et le processus D avec ses threads
dans un graphique reprsentant un quantum de temps d'excution allou par le systme et suppos
tre la mme pour chaque processus.
Le systme ayant allou le mme temps d'excution chaque processus, lorsque par exemple le tour
vient au processus D de s'excuter dans son quantum de temps, il excutera pendant une petite sous-
tranche de temps D1, puis D2, enfin D3 et attendra le prochain cycle.
Voici sous les mmes hypothses de quantum de temps gal d'excution allou chaque processus A,
B, C et D, le comportement de l'excution sur 2 cycles conscutifs :
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
110
La majorit des systmes d'exploitation (Windows, Unix, MacOs,...) supportent le Multithreading.
Diffrences et similitudes entre threads et processus :
La communication entre les threads est plus rapide que la communication entre les
processus.
Les Threads possdent les mmes tats que les processus.
Deux processus peuvent travailler sur une mme donne (un tableau par exemple) en lecture
et en criture, dans une situation de concurrence dans laquelle le rsultat final de l'excution
dpend de l'ordre dans lequel les lectures et critures ont lieu, il en est de mme pour les
threads.
Les langages de programmation rcents comme Delphi, Java et C# disposent chacun de classes
permettant d'crire et d'utiliser des threads.
Concurrence en cas de donnes partages
Un OS met en place les notions de sections critiques, de verrou, de smaphore et de mutex
afin de grer les situations de concurrence des processus et des threads dans le cadre de
donnes partages.
Mais il existe aussi une autre situation de concurrence inluctable sur une machine mono-processeur,
lorsqu'il s'agit de partager le temps d'activit du processeur central entre plusieurs processus. Une
solution cette concurrence est de grer au mieux la rpartition du quantum de temps allou aux
processus.
2.4 L'ordonnancement pour grer le temps du processeur
Dans un systme d'exploitation, c'est l'ordonnanceur (scheduler ou logiciel d'ordonnancement) qui
tablit la liste des processus prts tre excuts et qui effectue le choix du processus excuter
immdiatement selon un algorithme d'ordonnancement. Dans ce paragraphe le mot tche dsigne
aussi bien un processus qu'un thread.
Ordonnancement coopratif ou premptif
Un algorithme d'ordonnancement est dit premptif lorsqu'une tche qui s'excute peut tre
interrompue aprs un dlai d'horloge fix appel quantum de temps, mme si la tche est
en cours d'excution.
Un algorithme d'ordonnancement est dit coopratif lorsqu'une tche s'excute soit jusqu'au
terme de son excution, soit parce qu'elle libre de son propre chef l'activit du processeur
Remarque
Dans les deux cas premptif et coopratif, la tche peut suspendre elle-mme son excution si elle
reconnat que le temps d'attente d'une donne risque d'tre trop long comme dans le cas d'une entre-
sortie vers un priphrique ou encore l'attente d'un rsultat communiqu par une autre tche. La
diffrence importante entre ces deux modes est le fait qu'une tche peut tre suspendue aprs un dlai
maximum d'occupation du processeur central.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
111
Dans un OS interactif comme Windows, Linux, Mac OS par exemple, la premption est
fondamentale car il y a beaucoup d'intervention de l'utilisateur pendant l'excution des tches. Une
des premires versions de Windows (Windows 3) tait cooprative et lorsqu'une tche buggait elle
pouvait bloquer tout le systme (par exemple le lecteur de CD-ROM ouvert en cours d'excution en
attente d'une lecture impliquait un gel du systme), ce n'est plus le cas depuis les versions suivantes
de Windows (98, Xp, )
2.5 Un algorithme classique non premptif dans un OS de batch processing: FCFS (First Come First
Served)
Dans un OS de traitement par lot (batch processing) qui est un systme dans lequel les utilisateurs
n'interagissent pas avec l'excution du programme (mise jour et gestion des comptes clients dans
une banque, calculs scientiques,), multi-programmation avec premption n'est pas ncessaire, la
coopration seule suffit et les performances de calcul en sont amliores.
Un algorithme d'ordonnancement important et simple purement coopratif de ce type d'OS se nomme
First Come First Served (premier arriv, premier servi). Toutes les tches ligibles (prtes tre
excutes) sont places dans une file d'attente unique, la premire tche T
1
en tte de file est excute
:
jusqu' ce qu'elle s'interrompe elle-mme (entre-sortie, rsultat,) elle est alors remise en queue de
liste et c'est la tche suivante T
2
de la liste qui est excute et ainsi de suite :
2.6 Deux algorithmes classiques premptifs dans un OS interactif
Dans un OS interactif comme Windows par exemple, ce sont les threads qui sont ordonnancs
puisque ce sont les threads qui sont chargs dans un processus, de l'excution de certaines actions du
processus qui sert alors de conteneur aux threads et aux ressources utiliser. Comme prcdemment
nous nommons tche (soit un thread, soit un processus) l'entit ordonnancer par le systme.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
112
Algorithme de plus haute priorit
Les tches T
i
se voient attribuer un ordre de priorit P
k
et sont ranges par ordre de priorit
dcroissant dans une liste de tches toutes prtes tre excutes. Cette liste est organise comme
une file d'attente, il y a une file d'attente par niveau de priorit, dans la file de priorit P
k
toutes les
tches T
i
k
ont le mme ordre de priorit P
k
:
Dans l'exemple ci-contre P
0
reprsente la priorit la plus
haute et P
n
la priorit la plus basse.
Une tche est excute pendant au plus la dure du
quantum de temps qui lui est allou (elle peut
s'interrompre avant la fin de ce quantum de temps).
Les tches de plus haute priorit sont excutes d'abord depuis celles de priorit P
0
jusqu' la priorit
P
n
.
Les tches T
i
k
de mme priorit P
k
sont excutes selon un mcanisme de tourniquet, les unes la
suite des autres jusqu' puisement de la file, ds qu'une tche a fini d'tre excute, elle est remise en
fin de liste d'attente de sa file de priorit :
Chemin d'excution des tches
etc
Excution des tches de la file de priorit P0
( une fois excute, une tche est range la fin de la file )
Le systme peut changer les priorits d'une tche aprs l'excution du quantum de temps qui lui a t
allou.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
113
Algorithme du tourniquet (Round Robin)
C'est le premier algorithme qui a t utilis en multi-programmation. Il ressemble l'algorithme
FCFS utilis dans le cas d'un OS de batch processing, le systme alloue un quantum de temps
identique chaque tche ou selon le cas une tranche de temps variable selon le type de tche.
Toutes les tches ligibles sont placs dans une file d'attente unique, la premire tche T
1
en tte de
file est excute, jusqu' ce que :
Soit elle s'interrompe elle-mme (entre-sortie, rsultat,)
Soit le quantum de temps qui lui tait allou a expir.
Dans ce cas, elle est remise en fin de file d'attente et c'est la tche suivante T
2
de la file qui est
excute selon les mmes conditions et ainsi de suite :
3. Gestion de la mmoire par un OS de multi-programmation
Puisque dans un tel OS, plusieurs tches sont prsentes en mmoire centrale, un instant donn, il
faut donc que chacune dispose d'un espace mmoire qui lui est propre et qui soit protg de toute
interaction avec une autre tche. Il est donc ncessaire de partitionner la mmoire centrale MC en
plusieurs sous-ensembles indpendants.
Plusieurs tches s'excutant en mmoire centrale utilisent gnralement plus d'espace mmoire que
n'en contient physiquement la mmoire centrale MC, il est alors indispensable de mettre en place un
mcanisme qui allouera le maximum d'espace mmoire physique utile une tche et qui librera cet
espace ds que la tche sera suspendue. Le mme mcanisme doit permettre de stocker, grer et
rallouer une autre tche l'espace ainsi libr.
Les techniques de segmentation et de pagination mmoire dans le cadre d'une gestion de mmoire
nomme mmoire virtuelle, sont une rponse ces proccupations d'allocation et de dsallocation de
mmoire physique dans la MC.
Du fait de la multi-programmation, les tches sont charges (stockes) dans des parties de la MC dont
l'emplacement physique n'est dtermin qu'au moment de leur excution. Sans entrer trs
profondment dans les deux mcanismes qui ralisent la rpartition de la mmoire alloue aux tches,
la segmentation et la pagination mmoire, nous dcrivons d'une manire gnrale ces deux mthodes
; les ouvrages spcialiss en la matire cits en bibliographie dtaillent exhaustivement ces procds.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
114
3.1 Mmoire virtuelle et segmentation
On dsigne par mmoire virtuelle, une mthode de gestion de la mmoire physique permettant de
faire excuter une tche dans un espace mmoire plus grand que celui de la mmoire centrale MC.
Par exemple dans Windows et dans Linux, un processus fix se voit allou un espace mmoire de 4
Go, si la mmoire centrale physique possde une taille de 512 Mo, le mcanisme de mmoire
virtuelle permet de ne mettre un instant donn dans les 512 Mo de la MC, que les lments
strictement ncessaires l'excution du processus, les autres lments restant stocks sur le disque
dur, prts tre ramens en MC la demande.
Un moyen employ pour grer la topographie de cette mmoire virtuelle se nomme la segmentation,
nous figurons ci-aprs une carte mmoire segmente d'un processus.
Segment de mmoire
Un segment de mmoire est un ensemble de cellules mmoires contigus.
Le nombre de cellules d'un segment est appel la taille du segment, ce nombre n'est pas
ncessairement le mme pour chaque segment, toutefois tout segment ne doit pas dpasser
une taille maximale fixe.
La premire cellule d'un segment a pour adresse 0, la dernire cellule d'un segment adr
k
est borne par la taille maximale autorise pour un segment.
Un segment contient gnralement des informations de mme type (du code, une pile, une
liste, une table, ...) sa taille peut varier au cours de l'excution (dans la limite de la taille
maximale), par exemple une liste de donnes contenues dans un segment peut augmenter
ou diminuer au cours de l'excution.
Les cellules d'un segment ne sont pas toutes ncessairement entirement utilises.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
115
L'adresse d'une cellule l'intrieur d'un segment s'appelle l'adresse relative (au segment)
ou dplacement. On utilise plus habituellement la notion d'adresse logique permettant
d'accder une donne dans un segment, par opposition l'adresse physique qui
reprsente une adresse effective en mmoire centrale.
C'est un ensemble de plusieurs segments que le systme de gestion de la mmoire utilise pour allouer
de la place mmoire aux divers processus qu'il gre.
Chaque processus est segment en un nombre de segments qui dpend du processus lui-mme.
Adresse logique ou virtuelle
Une adresse logique aussi nomme adresse virtuelle comporte deux parties : le numro du segment
auquel elle se rfre et l'adresse relative de la cellule mmoire l'intrieur du segment lui-mme.
Remarques
Le nombre de segments prsents en MC n'est pas fixe.
La taille effective d'un segment peut varier pendant l'excution
Pendant l'excution de plusieurs processus, la MC est divise en deux catgories de blocs : les blocs
de mmoire libre (libr par la suppression d'un segment devenu inutile) et les blocs de mmoire
occupe (par les segments actifs).
Fragmentation mmoire
Le partitionnement de la MC entre blocs libres et blocs allous se dnomme la fragmentation
mmoire, au bout d'un certain temps, la mmoire contient une multitude de blocs libres qui
deviendront statistiquement de plus en plus petits jusqu' ce que le systme ne puisse plus
allouer assez de mmoire contigu un processus.
Exemple
Soit une MC fictive de 100 Ko segmentable en segments de taille maximale 40 Ko, soit un processus
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
116
P segment par le systme en 6 segments dont nous donnons la taille dans le tableau suivant :
Numro du segment Taille du segment
1 5 Ko
2 35 Ko
3 20 Ko
4 40 Ko
5 15 Ko
6 23 Ko
Supposons qu'au dpart, les segments 1 4 sont chargs dans la MC :
Supposons que le segment n2 devenu inutile soit dsallou :
Puis chargeons en MC le segment n5 de taille 15 Ko dans l'espace libre qui passe de 35 Ko 20 Ko :
La taille du bloc d'espace libre diminue.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
117
Continuons l'excution du processus P en supposant que ce soit maintenant le segment n1 qui
devienne inutile :
Il y a maintenant sparation de l'espace libre (fragmentation) en deux blocs, l'un de 5 Ko de mmoire
contigu, l'autre de 20 Ko de mmoire contigu, soit un total de 25 Ko de mmoire libre. Il est
toutefois impossible au systme de charger le segment n6 qui occupe 23 Ko de mmoire, car il lui
faut 23 Ko de mmoire contigu. Les systme doit alors procder une rorganisation de la mmoire
libre afin d'utiliser "au mieux" ces 25 Ko de mmoire libre.
Compactage
Dans le cas de la gestion de la MC par segmentation pure, un algorithme de compactage est lanc ds
que cela s'avre ncessaire afin de ramasser ces fragments de mmoire libre parpills et de les
regrouper dans un grand bloc de mmoire libre (on dnomme aussi cette opration de compactage
sous le vocable de ramasse miettes ou garbage collector)
La figure prcdente montre gauche, une mmoire fragmente, et droite la mme mmoire une
fois compacte.
Adresse virtuelle - adresse physique
Nous avons parl d'adresse logique d'une donne par exemple, comment le systme de gestion d'une
mmoire segmente retrouve-t-il l'adresse physique associe : l'OS dispose pour cela d'une table
dcrivant la "carte" mmoire de la MC.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
118
Cette table est dnomme table des segments, elle contient une entre par segment actif et prsent
dans la MC.
Une entre de la table des segments comporte le numro du segment, l'adresse physique du segment
dans la MC et la taille du segment.
Liaison entre Table des segments et le segment lui-mme en MC :
Lorsque le systme de gestion mmoire rencontre une adresse virtuelle de cellule (n segment,
Dplacement), il va chercher dans la table l'entre associe au numro de segment, rcupre dans
cette entre l'adresse de dpart en MC du segment et y ajoute le dplacement de l'adresse virtuelle et
obtient ainsi l'adresse physique de la cellule.
En reprenant l'exemple de la figure prcdente, supposons que nous prsentons l'adresse virtuelle ( k
, 8 ). Il s'agit de rfrencer la cellule d'adresse 8 l'intrieur du segment numro k. Comme le
segment nk est physiquement implant en MC partir de l'adresse 1005, la cellule cherche dans le
segment se trouve donc l'adresse physique 1005+8 = 1013.
La figure ci-aprs illustre le mcanisme du passage d'une adresse virtuelle vers l' adresse physique
travers la table des segments sur l'exemple ( k , 8 ).
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
119
La segmentation mmoire n'est pas la seule mthode utilise pour grer de la mmoire virtuelle, nous
proposons une autre technique de gestion de la mmoire virtuelle trs employe : la pagination
mmoire. Les OS actuels employant un mlange de ces deux techniques, le lecteur se doit donc d'tre
au fait des mcanismes de base de chaque technique.
3.2 Mmoire virtuelle et pagination
Comme dans la segmentation mmoire, la pagination est une technique visant partitionner la
mmoire centrale en blocs (nomms ici cadres de pages) de taille fixe contrairement aux segments
de taille variable.
Lors de l'excution de plusieurs processus dcoups chacun en plusieurs pages nommes pages
virtuelles. On parle alors de mmoire virtuelle pagine. Le nombre total de mmoire utilise par les
pages virtuelles de tous les processus, excde gnralement le nombre de cadres de pages disponibles
dans la MC.
Le systme de gestion de la mmoire virtuelle pagine est charg de grer l'allocation et la
dsallocation des pages dans les cadres de pages.
La MC est divise en un nombre de cadres de pages fix par le systme (gnralement la taille d'un
cadre de page est une puissance de 2 infrieure ou gale 64 Ko).
La taille d'une page virtuelle est exactement la mme que celle d'un cadre de page.
Comme le nombre de pages virtuelles est plus grand que le nombre de cadres de pages on dit aussi
que l'espace d'adressage virtuel est plus grand que l'espace d'adressage physique. Seul un certain
nombre de pages virtuelles sont prsentes en MC un instant fix.
A l'instar de la segmentation, l'adresse virtuelle (logique) d'une donne dans une page virtuelle, est
compose par le numro d'une page virtuelle et le dplacement dans cette page. L'adresse virtuelle est
transforme en une adresse physique relle en MC, par une entit se nommant la MMU (Memory
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
120
Management Unit) assiste d'une table des pages semblable la table des segments.
La table des pages virtuelles
Nous avons vu dans le cas de la segmentation que la table des segments tait plutt une liste (ou table
dynamique) ne contenant que les segments prsent en MC, le numro du segment tant contenu dans
l'entre. La table des pages virtuelles quant elle, est un vrai tableau indic sur les numros de pages.
Le numro d'une page est l'indice dans la table des pages, d'une cellule contenant les informations
permettant d'effectuer la conversion d'une adresse virtuelle en une adresse physique.
Comme la table des pages doit rfrencer toutes les pages virtuelles et que seulement quelques unes
d'entre elles sont physiquement prsentes en MC, chaque page virtuelle se voit attribuer un drapeau
de prsence (reprsent par un bit, la valeur 0 indique que la table est actuellement absente, la valeur
1 de ce bit indique qu'elle est actuellement prsente en MC).
Schma simplifi d'une gestion de MC pagine (page d'une taille de 64Ko) illustrant le mme
exemple que pour la segmentation, soit accs une donne d'adresse 8 dans la page de rang k, le
cadre de page en MC ayant pour adresse 1005, la page tant prsente en MC :
Lorsque la mme demande d'accs une donne d'une page a lieu sur une page qui n'est pas prsente
en MC, la MMU se doit de la charger en MC pour poursuivre les oprations.
Dfaut de page
Nous dirons qu'il y a dfaut de page lorsque le processeur envoie une adresse virtuelle localise dans
une page virtuelle dont le bit de prsence indique que cette page est absente de la mmoire centrale.
Dans cette ventualit, le systme doit interrompre le processus en cours d'excution, il doit ensuite
lancer une opration d'entre-sortie dont l'objectif est de rechercher et trouver un cadre de page libre
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
121
disponible dans la MC dans lequel il pourra mettre la page virtuelle qui tait absente, enfin il mettra
jour dans la table des pages le bit de prsence de cette page et l'adresse de son cadre de page.
La figure prcdente illustre un dfaut de page d'une page P
k
qui avait t anciennement charge dans
le cadre d'adresse adr
0
, mais qui est actuellement absente. La MMU recherche cette page par exemple
sur le disque, recherche un cadre de page libre (ici le bloc d'adresse adr
2
est libre) puis charge la page
dans le cadre de page et l'on se retrouve ramen au cas d'une page prsente en MC :
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
122
En fait, lorsqu'un dfaut de page se produit tous les cadres de pages contiennent des pages qui sont
marques prsentes en MC, il faut donc en sacrifier une pour pouvoir caser la nouvelle page
demande. Il est tout fait possible de choisir alatoirement un cadre de page, de le sauvegarder sur
disque et de l'craser en MC par le contenu de la nouvelle page.
Cette attitude qui consiste faire systmatiquement avant tout chargement d'une nouvelle page une
sauvegarde de la page que l'on va craser, n'est pas optimise car si la page que l'on sauvegarde est
souvent utilise elle pnalisera plus les performances de l'OS (car il faudra que le systme recharge
souvent) qu'une page qui est trs peu utilise (qu'on ne rechargera pas souvent).
Cette recherche d'un "bon" bloc librer en MC lors d'un dfaut de page est effectue selon plusieurs
algorithmes appels algorithmes de remplacement. Nous donnons une liste des principaux noms
d'algorithmes utilisables en cas de dfaut de page. Tous ces algorithmes diffrent par la mthode
qu'ils emploient pour choisir la page de remplacement (bloc libre) selon sa frquence d'utilisation ou
bien selon le temps coul depuis sa dernire utilisation :
NRU ( Not Recently Use )
LRU ( Last Recently Use )
LFU ( Last Frequently Use )
MFU ( Most Frequently Use )
NFU ( Not Frequently Use )
FIFO ( Fist In First Out )
L'algorithme LRU semble tre le plus performant dans le maximum de cas et il est celui qui est le
plus utilis. Cet algorithme ncessite une gestion supplmentaire des pages libres en MC selon une
liste d'attente : la page la plus rcemment utilise est la premire de la liste, elle est suivie par la
deuxime page la plus rcemment utilise et ainsi de suite jusqu'au dernier lment de la liste qui est
la page la moins rcemment utilise.
Le fondement pratique de cet algorithme se trouve dans le fait qu'une page qui vient d'tre utilise a
de bonne chance d'tre rutilise par la suite trs rapidement.
Dans les OS, les concepteurs laborent des variantes personnalises de cet algorithme amliorant tel
ou tel aspect.
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
123
4. Les OS des micro-ordinateurs
Les micro-ordinateurs apparus dans le grand public ds 1978 avec le Pet de Commodore, lApple et
lIBM-PC, ont rpt en acclr les diffrentes phases dvolution des gnrations dordinateurs.
Les OS des micro-ordinateurs ont suivi la mme dmarche et sont partis de systmes de
monoprogrammation comme MS-DOS et MacOS pour voluer en systmes multi-tches (version
affaiblie de la multiprogrammation) avec OS/2 , windows et Linux.
De nos jours un OS de micro-ordinateur doit ncessairement adopter des normes de convivialit dans
la communication homme-machine sous peine dtre rejet par le grand public. L, gt notre sens,
un des seuls intrts de limpact puissant du march sur linformatique. La pression des masses de
consommateurs a fait sortir linformatique des milieux dinitis, et sil ny avait pas cette pression,
les OS seraient encore accessibles uniquement par des langages de commandes textuels dont les
initis raffolent (la comprhension dun symbolisme abstrus dnotant pour certains la marque dune
supriorit toute illusoire et assez insignifiante). Notons aussi que la rticence au changement, la
rsistance la nouveaut et la force de lhabitude sont des caractristiques humaines qui nont pas
favoris le dveloppement des interfaces de communication. La communication conviviale des
annes 90-2000 rside essentiellement dans des notions inventes dans les annes 70-80 Xerox
PARC (Palo Alto Research Center of Xerox), comme la souris, les fentres, les menus droulants, les
icnes, et que la firme Apple a commercialis la premire dans lOS du MacIntosh ds 1984.
Windows de Microsoft et OS/2 dIBM se sont dailleurs rallis cette ergonomie.
Outre le systme Mac OS (un Unix-like version OS X) du MacIntosh d'Apple qui ne reprsente
qu'une petite part du march des OS vendus sur micro-ordinateurs ( environ 3% du march), deux OS
se partagent en proportion trs ingale ce mme march Windows de Microsoft ( environ 90% du
march) et Linux OS open source du monde libre ( moins de 10% du march), Linux reprsentant
presque 50% des OS installs pour les serveurs Web. Le BeOs est un autre systme Unix-like
dvelopp pour micro-ordinateur lui aussi fond sur des logiciels GNU mais il est officiellement
payant (le prix est modeste et quivalent aux distributions de Linux).
4.1 Le systme dexploitation du monde libre Linux
A.Tannenbaum crit en 1987 pour ses tudiants, un systme d'exploitation pdagogique baptis
MINIX fond sur le systme UNIX : c'est a naissance d'un systme d'exploitation fond sur Unix
sans droit de licence. Linus Thorvalds reprend l'OS Minix et en 1994, la premire version
oprationnelle et stable d'un nouveau systme est accessible gratuitement sous le nom de LINUX.
UNIX est un OS de multi-programmation commercial fond lui-mme sur les concepts du systme
MULTICS et construit par des chercheurs du MIT et des laboratoires Bell. Il s'agissait d'une version
allge de MULTICS qui a fonctionn durant les annes 1960-1970 sur de trs gros ordinateurs. Les
centres de calculs inter-universitaires franais de cette dcennie fonctionnaient sous MULTICS. L'OS
Unix a t largement implant et distribu sur les mini-ordinateurs PDP-11 de la socit DEC et sur
les VAX successeurs des PDP-11 de la mme socit.
Unix se voulait un systme d'exploitation portable et universel, malheureusement des versions
diffrentes et incompatibles entre elles ont t dveloppes et cet tat de fait perdure encore de nos
jours. Nous trouvons actuellement des Unix drivs de BSD (de l'universit de Berkeley) le plus
connu tant FreeBSD et des Unix drivs du System V (de la socit ATT).
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
124
Points forts de Linux
Linux n'tant pas soumis aux contraintes commerciales, reste unique puisque les enrichissements
qui lui sont apports ne peuvent tre propritaires.
Linux contient tout ce qu'une version commerciale d'Unix propose, sauf la maintenance systme
qui n'est pas garantie.
Linux rassemble et intgre des fonctionnalits prsentes dans les deux Unix BSD et System V.
Vous pouvez modifier Linux et le revendre, mais vous devez obligatoirement fournir toutes les
sources l'acheteur.
Linux supporte le multithreading et la pagination mmoire.
Points faibles de Linux
Utiliser le systme Linux, mme avec une interface comme KDE ou Gnome demande une
comptence particulire l'utilisateur, car Linux reste encore orient dveloppeur plutt
qu'utilisateur final.
Plusieurs distributions de Linux coexistent. Une distribution comporte un noyau commun,
portable et standard de Linux accompagn de diverses interfaces, de programmes et d'outils
systmes complmentaires et de logiciels d'installations, nous citons quelques distributions les
plus connues : Mandrake, Red Hat, Debian, Suse, Caldera, Cette diversit donne au final un
ventail de "facilits" qui semble tre trop large parce que diffrentes entre elles et pouvant
drouter l'utilisateur non informaticien.
Linux essaie de concurrencer le systme Windows sur PC, le match est encore ingal en nombre de
logiciels installs fonctionnant sous cet OS, malgr un important battage mdiatique effectu autour
de ce systme dans la fin des annes 90 et les rumeurs rcurrentes de la disparition de Windows voir
mme de la socit Microsoft.
4.2 Le systme dexploitation Windows de Microsoft
Le premier systme d'exploitation de PC (Personnal Computer) conu par la socit Microsoft dans
le dbut des annes 1980 se nomme MS-DOS ( systme de mono-programmation) qui a volu en
vritable systme de multi-programmation (avec processus, mmoire virtuelle, multi-tches
premptifetc) partir de Windows 95, puis Windows 98, Me. La premire version de Windows
non base sur MS-DOS a pour nom de code Windows NT au dbut des annes 1990, depuis
Windows 2000 qui est une amlioration de Windows NT, les successeurs comme Windows 2003, Xp
et longhorn sont des systmes d'exploitation part entire, qui possdent les mmes fonctionnalits
fondamentales qu'Unix et donc Linux.
Une grande diffrence entre Linux et Windows se situe dans la manire de grer l'interface utilisateur
(partie essentielle pour l'utilisateur final qui n'est pas un administrateur systme). Cette remarque peut
expliquer l'cart important d'installation de ces deux systmes sur les PC. En outre les dmarches
Les bases de linformatique - programmation - ( rv. . 04.01.2005 ) page
125
intellectuelles qui ont sous-tendu la construction de chacun de ces deux systme sont inverses.
En effet, Linux est driv d'un systme d'exploitation invent pour les gros ordinateurs des annes 70,
systme auquel il a t rajout un programme utilisateur non privilgi appel interface de
communication (KDE, Motif, Gnome, ) de cette architecture dcoule le foisonnement d'interfaces
diffrents droutant l'utilisateur de base.
Windows l'inverse, est parti d'un OS primitif et spcifique un PC pour intgrer au cours du temps
les fonctionnalits d'un OS de mainframe (gros ordinateur). L'interface de communication (le
fentrage graphique) est intgr dans le cur mme du systme. Le mode console (interface en ligne
de commande genre MS-DOS ou ligne de commande Linux) est prsent mais est trs peu utilis, les
fonctionnalits de base du systme tant assures par des processus fentrs.
Les deux systmes Linux et Windows fonctionnent sur les plates-formes bases sur les principaux
micro-processeurs quipant les PC du march (Intel majoritairement et AMD) aussi bien sur
l'architecture 32 bits que sur l'architecture 64 bits toute rcente.
Etant donn la remarquable croissance de l'innovation en technologie, les systmes d'exploitation
voluent eux aussi afin d'adapter le PC aux diffrents outils invents. Enfin, il y a bien plus
d'utilisateurs non informaticiens qui achtent et utilisent des PC que d'informaticiens professionnels,
ce qui implique une transparence et une convivialit obligatoire dans les communications homme-
machine. Un OS idal pour PC grand public doit convenir aussi bien au professionnel qu'
l'utilisateur final, pour l'instant Windows l'emporte trs largement sur Linux, mais rien n'est dit, le
consommateur restera l'arbitre.
Nous avons abord ici des fonctionnalits importantes d'un systme d'exploitation, nous avons
indiqu qu'un OS assurait d'autres grandes fonctions que nous n'avons pas abordes, comme la
gestion des entres-sorties, l'interception des interruptions, la gestion des donnes sur des
priphriques comme les disques durs dvolue au module de gestion des fichier de l'OS. Ici aussi le
lecteur intress par l'approfondissement du domaine des systmes d'exploitation peut se rfrer la
bibliographie, en particulier un ouvrage de 1000 pages sur les OS par le pre de MINIX
A.Tannebaum.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
126
1.7 Rseaux
Plan du chapitre:
1. Les topologies physiques des rseaux d'ordinateurs
1.1 Les diffrentes topologies de rseaux
1.2 Rseau local
2. Liaisons entre rseaux
2.1 Topologie OSI 7 couches
2.2 Rseau commutation de paquets
3. Internet et le protocole TCP/IP
Protocole, adresse IP
Routage
Protocole IP
Protocole TCP
Petite histoire d'Internet
Intranet
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
127
Nous nous proposons dans ce chapitre, d'tudier les dfinitions thoriques ncessaires la
comprhension des notions fondamentales de rseau numrique informatique. Lobjectif principal
dun rseau dordinateurs est de relier et de permettre lexploitation distance de systmes
informatiques laide des tlcommunications dans le cadre de rseaux grande distance (les
rseaux locaux emploient une technologie de cblage interne lentreprise).
Nous classons les rseaux informatiques en deux grandes catgories :
Les rseaux locaux LAN (Local Area Network) de quelques centaines de mtres d'tendue au
maximum, labors soit avec des fils, soit sans fil.
Le grand rseau international Internet concernant toute la plante.
Les raisons principales pour la mise en place d'un rseau informatique, sont de pouvoir partager des
donnes entre plusieurs ordinateurs et si possible partager le mme traitement sur plusieurs
ordinateurs.
Dans ce chapitre, aprs avoir nonc les principes fondateurs des rseaux, nous concentrerons notre
attention sur un rseau mondial incontournable de nos jours : Internet et son architecture logicielle
fonde sur l'environnement logiciel TCP/IP mondialement utilis et prsent dans les OS Unix et
Windows.
1. Les topologies physiques des rseaux d'ordinateurs
Il existe diffrentes manires dinterconnecter des systmes informatiques distance. On les nomme
topologies physiques de rseaux.
1.1 Les diffrentes topologies physiques de rseaux
A) Le point point simple
n liaisons pour n systmes S
i
interconnects,
1 seul point de connexion.
Architecture toile
B)Le point point en boucle
n liaisons pour n systmes S
i
interconnects,
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
128
Chaque S
i
passe linformation au S
i
suivant.
Architecture anneau
C) Le point point complet
n(n-1)/2 liaisons pour n systmes S
i
interconnects,
tous les S
i
sont relis entre eux.
Architecture maille
D) Le point point arborescent
n liaisons pour n systmes S
i
interconnects un mme noeud,
1 liaison pour chaque noeud vers ses descendants,(topologie toile chaque noeud).
Architecture hirarchique
E) Le multipoint
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
129
n liaisons pour n systmes S
i
interconnects un mme noeud,
les points de connexion sont relis par une mme voie.
Architecture en bus
Il existe aussi des rseaux construits selon des combinaisons de ces topologies entre elles.
1.2 Rseau local
Cest un rseau dont les distances de liaison sont trs faibles(entreprise, tablissement scolaire, une
salle,...).
Les rseaux locaux peuvent comporter ou non des serveurs (systme informatique assurant la
rpartition et la gestion de ressources communes aux utilisateurs) et utiliser lune des cinq
architectures prcdentes.
Ils sont composs de liaisons hertziennes ou tablies par cble. Lorsquil y a plusieurs serveurs,
chaque serveur peut tre un poste de travail comme les autres ou bien tre un serveur ddi (ne
faisant office que de serveur). Signalons que la partie rseau local des micro-ordinateurs dots dun
OS comme Windows ne ncessite aucun serveur ddi mais fonctionne aussi avec une version du
systme de type serveur.
Les deux principaux standards qui se partagent lessentiel du march des rseaux locaux sont
Ethernet (topologie en bus) et token-ring (topologie en anneau). Les protocoles (loi dchange
dinformation entre les systmes informatiques) sont trs nombreux. Le plus utilis quantitativement
dans le monde est TCP/IP (Transfert Control Protocol/Internet Protocol) qui est un protocole
synchrone orient bit (les informations sont des suites de bits).
L'Ethernet comme moyen de transport et d'accs
Le cblage Ethernet est le plus utilis dans le monde, il est fond sur la mthode "dtection de
porteuse accs multiple et dtection de collisions".
Ethernet permet de raccorder entre eux au plus 2
10
= 1024 ordinateurs.
Il est support physiquement selon le dbit souhait soit par du cble coaxial, soit de la paire de
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
130
fils torsads, soit de la fibre optique; ces diffrents supports peuvent coexister dans un mme
rseau.
Quelques exemples de dbits dlivrs par un cblage Ethernet :
L'Ethernet classique (10 BaseT) transportant l'information la vitesse de 10 Mbits/s ( 10 millions
de bits par seconde ). Avec l'Ethernet classique, la distance maximale thorique d'loignement de
deux machines avec un mme cble est de 5 Km. La pose de Hub (sorte de prise multiple rgnrant
le signal entrant) est ncessaire : au maximum 2 Hub qui sont spars par une distance thorique
maximale de 500 m.
Cette contrainte ramne la distance maximale d'loignement entre deux machines connectes grce
des Hub 1,5 Km, des techniques particulires permettent malgr tout d'atteindre les 5 Km avec des
Hub en utilisant de la fibre optique.
Le Fast Ethernet (100 BaseT) est une extension du 10 BaseT, il permet de transporter de
l'information la vitesse de 100 Mbits/s ( 100 millions de bits par seconde ) avec un mme cble sur
une distance maximale de 500 m qui correspond la limitation impose par la vitesse de transmission
du signal physique dans le conducteur. Dans la pratique selon le nombre de Hub, la distance
thorique maximale d'loignement entre deux machines est rduite d'environ la moiti.
Le Gigabit Ethernet (1000 BaseT) qui permet de transporter de l'information la vitesse de 1000
Mbits/s ( 1000 millions de bits par seconde ) par cble ou fibre optique, est une volution rcente de
l'Ethernet, l'augmentation de la vitesse de transmission rduit drastiquement la distance maximale
thorique d'loignement de deux machines avec un mme cble environ 50 m et quelques mtres
si elles sont connectes par des Hub.
Les chiffres qui sont donns sur les figures prcdentes concernant les distances, ne sont pas
prendre au pied de la lettre, car ils peuvent varier selon les technologies ou les combinaisons de
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
131
techniques utilises. Ce qu'il est bon de retenir, c'est le fait que dans cette technique Ethernet, la
longueur des connexions diminue avec la vitesse du dbit.
2. Liaisons entre rseaux d'ordinateurs
Il existe diverses techniques dinterconnexion de rseaux entre eux. Nous renvoyons le lecteur des
ouvrages spcialiss sur les rseaux. Nous allons brosser un tableau simple et gnral du rseau
mondial le plus connu de nos jours au niveau du grand public, le rseau Internet. Nous verrons
ensuite comment il est adapt par les spcialistes des architectures locales sous la forme dIntranet.
En premier lieu donnons quelques explications techniques sur un mode classique de transmission de
linformation utilis par de nombreux rseaux.
Vocabulaire de base employ
Dans un rseau informatique on distingue trois niveaux de description :
La topologie physique
La topologie logique
Les protocoles de transmission
La topologie physique dcrit l'infrastructure d'interconnexion des systmes informatiques.
La topologie logique est une architecture logicielle normalisant les critres de qualit et les
modalits "d'emballage" et de transmission des informations par la topologie physique.
Un protocole est un ensemble de rgles dcrivant l'mission et la rception de donnes sur un rseau
ainsi que la liaison entre une application externe et la topologie logique du rseau.
Nous avons dj examin au paragraphe prcdent les diffrentes topologies physiques (on dit aussi
architecture physique), nous proposons maintenant, la description du modle de rfrence le plus
rpandu d'une architecture (topologie) logique, mis en place depuis les annes 1980 par l'organisation
internationale de standardisation ( ISO ). Ce modle logique est appel Open System Interconnection
( OSI ).
2.1 Topologie OSI 7 couches
Le modle OSI sert de base la thorie gnrale des rseaux, c'est un modle thorique prsentant la
circulation des donnes dans un rseau, il est dcrit en 7 couches : les plus hautes sont abstraites et
les plus basses sont concrtes.
Ce modle dcrit trs prcisment la liaison qui existe entre deux nuds successifs d'un rseau (deux
ordinateurs, par exemple) d'un manire descendante et dcompose :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
132
Modle OSI 7 couches numrotes
Chaque couche rend un service dcrit dans la documentation de l'ISO et gr par un protocole
permettant de raliser ce service lorsque la couche est abstraite. Lorsque la couche est matrielle la
documentation dcrit comment le service est rendu par le composant matriel.
Chaque couche de niveau n communique avec la couche immdiatement suprieure n+1 (lorsqu'elle
existe) et la couche immdiatement infrieure n-1 (lorsqu'elle existe).
La couche physique la plus basse est la plus concrte elle est numrote 1, la couche application la
plus haute est la plus abstraite, elle est numrote 7.
Cette organisation en couche d'abstractions descendantes va se retrouver aussi dans la notion de
programmation structure par abstractions descendantes, il s'agit donc d'un fonctionnement constant
de l'esprit des informaticiens.
Nous dcrivons brivement chacune des 7 couches du modle OSI :
Nom de la couche Description du service rendu par la couche
7 - Application Transfert des fichiers des applications s'excutant sur l'ordinateur.
6 - Prsentation Codage des donnes selon un mode appropri.
5 - Session Gestion des connexions entre les ordinateurs.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
133
4 - Transport Gestion du transfert des donnes vers le destinataire.
3 - Rseau Schma gnral d'interconnection (adressage) afin d'assurer le reprage
physique du destinataire.
2 - Liaison Rgles permettant d'effectuer le rassemblage et l'acheminement des donnes
vers le matriel physique de la couche 1.
1 - Physique Description physique du transport des donnes travers des cbles, des hubs
2.2 Rseau commutation de paquets
Dans un tel type de rseau nous avons besoin de dfinir au moins trois concepts :
le message : linformation change entre deux systmes informatiques.
les paquets : des petites suites de bits constituant une partie dun message, (le message est
dcoup en plusieurs paquets).
le routage : cest laction (effectue par le routeur) qui permet la transmission, laiguillage et la
redirection des informations circulant sur le rseau un instant donn.
Un tel rseau est architectur selon une topologie plus ou moins fortement maille, entre les divers
concentrateurs. Les utilisateurs S
i
se connectent selon leur proximit gographique au concentrateur
le plus proche.
Dans le schma suivant, reprsentant une maille du rseau, nous supposons que lutilisateur
S
3
veuille envoyer un message M(image, fichier, son, etc...) S
10
. Nous allons suivre le
chemin parcouru par les paquets p
i
du message M pour aller de S
3
S
10
.
S
3
est directement connect au concentrateur [A], S
10
est directement connect au concentrateur [D].
Supposons aussi que le message M soit compos de 4 paquets : M=(p
1
,p
2
,p
3
, p
4
).
Le routage de dpart seffectue partir du concentrateur [A] et de la charge et de lencombrement
actuels du rseau. Ce sont ces deux critres qui permettent au routeur de prendre la dcision
dmission des paquets.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
134
Principe du routage :
Les paquets dans un tel rseau sont envoys dans nimporte quel ordre
et indpendamment les uns des autres vers des destinations diverses ;
chaque paquet voyage bien sr, avec ladresse du destinataire du
message.
a) Supposons que p
1
aille directement vers [D], puis que lencombrement oblige denvoyer p
2
[B]
puis p
3
, p
4
[C].
b) Puis [C] peut router directement p
3
, p
4
vers [D] (qui a dj reu p
1
).
c) Enfin [B] envoie p
2
[C] et celui-ci le redirige vers [D] (qui avait dj reu p
1
,p
3
et p
4
).
d) Lorsque p
2
arrive au concentrateur [D], le message M est complet, il peut tre reconstitu M =(p
1
,p
2
,p
3
, p
4
)et expdi son destinataire S
10
.
3. Internet et le protocole TCP/IP
Le rseau le plus connu se dnomme Internet. Chaque pays peut avoir mis en place un rseau
national, (par exemple en France, il existe un rseau national public TRANSPAC fonctionnant par
commutations de paquets sous protocole X25), le rseau Internet quant lui est international et
fonctionne par commutations de paquets sous protocole TCP/IP.
Cest actuellement le rseau mondial de transmission de donnes le plus utilis avec plusieurs
centaines de millions dutilisateurs.
Cest un rseau commutation de paquets.
Il est bas sur le protocole TCP/IP.
Il permet des milliers dautres rseaux locaux ou non de se connecter entre eux distance.
Explication pratique de la transmission de donnes sur Internet
Prenons un exemple pratique, M
r
. X situ Moscou dsire envoyer le message suivant "Bonjour cher
ami comment allez-vous ?" M
r
. Y situ Ankara, via le rseau Internet.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
135
Protocole, adresse IP
La communication entre deux machines distantes implique une normalisation des changes sous
forme de rgles. Un tel ensemble de rgles est appel un protocole de communication. Un protocole
dcompose la communication en sous-problmes simples traiter dnomm couche du protocole.
Chaque couche a une fonction prcise et fait abstraction du fonctionnement des couches suprieures
et infrieures.
Le protocole de communication TCP/IP utilis par Internet, est fond sur le modle OSI, il intervient
essentiellement sur 4 couches du modle OSI : application, transport, rseau et interface
Un individu est identifiable par son numro de scurit sociale (deux personnes diffrentes n'ont pas
le mme numro de scurit sociale), de mme chaque ordinateur branch sur Internet se voit
attribuer un numro unique qui permet de l'identifier.
On dnomme adresse IP un tel identifiant. Une adresse IP se prsente sous la forme de 4 nombres
(entre 0 et 255) que l'on spare par des points pour des raisons de lisibilit , exemple : 163.85.210.8.
Donc l'ordinateur de M
r
. X situ Moscou est connect Internet possde une adresse IP (par
exemple : 195.114.12.58), celui de Mr.Y possde aussi une adresse IP (par exemple :
208.82.145.124)
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
136
Le message initial de M
r
.X va tre dcoup par TCP/IP, fictivement pour les besoins de l'exemple en
quatre paquets (en fait la taille relle d'un paquet IP est d'environ 1500 octets) :
Le message initial de MrX est donc dcoup avec les en-ttes adquates :
(chaque en-tte/identifiant de paquet contient l'adresse de l'ordinateur de l'expditeur M
r
.X soit :
195.114.12.58 et celle du destinataire M
r
.Y soit : 208.82.145.124 )
Le routage
Supposons que nous avons la configuration de connexion figure ci-aprs :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
137
Le schma prcdent reprsente les points de routage fictifs du rseau Internet au voisinage de
Moscou et Ankara.
Le routage sur Internet est l'opration qui consiste trouver le chemin le plus court entre deux
points du rseau en fonction en particulier de l'encombrement et de l'tat du rseau.
Cette opration est effectue par un routeur qui peut tre soit un matriel spcifique raccord un
ordinateur, soit un ordinateur quip d'un logiciel de routage.
Chaque routeur dispose d'une table l'informant sur l'tat du rseau, sur le routeur suivant en fonction
de la destination et sur le nombre de routeurs ncessaires pour aller vers la destination.
Dans notre exemple, nous avons suppos que le routeur de Moscou soit branch avec les quatre
routeurs d'Ankara , d'Helsinki , de Berlin et de Bucarest :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
138
Informations collectes au moment de l'envoi
du 1
er
paquet partir de Moscou :
Ankara (tat : en rparation)
Helsinki (tat : disponible)
Berlin (tat : disponible)
Bucarest (tat : satur)
La table de routage aura peu prs cette allure :
Routeur Destination Nombre de routeurs Routeur suivant Etat
Moscou Ankara 5 Helsinki libre
Moscou Ankara 2 Bucarest satur
Moscou Ankara 3 Berlin libre
Moscou Ankara 1 Ankara indisponible
Il est vident que d'aprs la table prcdente seules deux destinations immdiates sont libres : le
routeur d'Helsinki ou le routeur de Berlin.
Comme le nombre de routeurs restant parcourir est moindre en direction de Berlin vers Ankara (3
routeurs : Berlin-Bucarest-Ankara) compar celui de la direction Helsinki vers Ankara (5 routeurs :
Helsinki-Oslo-Berlin-Bucarest-Ankara), c'est le trajet Berlin qui est choisi pour le premier paquet
"Bonjour".
Au bout de quelques instants, les 4 paquets obtenus partir du message de M
r
.X voyagent sur
Internet indpendamment les uns des autres vers des destinations diverses (n'oublions pas que
chaque paquet voyage avec ladresse du destinataire du message qui est situe Ankara).
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
139
Carte : Le voyage des paquets
Sur cette carte :
Le paquet n1 "Bonjour" , voyage vers le routeur de Bucarest.
Le paquet n2 "cher ami" , voyage vers le routeur de Londres.
Le paquet n3 "comment" , voyage vers le routeur d'Ankara.
Le paquet n4 "allez-vous ?" , voyage vers le routeur d'Athnes.
A l'arrive Ankara, le routeur d'Ankara reoit les paquets en ordre disperss et en des temps
diffrents et les stocke en attendant que le message soit complet :
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
140
Le routeur d'Ankara vrifie que les paquets sont tous bien arrivs, il redemande ventuellement les
paquets manquants, il envoi un accus de rception pour prvenir chaque routeur expditeur que les
donnes sont bien arrives.
Au final il y a rassemblage des paquets pour reconstituer le message original avant de le distribuer
au logiciel de lecture du message de M
r
.Y :
En savoir un peu plus sur : adressage IP et transport TCP
Le protocole TCP/IP est en fait un vocable pour un ensemble de protocoles de transport des donnes
sur Internet (passerelles, routage, rseau), fonds sur deux protocoles pres IP et TCP.
IP = Internet Protocol
TCP = Transmission Control Protocol
Le protocole IP :
permet des ordinateurs relis un rseau gr par IP de dialoguer grce la notion d'adresse
actuellement avec la norme IPv4 sous la forme de 4 nombres (entre 0 et 255) d'un total de 32 bits, ce
numro permet d'identifier de manire unique une machine sur le rseau, comme une adresse postale
avec un numro de rue (la nouvelle norme IPv6 tend le nombre d'adresses possibles).
Le protocole IP gnre donc des paquet nomms des datagrammes contenant une en-tte (l'adresse
IP) et des donnes :
Ces datagrammes sont remis une passerelle (opration de routage) destination d'un hte.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
141
Toutefois, si une adresse postale permet d'atteindre son destinataire prcisment c'est parce qu'elle
contient en plus du nom et du numro de la rue, le nom de la personne qui elle est adresse. Il en est
de mme pour une transmission sur Internet :
Action externe : M
r
. X situ Moscou envoie un message M
r
. Y situ Ankara.
Action informatique : L'ordinateur de M
r
. X envoie un message trs prcisment au logiciel de mail
de l'ordinateur de M
r
. Y, il est donc ncessaire que le logiciel de mail puisse tre identifi, c'est un
numro dans l'ordinateur rcepteur qui va l'identifier " le numro de port".
Ainsi il devient facile d'envoyer une mme machine identifie par son adresse IP, plusieurs donnes
destines des applications diffrentes s'excutant sur cette machine (chaque application est
identifie par son numro de port).
Le protocole TCP permet de :
Grer les ports
Vrifier l'tat du destinataire pour assurer la rception des paquets
Grer les paquets IP :
Dcoupe des paquets
Vrification de la rception de tous les paquets
Redemande des paquets manquants
Assemblage des paquets arrivs
La Donne initiale de chacun des 4 paquets ("Bonjour", cher ami" , "comment", "allez-vous ?") est
modifie par chaque couche du protocole TCP/IP par l'ajout d'une En-tte spcifique ncessaire la
ralisation de la fonction de cette couche.
Plusieurs protocoles plus gnraux sont fonds sur TCP/IP : DNS, SMTP, FTP, POP3, HTTP.
DNS (Domain Name Service) est un protocole permettant de convertir un nom de domaine Internet
en une adresse IP ( nom de domaine : www.machin.org, adresse obtenue : 203.54.145.88 )
SMTP (Simple Mail Transfert Protocol) est un protocole d'envoi de messages lectroniques (mails)
vers un destinataire hbergeant la bote aux lettres.
POP3 (Post Office Protocol version 3) est un protocole permettant de rapatrier sur votre machine
personnelle le courrier qui a t dpos dans la bote aux lettres de l'hbergeur.
FTP (File Transfert Protocol) est un protocole permettant de rapatrier sur votre machine ou
d'expdier partir de votre machine des fichiers binaires quelconques.
HTTP (Hyper Text Transfert Protocol) est un protocole permettant d'envoyer et de recevoir sur
votre machine des fichiers HTML au format ASCII.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
142
Dans le cas d'HTTP, le paquet construit contient alors une partie identifiant supplmentaire :
Ci-dessous la comparaison entre le modle thorique OSI et TCP/IP :
La petite histoire d'Internet
Le concept d'Internet n'est pas rcent. Il prend naissance en effet la fin des annes soixante dans les
rangs des services militaires amricains qui ont peur de voir leurs systmes d'information dtruits
par l'effet lectro-magntique induit par une explosion nuclaire. Il demande leurs chercheurs de
concevoir un moyen sr de transporter des informations qui ne dpendrait pas de l'tat gnral
physique du rseau, voir mme qui supportera la destruction physique partielle tout en continuant
d'acheminer les informations.
Officieusement ds les annes cinquante au USA, dans le plus grand secret est mis au point un rseau
de transmission de donnes militaires comme le rseau SAGE uniquement rserv aux militaires. Les
chercheurs du MIT vont mettre au point en 1969 la commutation de paquets dont nous venons de
parler, et concevrons l'architecture distribue qui sera choisie pour le rseau.
Officiellement, la premire installation effective sera connu sous le nom d'ARPANET aura lieu en
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
143
1970 en raccordant les 4 universits amricaines de Santa Barbara, de l'Utah, de Stanford et de Los
Angeles. Plusieurs universits amricaines s'y raccorderont et continueront les recherches jusqu'en
1974 date laquelle V.Cerf et R.Kahn proposent les protocoles de base IP et TCP. En 1980 la
direction de l'ARPA rendra public les spcifications des ces protocoles IP et TCP. Pendant vingt ans
ce rseau a servit aux militaires et aux chercheurs.
Il faut attendre 1990 pour voir s'ouvrir le premier service de fourniture d'accs au rseau par
tlphone. Au mme moment, ARPANET disparat pour laisser la place Internet. Un an plus tard,
les principes du Web sont tablis.
Le world wide web : www
C'est la partie d'Internet la plus connue par le grand public. A l'origine, le World Wide Web (WWW)
a t dvelopp en 1990 au CERN, le Centre Europen pour la Recherche Nuclaire, par R.Caillau et
T.Berners-Lee. Il autorise l'utilisation de textes, de graphiques, d'animations, de photographies, de
sons et de squences vido, avec des liens entre eux fonds sur le modle hypertextuel.
Le Web est un systme hypermdias du genre client/serveur.
C'est sur ces spcifications qu' a t labor le langage de description de document du web HTML
(Hyper Text Markup Language).
Pour lire et excuter ces hypermdias, il faut un logiciel que l'on dnomme un navigateur. Mosaic est
l'un des premiers navigateurs Web, distribu gratuitement au public. Depuis 1992, les utilisateurs de
micro-ordinateurs peuvent alors se connecter Internet partir de leur PC. Internet Explorer de
Microsoft et Netscape sont les deux principaux navigateurs les plus utiliss dans le monde.
Les points forts dInternet :
Il permet un citoyen de se connecter nimporte o en disposant de :
Un micro-ordinateur du commerce,
Un systme dexploitation supportant les protocoles adquats, tous les SE de micro-ordinateur
depuis 1997 disposent dun moyen simple de se connecter Internet (Windows, Linux en sont
deux exemples),
Un modem (se branchant sur une ligne tlphonique ordinaire) 56000bps ou plus (ADSL) ou
bien le cble en attendant de nouveaux produits de transport des signaux.
Un abonnement chez un fournisseur daccs Internet (noeud de communication concentrateur),
Enfin un navigateur permettant de dialoguer avec les diffrents serveurs prsents sur Internet.
Le revers de mdaille dInternet :
Linorganisation totale de cette gigantesque et formidable banque de donnes quest un tel rseau
mondial qui contient le meilleur et le pire, peut engendrer des dangers pour le citoyen et mme pour
une dmocratie si lon ne reste pas vigilant.
Enfin, selon les pays, les cots dutilisation restent importants (abonnement chez le fournisseur et
dure de communication tlphonique pour la connexion), la concurrence des fournisseurs d'accs
gratuit permet une baisse du cot gnral de la connexion. La connexion illimite et gratuite reste
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) page
144
l'objectif atteindre.
Internet est devenu un problme de socit
Trois courants de pense s'affrontent quant l'impact d'Internet sur les socit humaines :
Le courant du tout-Internet qui prne un nouveau monde virtuel o Internet intervient tous
les niveaux de la vie prive, publique, professionnelle, culturelle voir spirituelle.
Le courant des Internetophobes qui rejette ce nouveau monde virtuel vu comme une
accentuation encore plus marque entre les "riches" et les "pauvres" (la richesse ne s''valuant
plus uniquement en bien matriels, mais aussi en informations).
Le courant des "ni-ni", ceux qui considrent que tout outil mrite que l'on s'en serve avec
rflexion pour le plus grand nombre, mais qui pensent qu'un outil n'est pas une rvolution sociale
en lui-mme, seul l'homme doit rester au centre des dcisions qui le concernent.
La tendance au dbut du XXI scle est de renforcer l'aspect commercial (e-business) de ce type
de produit sous la pousse des thories ultra-librales, au dtriment de l'intrt gnral pour
une utilisation plus citoyenne au service de tous.
Intranet
Les entreprises conscientes du danger de pillage, de sabotage et despionnage industriel ont repris les
avantages de la conception dInternet en ladaptant la notion de rseau local.
Cest le nom dIntranet qui sest impos. Ce genre de rseau local dentreprise est fond sur les
mmes techniques, les mmes procds quInternet, mais fonctionne localement avec un certain
nombre d'acteurs bien identifis :
Il peut donc tre organis selon la dmarche interne de lentreprise.
Il nest accessible quaux personnes autorises si lentreprise le souhaite.
Il est connectable Internet par des passerelles contrles.
Il concerne toutes les activits logistiques, commerciales et de communication de lentreprise.
Il permet de mettre en uvre des activits de groupware (travaux rpartis par tches
identifies sur des systmes informatiques).
Il peut tre organis en Extranet, permettant la communication entre Intranets de diffrentes et bien
sr, un Intranet peut tre connect Internet.
Le lecteur pourra se spcialiser sur tous les types de rseaux de tlcommunication autres, auprs de
l'ouvrage de rfrence de 1100 pages du spcialiste franais G.Pujolle : "Les rseaux" cits en
bibliographie.
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) EXERCICES page
145
Exercices chapitre1
Questions :
On suppose que X, Y et Z sont des variables boolennes, donnez pour chaque circuit ci-dessous
l'expression de sa fonction logique S1(X,Y) ou S1(X,Y,Z), valuez la table de vrit de S1, puis
simplifiez par calcul S1.
Ex-1 : Ex-2 :
Ex-3 : Ex-4 :
Ex-5 :
Ex-6 :
Ex-7 : Lorsque l'on additionne deux entiers positifs en binaire sign dans un ordinateur, le calcul s'effectue dans l'UAL en
propageant la retenue sur tous les bits y compris le bit de signe.
Soient deux mmoires 7 bits Mx et My, contenant respectivement l'entier x et l'entier y reprsents en binaire sign avec
convention du zro positif :
1) Quel est le nombre entier positif maximal que l'on peut stocker dans Mx ou My ?
2) Quel est le nombre entier ngatif minimal que l'on peut stocker dans Mx ou My ?
3) Donnez le rsultat de l'addition de Mx+My dans une mmoire Mz du mme type que Mx et My, dans les
deux cas suivants :
3.1) Mx contient l'entier x = 12, My contient l'entier x = 25
3.2) Mx contient l'entier x = 42, My contient l'entier x = 25
Les bases de linformatique - programmation - ( rv. 04.01.2005 ) EXERCICES page
146
Ex-8 : Soit l'entier x = 325 :
1) Donnez sa reprsentation en codage binaire pur
2) Donnez sa reprsentation en codage Ascii tendu
3) Quel est en nombre de bits le codage le plus court ?
4) D'une manire gnrale pour un entier positif x n chiffres en reprsentation dcimale donnez un majorant
du nombre de bits dans la reprsentation de x en binaire pur, vrifiez le calcul pour x = 325.
Ex-9 : Soit une mmoire centrale et un registre adresse contenant l'adresse d'une case quelconque de la mmoire centrale :
On suppose que le registre adresse soit une
mmoire 12 bits.
On suppose que la taille du mot dans la mmoire
centrale est de 16 bits.
On suppose que la case x contient en binaire en
complment deux le nombre 325.
1) Combien de mots (de cases) au maximum peut contenir cette mmoire centrale ?
2) Quel est l'entier positif le plus grand reprsentable en complment deux dans un mot de cette mmoire centrale ?
3) Indiquez si les nombres suivants peuvent tre l'adresse d'un mot dans cette mmoire centrale ;
3.1)le nombre 683
3.2)le nombre 2AB
3.3)le nombre 2AB0
3.4)le nombre -5
Rponses :
Ex-1 : S1 = x .y + y simplifie S1 = y
Ex-2 : S1= (x + y) .y simplifie S1 = y
Ex-3 : S1= x + y +y simplifie S1 = 1
Ex-4 : S1= (x +y) + (x + y) y simplifie S1 = 1
Ex-5 : S1: (x + y + y.z ) . (y.z) simplifie S1 = y.z
Ex-6 : S1= (x y). (y.x) simplifie S1 = 0
Ex-7 : 1) le nombre maximum = 2
6
-1 (soit 63)
2) le nombre minimum = -2
6
(soit -64)
3.1) Mx+My = 37 ( car: 0001100 + 0011001 = 0100101 )
3.2) Mx+My = -3 ( car: 0101010 + 0011001 = 1000011 , le bit de signe a t cras)
Ex-8 : 1) x =101000101
2) x = 00110011 . 00110010 . 00110101 (car chaque symbole est cod sur 8 bits)
3) Le codage binaire pur du nombre x occupe 9 bits alors que son codage Ascii occupe 24 bits.
4) Soit k le nombre de bits (nombre de chiffres binaires) de l'entier x, en dcimal x est compos de n chiffres
dcimaux x < 10
n
, en binaire x se compose de k chiffres binaires x < 2
k
, ds que 2
k
~ 10
n
ou encore k ~ n
log
2
10, soit donc le nombre de bits est de l'ordre de la partie entire du nombre approch n log
2
10, soit k ~ 3,32 .
n . Pour un nombre 3 chiffres k ~ 9, donc 9 bits suffiront pour coder ce nombre en binaire pur.
Ex-9 : 1) cette mmoire centrale peut contenir au maximum 2
12
= 4096 mots.
2) le plus grand entier vaut : 2
15
-1 (soit 32737).
3) 683 (oui), 2AB (oui ), 2AB (non plus de 12 bits ), -5 (non, une adresse est un nombre positif ou nul)