Académique Documents
Professionnel Documents
Culture Documents
---------
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR
ET DE LA RECHERCHE SCIENTIFIQUE
---------
HAUTE ECOLE DE COMMERCE ET DE MANAGEMENT (HECM)
-----------
ANNEE ACADEMIQUE 2023-2024
-----------
INTITULE DU COURS
ARCHITECTURE
DES SYSTEMES
INFORMATIQUES
Présenté par :
Dr NOUNAGNON M. Maximin
1
Contenu
Chapitre 1: LES SYSTÈMES INFORMATIQUES .................................................................................4
I.1 DÉFINITION ET CLASSIFICATION .................................................................................4
I.2 LES SYSTÈMES INFORMATIQUES PERSONNELS ......................................................5
1.3 LES SYSTÈMES INFORMATIQUES D’ORGANISATION ..............................................6
1.3.1 Les composants.................................................................................................................................6
1.3.2 Le système d’information englobant ................................................................................................6
1.3.3 Les systèmes distribués....................................................................................................................7
1.3.4 Le cloud ...........................................................................................................................................7
1.4 LES SYSTÈMES INFORMATIQUES DE CONTRÔLE ET COMMANDE .........................9
1.4.1 Les composants.................................................................................................................................9
1.4.2 Les systèmes temps réel..................................................................................................................10
1.4.3 Les systèmes embarqués ou enfouis ...............................................................................................11
1.4.4 Les robots .......................................................................................................................................11
1.4.5 L’Internet des objets .......................................................................................................................12
Chapitre 2: L’ARCHITECTURE D’UN SYSTÈME INFORMATIQUE ...........................................13
2.1 LES ARCHITECTURES EN COUCHES ................................................................................14
2.2 L’ARCHITECTURE DE RÉFÉRENCE ..................................................................................15
2.2.2 La couche système/réseau...............................................................................................................16
2.3.2 Les équipements mobiles sous Android ..................................................................................18
2.3.3 Les solutions de virtualisation .................................................................................................20
Chapitre 3 : LES UNITES ET SYSTEMES DE STOCKAGE .............................................................22
3.1 LES UNITÉS DE STOCKAGE ...........................................................................................23
3.1.1 La hiérarchie des mémoires .....................................................................................................23
3.1.2 Les registres.............................................................................................................................24
3.1.3 La mémoire centrale ................................................................................................................24
3.1.4 Les mémoires cache ................................................................................................................26
3.1.5 Les SSD ..........................................................................................................................................28
3.1.6 Les disques magnétiques .........................................................................................................28
3.1.7 Les supports de sauvegarde et d’archivage .............................................................................30
3.1.8 Les mémoires mortes...............................................................................................................30
3.2 LES SYSTÈMES DE STOCKAGE ...........................................................................................31
3.2.1 Les architectures RAID ...........................................................................................................31
3.2.3 Les SAN ..................................................................................................................................34
3.2.4 Le stockage en ligne sur le cloud ............................................................................................34
Chapitre 4 : LES UNITES ET SYSTEMES DE TRAITEMENT.........................................................35
4.1 L’UNITÉ CENTRALE DE TRAITEMENT ............................................................................36
4.1.1 Les composants de l’unité centrale de traitement ....................................................................36
4.1.2 Les bus ............................................................................................................................................37
2
4.1.4 Le langage machine .................................................................................................................39
4.2 LES SYSTÈMES DE TRAITEMENT ......................................................................................46
4.2.1 Généralités sur les systèmes parallèles ...........................................................................................46
4.2.2 Les CPU multicœurs ...............................................................................................................48
4.2.3 Clusters et grilles .....................................................................................................................49
4.2.4 Systèmes à haute disponibilité et à équilibrage de charge.......................................................50
3
Chapitre 1: LES SYSTÈMES
INFORMATIQUES
Processeur (s) A u tr e
... com p osan t ...
Or di nateu r
Système informatique
4
des formes extrêmement variées selon le contexte dans lequel ils s’insèrent. On peut
distinguer, en première approximation, les systèmes informatiques personnels, les
systèmes informatiques d’organisation et les systèmes informatiques de contrôle et
commande. Chacune de ces catégories principales est analysée et éventuellement
affinée dans les paragraphes qui suivent.
5
1.3 LES SYSTÈMES INFORMATIQUES D’ORGANISATION
1.3.1 Les composants
Les systèmes informatiques d’organisation sont hébergés au sein des organisations
de toute nature que sont les entreprises, les associations, les administrations, les
laboratoires de recherche, etc. Ils comprennent une grande diversité de composants :
- tout d’abord des ordinateurs, comme des postes de travail, des serveurs
d’applications, des serveurs de données, des grappes de machines (cluster), des
supercalculateurs, etc.,
- ensuite, beaucoup d’autres équipements de traitement et de transmission de
données, comme des capteurs et actionneurs, des concentrateurs,
commutateurs et routeurs, des robots, des machines dédiées, etc.,
- enfin des réseaux, soit locaux à l’échelle d’un bâtiment – LAN pour Local
Area Network –, soit métropolitains à l’échelle d’une ville – MAN pour
Metropolitan Area Network –, soit étendus jusqu’à l’échelle mondiale – WAN
pour Wide Area Network – à l’image d’Internet.
1.3.2 Le système d’information englobant
Le système informatique constitue l’infrastructure technique du système
d’information de l’organisation. Ce qu’on appelle système d’information de
l’organisation comporte, outre le système informatique, un ensemble organisé
d’autres ressources, humaines, organisationnelles et immatérielles, comme des
méthodes, des règles, des procédures, etc. Le système d’information est destiné à
faciliter le fonctionnement de l’organisation en lui fournissant les informations utiles
pour atteindre ses objectifs.
Dans ces définitions, les termes donnés, quand on parle du système informatique, et
information, quand on parle du système d’information, ne sont pas équivalentes.
Une donnée est la description d’un élément ponctuel de la réalité, comme une mesure
ou une observation. Par exemple, le chiffre des ventes d’un produit à une certaine
date est une donnée. Une donnée est représentée dans le système informatique sous
une forme binaire, c’est-à-dire à deux états, notés 0 et 1 par convention. Cette forme
binaire peut correspondre à une certaine représentation des nombres, adaptée au
calcul automatique, à une certaine codification des caractères, ou à une certaine
numérisation d’un objet (son, image, etc.).
Une information est l’interprétation humaine d’une donnée ou d’un ensemble de
données qui lui donne du sens. Par exemple, la forme de la courbe annuelle des
ventes d’un produit constitue une information significative pour un responsable
6
commercial. L’interprétation humaine des informations peut conduire à des
connaissances de plus haut niveau qui peuvent guider les actions. Par exemple, le fait
que certains produits soient saisonniers est une connaissance qui va influencer la
gestion des ventes.
Aujourd’hui, seule une faible partie des connaissances est représentée explicitement
dans les systèmes informatiques. L’essentiel des connaissances, dites connaissances
tacites, se situe dans les têtes des personnes. On peut dire schématiquement que les
données sont la matière première du système informatique alors que les informations
et les connaissances demeurent majoritairement la matière première de la
composante humaine du système d’information. La figure 1.2 ci-après résume les
relations entre tous ces concepts.
Système d’information
i n f ormat
Niveau des ions et d es conna
informations i
et des
connaissances
Syst èm e
i nf ormat i que
( niveau des donn é es )
Ordinateur s
Ressources matérielles ,
logicielles, données
1.3.4 Le cloud
L’informatique « en nuage » (cloud, en anglais) est une déclinaison récente des
systèmes distribués. Il s’agit de l’exploitation de serveurs distants par l’intermédiaire
d’un réseau, le plus souvent Internet. Ces serveurs sont loués à la demande à des
fournisseurs externes selon l’utilisation (pay per use) ou forfaitairement. Par leur
7
intermédiaire, trois principaux types de services peuvent être fournis, schématisés par
la figure 1.3.
Utilisateurs Consommer
SAAS
Développeurs Construire
PAAS
Architectes Héberge r
IAAS
Le premier type est appelé « infrastructure en tant que service » (IAAS pour
Infrastructure As A Service). Le fournisseur loue un parc informatique virtualisé créé
et géré par une couche logicielle de virtualisation sur les serveurs de son centre de
ressources.
Les architectes du système client définissent l’infrastructure virtuelle sur laquelle
sont hébergés à distance tous les composants logiciels souhaités. L’organisation
économise ainsi l’achat de la couche matérielle de tout ou partie de son système
informatique.
Le deuxième type est appelé « plateforme en tant que service » (PAAS pour Platform
As A Service). Le fournisseur loue une plateforme d’exécution complète des
applications, comprenant un ensemble de machines virtuelles en réseau avec leurs
systèmes d’exploitation et des outils d’infrastructure pour la distribution des
applications, le stockage, la sauvegarde, l’archivage, la surveillance, la sécurité, etc.
Les développeurs du système client le construisent sur cette plateforme. Comme au
niveau IAAS, un tel service offre une grande « élasticité », c’est-à-dire une capacité
d’adaptation immédiate aux besoins (croissance ou diminution de la charge par
exemple) et une mutualisation des coûts. L’utilisateur économise l’achat d’une
infrastructure matérielle et logicielle propre pour tout ou partie de son système
informatique
8
c) Logiciel en tant que service
Le troisième type est appelé « logiciel en tant que service » (SAAS pour Software As
A Service). Le fournisseur loue des applications accessibles via un simple navigateur
web. Par exemple, les Google Apps for Work comprennent des services
professionnels de messagerie, de visioconférence, de stockage en ligne et d’autres
applications d’entreprise.
Toutes les couches matérielles et logicielles sous-jacentes aux applications sont
cachées à l’utilisateur du service et mises à disposition dans le cadre de la
consommation du logiciel.
Le développement conjoint des applications web et du SAAS ouvre la perspective de
systèmes d’information accessibles 7 jours sur 7, 24 heures sur 24, en tout lieu et sur
tout appareil connecté (ordinateur, tablette, smartphone, téléviseur connecté, etc.).
On parle de solution Any Time, Any Where, Any Device, Any Content.
Dès aujourd’hui, le stockage de données sur le cloud et les logiciels sur le cloud sont
de plus en plus utilisés, même par le grand public dans le contexte des systèmes
informatiques personnels.
Procédé
Mesures Commandes
Capteur Actionneur
Consignes Visualisations
Opérateur
9
Dans le cas de procédés complexes, incluant de multiples entités physiques,
l’opérateur fournit des objectifs à atteindre et suit le comportement global du
procédé. Cette fonction de supervision constitue une couche de niveau supérieur par
rapport à celle de conduite des entités du procédé
Opérateurs
Supervision
Commande-contrôle
Procédé complexe
11
Il existe une très grande variété de robots, qui se distinguent par leur degré
d’autonomie plus ou moins grand vis-à-vis des opérateurs, leur degré d’adaptabilité
aux évolutions de leur environnement, leur capacité d’apprentissage et de créativité,
c’est-à-dire d’invention de comportements ou d’objectifs non prévus par leurs
concepteurs. Ils peuvent également être classés en grandes catégories fonctionnelles :
- robots industriels, comme dans les chaînes de montage de voitures,
- robots explorateurs, pour la conquête spatiale, l’exploration de décombres,
l’exploration sous-marine, le déminage, etc.,
- robots de service, pour l’agriculture (traite, cueillette, etc.), les transports, les
tâches domestiques (robot-aspirateur, robot-tondeuse, etc.), l’aide aux personnes
âgées ou handicapées, l’assistance médicale et chirurgicale, etc.
- robots ludiques, comme les robots de compagnie,
- robots humanoïdes, dont l’apparence rappelle celle d’un corps humain, etc.
La robotique suscite depuis l’origine énormément d’interrogations et de controverses
liées aux questions de sécurité, de conséquences sociales, sur l’emploi en particulier,
et plus fondamentalement de cohabitation et de frontière entre robots et humains.
12
Chapitre 2: L’ARCHITECTURE D’UN
SYSTÈME INFORMATIQUE
13
2.1 LES ARCHITECTURES EN COUCHES
Une architecture de système se décrit traditionnellement comme un ensemble de
couches. Les couches basses d’un système sont proches du matériel alors que les
couches hautes sont proches des utilisateurs. Idéalement, comme le montre la
figure 2.1, chaque couche utilise uniquement les services offerts par la couche
immédiatement inférieure et offre ses services à la couche immédiatement
supérieure.
Utilisateurs
Couche n (la plus haute)
…..
Couche i+1
Utilise les Offre ses
services de services à
Couche i
…….
Couche 1(la plus basse)
Matériel
Interface du service
Service
Implantation du
service
Figure2.2 : interface et implantation d’un service
14
2.2 L’ARCHITECTURE DE RÉFÉRENCE
Ce paragraphe décrit une architecture de référence en couches des systèmes
informatiques, synthétisée par la figure 2.3. La description détaillée des divers
composants de cette architecture sera fournie tout au long de cet ouvrage.
5. Couche des
applications
Couches hautes
4. Couche distribution
3. Couche 3.2. Services additionnels Couche
système/réseau 3.1. Noyau Système/réseau
2. Couche du langage 2.2. Couche du langage machine
machine 2.1. Couche du microcode Couches basses
1. Couche du matériel
Figure2.3 : l’architecture de référence des systèmes informatique
2.2 L’architecture de référence
2.2.1 Les couches basses
La couche la plus basse, notée couche 1 dans la figure 2.3, est celle du matériel.
Elle comprend les processeurs, les mémoires, les équipements d’entrée/sortie,
les équipements réseau, etc. À ce niveau, les données en forme binaire sont
traitées, stockées et transférées.
Au-dessus du matériel, la couche logicielle la plus basse est celle du langage
machine (couche 2). C’est-à-dire du langage en forme binaire, « directement »
exécutable dans les circuits électroniques du processeur.
Le mot directement est mis entre guillemets car ce n’est pas toujours réellement
le cas. C’est vrai uniquement dans le cas des processeurs possédant une unité de
commande câblée (matérielle). L’unité de commande d’un processeur recherche
successivement chaque instruction qu’il doit exécuter, l’analyse et la met en
œuvre en donnant une suite d’ordres aux autres composants de la machine (c/
paragraphe 4.1.1). Dans une unité de commande câblée, ce processus de mise en
œuvre est figé dans les circuits électroniques. Dans le cas d’une unité de
commande microprogrammée (logicielle), à chaque instruction du langage
machine correspond un ensemble de micro-instructions qui décrivent son
processus de mise en œuvre. Ce microprogramme ou microcode, stocké en
mémoire en lecture seulement (ROM pour Read Only Memory), est exécuté pour
mettre en œuvre chaque instruction. Cette approche, fréquente aujourd’hui,
donne des possibilités d’évolution des instructions du processeur par simple
modification de leur microcode.
15
L’architecture de référence de la figure 2.3 fait donc apparaître une éventuelle
couche du microcode (couche 2.1) sous la couche du langage machine
proprement dite (couche 2.2).
Dans la suite de l’ouvrage, les deux premières couches, 1 et 2, sont parfois
regroupées sous le vocable « couches basses ».
16
fournir une interface de programmation (API) de « haut niveau » aux
applications distribuées, plus facile à utiliser et plus spécialisée que les API de «
bas niveau » de la couche système/réseau,
masquer l’hétérogénéité des composants (systèmes d’exploitation,
matériels, réseaux),
rendre la répartition des traitements et des données invisible
(transparente),
fournir des services d’usage courant pour construire les applications
distribuées.
2.2.4 La couche des applications
Enfin la couche 5 est la couche des applications. On peut distinguer au sein des
applications :
les applications distribuées, qui exploitent toutes les couches inférieures
(4 à 1),
les applications locales, qui s’appuient directement sur la couche
système/réseau et les couches inférieures (3 à 1).
Dans la suite de l’ouvrage, les deux dernières couches, 4 et 5, sont parfois
regroupées sous le vocable « couches hautes ».
17
Firmware
Langage machine
Microcontrôleur
18
a) La couche système/réseau
Le noyau du système d’exploitation Android est un noyau Linux modifié. Il
fournit les services classiques comme la gestion des processus, la gestion de la
mémoire, la gestion du matériel (mémoire flash, caméra, son, alimentation, etc.)
et la gestion des communications.
Ce noyau Linux n’est pas manipulable directement par les utilisateurs.
Cependant, avec des applications comme Android Terminal Emulator, il est
possible d’utiliser les commandes de base du système Linux dans un pseudo-
terminal.
19
télécharger ou développer, principalement en Java, toutes les applications qu’ils
souhaitent.
20
inférieures peuvent être optimisées. Ce type de solution est plus efficace mais
aussi plus complexe à mettre en œuvre
Machines virtuelles
21
Chapitre 3 : LES UNITES ET
SYSTEMES DE STOCKAGE
22
3.1 LES UNITÉS DE STOCKAGE
- leur vitesse, c’est-à-dire le temps moyen d’accès aux données, et leur débit,
c’est-à-dire le nombre de données lues ou écrites par seconde,
- leur mode d’accès aux données, c’est-à-dire dans l’ordre de leur rangement
pour l’accès séquentiel ou via une adresse pour l’accès direct,
- leur durabilité, c’est-à-dire leur caractère persistant ou volatil. Les
mémoires vives, volatiles, perdent leur contenu quand le système
informatique est privé d’alimentation électrique suite à un arrêt ou une
panne. Les mémoires persistantes, non volatiles, préservent au contraire
leur contenu même en l’absence d’alimentation électrique.
Avec les technologies actuelles, plus une mémoire est efficace, en termes de
vitesse d’accès cl de débit, plus elle est chère, ce qui tend à limiter sa capacité.
Les systèmes informatiques | exploitent en conséquence une « hiérarchie des
mémoires » allant de la mémoire la plus i efficace, la plus chère et de plus faible
capacité à la mémoire la moins efficace, la moins chère Cl de plus grande
capacité. Les capacités s’expriment en kilo-octet (210 = 1 024 ≈ 1 000),
mégaoctet (220 ≈ 1 000 000), gigaoctet (230 ≈ 1 000 000 000), téraoctet (240), etc.
La hiérarchie actuelle des mémoires comprend dans cet ordre :
- les registres (mémoires les plus petites, les plus efficaces et les plus
chères),
- les mémoires cache,
- la mémoire centrale,
- les SSD {Solid-State Drive),
- les disques magnétiques,
- les supports de sauvegarde et d’archivage (mémoire les plus grandes, les
moins efficaces et les moins chères).
Les trois premiers types sont volatils alors que les trois suivants sont persistants.
L’accès direct aux données est possible pour tous, sauf pour les supports de
sauvegarde et d’archivage du type cassette ou bande magnétique, qui sont
exclusivement à accès séquentiel. Toutes ces mémoires sont en lecture/écriture,
23
contrairement aux mémoires mortes en lecture seulement (ROM pour Read-
),
Only Memory) qui constituent une catégorie un peu à part, étudiée au paragraphe
3.1.8.
24
soit le mot concerné. D’où le qualificatif de « mémoire à accès aléatoire » ou
RAM pour Random Access Memory, également utilisé.
L’adresse à lire ou à écrire doit être placée dans un registre spécialisé, le registre
adresse mémoire (RAM *). Un dispositif, le décodeur, sélectionne la bonne
cellule. En cas d’écriture, commandée par une microcommande d’écriture, la
donnée à écrire doit être placée dans un autre registre spécialisé, le registre
donnée mémoire (RDM). En cas de lecture, commandée par une
microcommande de lecture, c’est la donnée lue qui est rangée dans le RDM. La
figure 3.1 schématise cette organisation. Les notions de microcommande et de
bus seront précisées au paragraphe 4.1.1
25
intégrées que les RAM statiques. Elles sont utilisées dans les mémoires
centrales.
La mémoire centrale peut être sujette à des erreurs soit permanentes (usure,
défaut de fabrication), soit intermittentes (alimentation électrique perturbée,
particules alpha, etc.). On stocke souvent chaque mot de M bits avec K bits
supplémentaires permettant de détecter et de corriger d’éventuelles erreurs. Ces
K bits de contrôle sont calculés avant écriture en mémoire, stockés en mémoire
et recalculés en lecture pour comparaison et éventuellement correction de la
donnée (cf. paragraphe 6.11).
b) La mémoire virtuelle
Une adresse sur N bits permet d’adresser 2yV cellules. Par exemple, avec des
adresses de 32 bits on peut adresser environ 4 millions de cellules, ce qui est
souvent très insuffisant. Les ordinateurs actuels utilisent donc fréquemment le
concept de mémoire virtuelle. Cette approche, qu’illustre la figure 3.2, repose
sur une traduction à la volée d’adresses virtuelles, appartenant à un espace
d’adressage virtuel beaucoup plus grand que l’espace d’adressage physique, en
adresses physiques en mémoire centrale. C’est la MMU (Memory Management
Unit) qui réalise cette traduction. La mémoire virtuelle utilise une partie de la
mémoire externe, disque en général, comme extension de la mémoire centrale,
avec un va-et-vient de zones de tailles fixes, appelées pages, entre les deux.
C’est le système d’exploitation qui transfère, selon les adresses demandées, les
pages utiles vers la mémoire physique et les pages inutiles vers la mémoire
externe. Ce point sera approfondi lors de l’étude des fonctions des systèmes
d’exploitation au chapitre 7.
Unité Mémoire
MMU
centrale Adresse Adresse centrale
mémoire
virtuelle
Exception MMU
26
mémoires centrales des ordinateurs, même si les deux progressent très
rapidement. Il faut actuellement de l’ordre de 300 cycles processeur pour
accéder à un mot en mémoire centrale. Les mémoires cache cherchent à
masquer en partie ces différences, en accélérant l’accès aux données les plus
utilisées.
Un cache est une mémoire rapide qui enregistre temporairement des copies
de données provenant de la mémoire centrale (ou plus généralement d’une
certaine source), afin de diminuer le temps d’une nouvelle lecture de ces
données. Les architectures actuelles comprennent des caches d’instructions,
des caches de données et des caches mixtes instructions/données. Les
processeurs utilisent souvent plusieurs niveaux de caches : les plus proches
étant plus rapides mais aussi plus petits que ceux plus éloignés du processeur.
Le cas le plus classique est celui d’un processeur ayant deux niveaux de
cache embarqués dans le processeur (caches L1 et L2) et souvent un
troisième niveau de cache (L3) situé en dehors du processeur.
Le mode de fonctionnement est le suivant, si on suppose l’existence d’un seul
niveau de cache. Le processeur demande une donnée, c’est-à-dire un mot
mémoire. Le cache vérifie s’il possède cette donnée. S’il la possède, on parle
de « succès du cache », il la fournit au processeur. S’il ne la possède pas, on
parle de « défaut du cache », il la demande à la mémoire centrale, la transmet
au processeur et la stocke pour d’éventuelles utilisations ultérieures.
Deux « principes » expliquent l’accroissement notable des performances
résultant de l’utilisation d’un cache :
- Le principe de localité spatiale indique que l’accès à une donnée située à
une adresse A va probablement être suivi d’un accès à une zone très proche
de A. Cela résulte de l’accès principalement séquentiel aux instructions et
des accès fréquents à des ensembles consécutifs de données. Il est donc
intéressant de transférer dans le cache non pas la seule donnée demandée
mais un bloc de plusieurs mots autour de cette donnée.
- Le principe de localité temporelle indique que l’accès à une zone mémoire
à un instant t a de fortes chances de se reproduire rapidement après en t +
n. Cela résulte de l’existence fréquente de traitements répétitifs. C’est
pourquoi la donnée est conservée le plus longtemps possible dans le cache.
En conséquence de ces principes, le cache contient des blocs de cellules
mémoires contiguës, appelés lignes. Comme illustré par la figure 3.3, les
transferts avec le processeur se font par mots alors que les transferts avec la
mémoire se font par blocs. La politique de remplacement des blocs dans le cache
27
doit permettre de conserver le plus longtemps possible les données ayant fait
l’objet d’un accès. Pour charger un nouveau bloc, on peut supprimer par
exemple le plus ancien dans le cache (politique FIFO pour First in First Out) ou
le plus anciennement 'jj utilisé (politique LRU pour Last Recently Used).
Unité Mémoire
centrale Mot Cache Bloc centrale
28
Sens de rotation
Il existe plusieurs types d’interfaces pour connecter les disques, comme ATA
(Advanced Technology Attachment), Serial-ATA (SATA) et SCSI (Small
Computer System Interface).
29
3.1.7 Les supports de sauvegarde et d’archivage
La sauvegarde (backup) correspond à la création d’une copie de sécurité sur un
support de mémorisation différent de l’original.
On peut procéder à une sauvegarde complète du support ou à des sauvegardes
partielles. Parmi ces dernières, on distingue :
- Les sauvegardes incrémentales, qui ne contiennent que les éléments
modifiés depuis la précédente sauvegarde. Pour reconstituer le support complet,
il faut remonter à la dernière sauvegarde complète et appliquer toutes les
sauvegardes incrémentales suivantes.
- Les sauvegardes différentielles, qui contiennent tous les éléments
modifiés depuis la p, dernière sauvegarde complète.
Ces trois modes, sauvegarde totale/incrémentale/différentielle, ont chacun leurs
avantages et b leurs inconvénients en termes de durée et d’espace de stockage
occupé. Le choix du mode et g de la fréquence de sauvegarde dépend de
l’importance des données et de leur fréquence de modification.
L’archivage correspond à une conservation à long terme de contenus a priori
figés pour des raisons légales ou d’information. La sauvegarde et l’archivage
s’accompagnent souvent de la compression des données.
Les disques magnétiques, les supports portables (clé USB, DVD-ROM, etc.) et
les supports g à accès séquentiel (bandes et cassettes magnétiques) sont utilisés à
la fois pour la sauvegarde IL.' cl pour l’archivage.
3.1.8 Les mémoires mortes
À l’origine, les mémoires mortes étaient des mémoires électroniques persistantes
en lecture seulement, c’est-à-dire dont le contenu était figé à la fabrication
{Read-Only Memory ou ROM). Avec l’évolution des technologies, le terme
mémoire morte inclut maintenant toutes les mémoires persistantes dont le
contenu est fixé initialement, essentiellement pour des lectures, mais qui peut
aussi, plus ou moins facilement, être modifié.
Plusieurs générations se sont succédé, nommées PROM {Programmable Read
Only Memory) constituées de « fusibles » pouvant être grillés (0) ou non (1),
EPROM {Erasable Programmable Read Only Memory) effaçables par des
ultraviolets, EEPROM {Electrically Erasable Read Only Memory) effaçables
électriquement. Les mémoires flash sont une variété de mémoire EEPROM
rapide et dense, effaçable par plage de données et non par mot mémoire isolé.
Les mémoires mortes sont utilisées à diverses fins, pour le stockage :
- des éléments nécessaires au démarrage des ordinateurs (BIOS),
30
- du microcode des instructions, dans le cas des séquenceurs microprogrammés,
- du firmware de certains systèmes embarqués et équipements, tels les disques
durs, les routeurs, les appareils photo numériques, etc.
> Le RAID 0
Le RAID 0 ou « entrelacement de disques » {stripping) est une architecture de
répartition des données sur deux disques (ou plus), qui améliore les
performances grâce à la possibilité de lectures/écritures parallèles. Dans cette
approche, les blocs de données {stripes) sont répartis en « lignes » successives
sur les différents disques.
Dans la configuration à deux disques de la figure 3.5, on peut lire ou écrire en
parallèle Al et A2 par exemple.
31
Le RAID 1
Le RAID 1 ou mirroring, décrit par la figure 3.6, est une architecture
redondante, avec deux disques (ou plus) qui contiennent à tout moment
exactement les mêmes blocs de données. On parle aussi de disques « miroirs ».
Le RAID 1 confère au stockage des données une certaine tolérance aux pannes
matérielles
32
N-1 blocs de données restants et du bloc de parité. En effet, le ième bit du bloc de
parité Ap(i) est le résultat d’un « ou exclusif » (xor) entre les i èmes bits des blocs
de sa « ligne » :
Ap(i)=Al(i) xor A2(i) xor A3(î) xor ... xor AN(i)=Al(i).
L’opération xor a la propriété suivante :
Ap(i) xorA2(«) xor A3(i)xor...xor AN(i) =Al(i),
Al(i) xorAp(i) xor A3(i)xor ...xor AN(i) =A2(i),
Al (i) xorA2(i) xor Ap(i)xor...xor AN(i) = A3(i), etc.
C’est-à-dire que n’importe quel bloc de données Ak défaillant peut-être récupéré
grâce au bloc de parité Ap et les N -1 autres blocs.
Quand la défaillance se limite à un seul disque, le système reste en état de
fonctionner et il est possible de reconstruire le disque défaillant à partir des
données et des blocs de parité présents sur les autres disques.
3.2.2 Les NAS
Un serveur de stockage en réseau, ou NAS (Network Attached Storage), est un
système autonome dédié (appliance), relié à un réseau local, qui joue le rôle de
serveur de fichiers centralisé et optimisé pour un ensemble de clients, comme le
montre la figure 3.8.
Figure3.8 : un NAS
Le serveur NAS fournit ses services via les protocoles classiques de partage de
fichiers comme NFS {Network File System), CIFS {Common Internet File
System) ou AFP {Apple Filing Protocol), qui seront étudiés au chapitre 17. Les
données apparaissent aux clients comme des fichiers dans des volumes (disques
logiques) partagés sur le réseau.
Il existe des systèmes d’exploitation spécialisés pour transformer des ordinateurs
classiques en NAS, comme par exemple FreeNAS, qui dérive de FreeBSD, ou
OpenMediaVault, basé sur Debian.
Une telle gestion centralisée des fichiers présente de nombreux avantages :
partager efficacement les données stockées sur le serveur de stockage, diminuer
33
le nombre total de disques et centraliser une éventuelle architecture RAID,
centraliser la gestion des sauvegardes et simplifier l’administration des clients et
des autres serveurs qui ne sont plus concernés par la fonction de stockage.
Figure3.9 : un SAN
Dans un SAN, les baies de stockage n’apparaissent pas comme des volumes
partagés sur le réseau. Elles sont accessibles en mode bloc comme les
périphériques locaux. Chaque client | voit l'espace disque d’une baie SAN
auquel il a accès par un réseau de stockage comme ses propres disques durs.
Les protocoles utilisés sont FibreChannel pour des débits élevés sur des fibres
optiques, iSCSI (internet SCSI) ou FCoE (Fibre Channel over Ethernet) pour
des accès via un réseau IP.
3.2.4 Le stockage en ligne sur le cloud
Le stockage en ligne est un service sur le cloud qui permet de sauvegarder,
partager et accéder à des fichiers depuis n’importe quel appareil connecté à
Internet.
Outre la capacité et le coût, les points importants à considérer dans ce type de
solution sont la sécurité (redondance du stockage, certification du fournisseur,
etc.) et la confidentialité des données. Le cryptage est essentiel et peut concerner
seulement le transfert, via le protocole de sécurisation des échanges sur Internet
SSL (cf. paragraphe 16.4), ou le transport et le stockage, quand le cryptage est
sous le contrôle du client.
34
Chapitre 4 : LES UNITES ET
SYSTEMES DE TRAITEMENT
35
4.1 L’UNITÉ CENTRALE DE TRAITEMENT
L’unité centrale de traitement (CPU pour Central Processing Unit), ou
processeur, comporte plusieurs composants qui communiquent entre eux et
avec des composants externes tels que la mémoire centrale et les unités
d’entrée/sortie, comme montré par la figure de l’introduction de la partie 1,
page 20.
36
Limité de commande
37
Des composants appelés ponts (bridge') aiguillent les communications vers les
différents bus. Le plus souvent, le pont nord (north bridge), ou contrôleur
mémoire, gère les communications entre le processeur et les bus et dispositifs
rapides : mémoire centrale, carte graphique, pont sud. Le pont sud (south
bridge), ou contrôleur d’entrée/sortie, gère les communications entre le pont
nord et tous les autres bus et dispositifs lents. La figure 4.2 représente cette
organisation physique caractéristique des PC actuels.
38
l'adresse à laquelle le branchement doit se faire.
fin répéter
b) Les interruptions
Une interruption est un arrêt temporaire de l’exécution normale d’un programme
par le processeur pour exécuter un autre programme plus prioritaire. Avant
chaque cycle « chercher, décoder, exécuter », le processeur teste l’arrivée d’une
interruption.
Les interruptions matérielles (ou IRQ pour Interrupt ReQuest) sont provoquées
par des causes externes au programme qui s’exécute, comme le signalement de
la fin d’un transfert de données. On y inclut souvent les exceptions, ou trappes,
qui correspondent à une condition exceptionnelle dans le programme, comme
une division par zéro, un accès mémoire illégal ou un appel système (cf.
paragraphe 7.3.4). Les interruptions logicielles (soft IRQ) sont généralement
déclenchées par une instruction spéciale du processeur.
Lors d’une interruption, le processeur sauvegarde tout ou partie de son état
interne, généralement dans la pile mémoire, et exécute ensuite un programme
associé à l’interruption appelé « traitant d’interruption ». Le vecteur
d’interruption donne pour chaque type d’interruption, codé par un entier, le
traitant à exécuter. Une fois le traitant terminé, l’état du programme interrompu
est en général restauré et ce dernier reprend la suite de son exécution.
Lors du fonctionnement de certaines parties du système d’exploitation, il peut
être nécessaire de bloquer (masquer) les interruptions, par exemple parce que
des structures de données sont en cours de modification. Les interruptions
bloquées sont le plus souvent exécutées dès que cela redevient possible. Il peut
exister des interruptions non masquables, car associées à des erreurs
catastrophiques pour le système. Les interruptions peuvent par ailleurs être
hiérarchisées suivant des priorités. Une interruption de priorité supérieure est
prise en compte lors du traitement d’une autre interruption, alors qu’une
interruption de priorité inférieure est mise en attente.
Les interruptions sont utilisées principalement pour permettre des
communications non bloquantes avec des périphériques plus lents que le
processeur (cf paragraphe 5.1.2) et dans le cadre de la commutation entre
processus par l’ordonnanceur (cf paragraphe 8.1.3).
39
compréhensible par le processeur, ou langage machine. Selon les processeurs,
les instructions sont plus ou moins nombreuses, avec des longueurs fixes ou
variables.
a) Les instructions
Chaque instruction machine contient tout d’abord un code opération, qui indique
l’opération à exécuter. Il existe trois catégories principales d’opérations :
- Les opérations de transfert : mémoire vers registre ou registre vers mémoire,
empilage ou dépilage. On rappelle que la pile est une zone de mémoire dans
laquelle on peut stocker temporairement des données en les empilant, telle une
pile d’assiettes, puis en les dépilant, du haut vers le bas, pour les utiliser.
- Les opérations de calcul arithmétique et logique : addition, division,
incrémentation de 1, comparaison, etc.
- Les opérations de branchement, inconditionnel ou conditionnel, comme par
exemple « sauter à une certaine adresse si le résultat de l’opération précédente
était négatif ».
40
adressage implicite.
Certains de ces modes, en apparence compliqués, sont destinés à faciliter les
accès à des ensembles de données consécutives en mémoire.
c) Le langage d’assemblage
Le langage d’assemblage (ou langage assembleur) est une forme lisible par les
humains du langage machine binaire. Un petit programme de traduction, appelé
assembleur, permet de passer du programme en langage d’assemblage au
programme en langage machine avant son exécution. Le langage d’assemblage
possède les caractéristiques suivantes :
- Le jeu d’instructions est identique à celui du langage machine.
- Les codes opération sont exprimés par des mnémoniques comme add, mul,
mov, etc.
- Les valeurs constantes sont exprimables en décimal, hexadécimal, octal, etc.
- Les registres sont dotés de noms comme ax. dx, ah, etc.
- Les branchements se font via des étiquettes. Par exemple, jmp _labas décrit
un saut inconditionnel vers l’instruction ayant étiquette _labas.
- Des directives à l’assembleur permettent de définir les identificateurs associés
aux constantes et aux variables, les étiquettes dans le programme, des blocs de
données ou de code, etc.
Voici un exemple de programme en langage d’assemblage qui affiche « bonjour
le monde ! ! », avec le jeu d’instructions Intel x86 et l’assembleur Microsoft
Macro Assembler (MASM) :
41
On peut, en théorie du moins, décrire l’implantation d’une unité centrale de
traitement à plusieurs niveaux de granularité, en termes de composants
électroniques, de portes logiques et de circuits logiques.
42
Les additionneurs, décodeurs, multiplexeurs sont des exemples de circuits
combinatoires utiles dans les systèmes informatiques.
Exemple
Soit un additionneur de deux bits (a et 6) et d’une retenue d’entrée (Rentres)- La
somme se lit sur S et la retenue de sortie sur Rsortie- On pourra vérifier que :
la table de vérité à gauche de la figure 4.3 correspond bien à une addition
des trois bits d’entrée,
le circuit à droite de la figure implante bien la table de vérité en prenant
des exemples de valeurs en entrée et en calculant les sorties.
a b Rentrée s Rsortie
0 0 0 0 0
0 1 0 1 0
1 0 0 1 0
1 1 0 0 1
0 0 1 1 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 1
43
valeurs en entrée et en les faisant « tourner » dans le circuit jusqu’à un état
stabilisé.
S RQ Résultats
0 0 Q Sortie inchangée
0 1 0 Mise à 0
1 0 1 Mise à 1
1 1 Entrées interdites
Figure 4.4 Une bascule RS
Remarque
Les circuits logiques ne doivent pas être confondus avec les circuits intégrés. Un
circuit intégré est une petite plaquette de silicium placée dans un boîtier. Sur
cette plaquette sont gravés jusqu’à plusieurs millions d’éléments actifs
(transistors) et passifs (résistances, condensateurs, diodes, etc.). L’exemple le
plus connu est le microprocesseur, qui est un processeur suffisamment
miniaturisé pour tenir dans un boîtier unique.
44
Figure4.5 : fonctionnement d’un pipeline
En complément d’un pipeline, on peut trouver une unité de prédiction de
branchement qui exploite l’historique des branchements déjà effectués. Elle
permet au processeur d’anticiper l’effet d’un branchement conditionnel, ce qui
est important pour éviter de commencer inutilement le traitement d’instructions
qui ne seront finalement pas exécutées.
Avec une architecture superscalaire, le processeur cherche à exploiter au
maximum le traitement parallèle des instructions, grâce à plusieurs unités de
calcul. La combinaison du parallélisme entre instructions et du parallélisme au
niveau du traitement des instructions conduit à de multiples pipelines parallèles.
L’optimisation du jeu d’instructions est une voie de nature différente. On est
passé, au fil du temps, de jeux d’instructions comportant beaucoup
d’instructions, puissantes et de tailles variables (approche CISC pour Complex
Instruction Set Computer}, à des jeux d’instructions avec moins d’instructions,
très optimisées et de tailles fixes (approche RISC pow Reduced Instruction Set
Computer), et actuellement à des approches mixtes tirant le meilleur parti des
deux philosophies.
La figure 4.6 donne une représentation un peu plus réaliste de l’architecture d’un
processeur H de type Intel Pentium monocœur. IFU signifie Instruction fetch
Unit. C’est l’unité chargée de rechercher la prochaine instruction, qui est ensuite
décodée par l’unité DEC et séquencée par g l’unité SEQ. Les processus
multicœurs sont abordés au paragraphe 4.2.2
45
4.2 LES SYSTÈMES DE TRAITEMENT
4.2.1 Généralités sur les systèmes parallèles
Un système parallèle est un ensemble de processeurs interconnectés qui
coopèrent pour F réaliser une certaine tâche de calcul. L’interconnexion peut
mettre en jeu un bus interne, un réseau local (LAN) classique ou spécialisé, un
réseau étendu (WAN), y compris Internet. I On distingue classiquement deux
classes de systèmes parallèles : les « systèmes à mémoire v partagée » et les «
systèmes à mémoire distribuée ».
Processeurs
caches
46
Figure4.7 : système à mémoire partagée
Cette architecture se retrouve par exemple dans les machines multiprocesseurs
symétriques à mémoire partagée (SMP pour Symmetric shared memory
Multiprocessor). Symétrique signifie que les processeurs reliés au bus
d’interconnexion jouent tous le même rôle.
Open MP {Open MultiProcessing) est une interface de programmation (API) qui
étend les langages de programmation classiques en calcul scientifique que sont
Fortran, C et C++. Open MP est devenu le standard de programmation pour le
calcul parallèle avec des machines SMP.
Architecture à mémoire distribuée
Dans ces systèmes, seule la mémoire locale est accessible directement et
rapidement. Il faut gérer des échanges de messages entre les processeurs pour
les autres accès, beaucoup moins rapides, comme le montre la figure 4.8. On
parle aussi de système à architecture mémoire non uniforme {Non Uniform
Memory Architecture ou NUMA).
Processeurs
caches
Mémoire M M M
distribuée
Bus/réseau d’interconnexion
Cette organisation se retrouve par exemple dans les machines NUMA et dans les
clusters, constitués d’une grappe de machines, classiques ou SMP. Nous
détaillerons les principaux types de clusters au paragraphe 4.2.3
MPI {Message Passing Interface} est le standard de programmation par échange
47
de messages, (’’est une bibliothèque qui étend le Fortran, le C ou le C++.
Certains systèmes à mémoire distribuée cachent la distribution via une mémoire
partagée distribuée {Distributed. Shared-Memory multiprocessor ou DSM).
Tous les processeurs se partagent l’espace d’adressage global de cette mémoire
partagée distribuée, comme le montre la figure 4.9, ce qui facilite la
programmation au prix d’un certain coût à payer en efficacité. I .’implantation
de la mémoire partagée distribuée peut être matérielle ou logicielle.
Processeurs
caches
Bus/réseau d’interconnexion
48
- à mémoire partagée, avec un bus mémoire (c/ figure 4.10, où les « dies » sont
les plaquettes de silicium enchâssées dans le microprocesseur),
- à mémoire distribuée, avec des interconnexions NUMA entre les nœuds dotés
de RAM (cf. figure 4.11).
49
par exemple dans le cadre de la haute disponibilité et de l’équilibrage de charge,
qui fait l’objet du paragraphe 4.2.4. Le second cas de figure se rencontre dans
les clusters de calcul à haute performance. Ces derniers accueillent des
simulations numériques complexes qui permettent de remplacer des expériences
impossibles à réaliser parce qu’elles sont dangereuses (simulations d’accident),
de longue durée (simulations en climatologie), inaccessibles (simulations en
astrophysique) ou interdites (simulations d’explosion de bombe nucléaire).
( )n parle de grille {grid) pour un ensemble de nœuds de très grande taille,
distribué par exemple au niveau mondial et constitué le plus souvent de
machines hétérogènes connectées par Internet.
50
serveur primaire fonctionne et effectue automatiquement le basculement vers le
serveur secondaire en cas de défaillance. C’est un exemple de redondance
passive où les moyens redondants sont mis en œuvre uniquement à la demande.
La figure 4.12 schématise ce genre d’architecture. Une technique similaire peut
être utilisée pour basculer le serveur de base de données d’un primaire à un
secondaire, les deux bases étant maintenues dans le même état par duplication
en continu des mises à jour.
51