Académique Documents
Professionnel Documents
Culture Documents
– Cours 1 –
Chapitre 01 : Introduction
De la centralisation vers la distribution
Staff pédagogique
Nom Grade Faculté/Institut Adresse e-mail
Dr. KITOUNI Ilham MCA Nouvelles technologies ilham.kitouni@univ-constantine2.dz
Dr. MENNOUR Rostom MCB Nouvelles technologies rostom.mennour@univ-constantine2.dz
Étudiants concernés
Faculté/Institut Département Niveau spécialité
Nouvelles technologies IFA Master 1 RSD
Objectifs du cours 1
Réaliser les limites des systèmes centralisés
Découvrir l’histoire des systèmes informatiques
Connaitre les raisons et motivations de la distribution
Voir quelques grands exemples des systèmes distribués dans le monde
1 Histoire
Depuis sa naissance, l’informatique a continuellement évolué. Les systèmes d’exploitation et de traite-
ment, et donc les techniques de programmation, ont connu différente phases dans leur histoire. Ici,
nous allons voir les plus importantes de ces phases.
Tout comme elle permet au processeur de gérer plusieurs tâches par lot à la fois, la multiprogram-
mation peut également être utilisée pour gérer plusieurs tâches interactives. Dans ce dernier cas,
la technique est appelée partage de temps, car le temps du processeur est partagé entre plusieurs
utilisateurs.
Un système multitâche utilise la planification du CPU et la multiprogrammation pour fournir à
chaque utilisateur une petite partie d’un ordinateur à temps partagé. Chaque utilisateur a au
moins un programme séparé en mémoire.
La multitâche est plus complexe que la multiprogrammation et doit fournir un mécanisme de
synchronisation et de communication des tâches. Il peut ainsi empêcher le système de rester
dans une impasse.
Bien que le traitement par lots soit toujours utilisé, la plupart des systèmes actuellement disponibles
utilisent le concept du multitâche et de la multiprogrammation.
3 Systèmes distribués
3.1 Définition
L’informatique distribuée survient lorsqu’il est nécessaire de résoudre un problème en termes d’entités
distribuées (généralement appelés processeurs, noeuds, processus, acteurs, agents, capteurs, homo-
logues, etc.), de sorte que chaque entité n’a qu’une connaissance partielle des nombreux paramètres en
jeu et le problème à résoudre. Ainsi, d’une manière ou d’une autre, dans tout problème informatique
distribué, il existe plusieurs entités informatiques, chacune devant prendre localement une décision ou
calculer un résultat dont la portée est globale.
La notion la plus fondamentale du calcul séquentiel est la notion d’algorithme implémentant une fonc-
tion mathématique. Cela a donné naissance aux notions de calculabilité, et de complexité, qui sont
les fondements sur lesquels repose le calcul séquentiel.
De manière différente, l’unité de base du calcul distribué est la notion de tâche. Une tâche est composée
de n processus p1 , ..., pn (entités informatiques), de sorte que chaque processus a sa propre entrée (soit
ini désigne l’entrée de pi ) et doit calculer sa propre sortie (soit outi désigne la sortie de pi ). Soit
I = [in1 , ..., inn ] un vecteur d’entrée (remarquons qu’un processus ne connaı̂t que son entrée locale,
il ne connaı̂t pas tout le vecteur d’entrée). Soit O = [out1 , ..., outn ] un vecteur de sortie (de même,
même si un processus est nécessaire pour coopérer avec les autres processus, il ne calculera que sa
sortie locale, et non le vecteur de sortie entier). Une tâche T est définie par un ensemble I de vecteurs
d’entrée, un ensemble O de vecteurs de sortie et une application T de I à O, tels que, quel que soit le
vecteur d’entrée I, le vecteur de sortie O (calculé de manière coopérative par des processus), est telle
que O ∈ T (I). Le cas n = 1 correspond à un traitement séquentiel.
De manière différente, dans le calcul parallèle, les entrées sont, par essence, centralisées. Le calcul par-
allèle traite des concepts, des méthodes et des stratégies qui permettent de tirer parti du parallélisme
(entités de traitement multiples) lorsqu’il est nécessaire de mettre en œuvre une fonction. L’entrée est
donnée et, le cas échéant, sa dispersion initiale sur des processeurs distincts n’est pas imposée à pri-
ori, mais constitue un choix de conception visant à obtenir des implémentations efficaces de la fonction.
Tout problème pouvant être résolu par un algorithme parallèle pourrait être résolu (généralement très
inefficacement) par un algorithme séquentiel. Par conséquent, l’essence du calcul parallèle consiste à
maı̂triser l’efficacité. En revanche, l’essence de l’informatique distribuée ne consiste pas à rechercher
l’efficacité, mais la coordination en présence d’adversaires tels que l’asynchronisme, les pannes, la
localisation, la mobilité, l’hétérogénéité, la bande passante limitée, etc.
Dans le cas d’une application parallèle, il est bien entendu possible que, du fait du choix de conception,
le concepteur de l’application répartisse les entrées sur les processeurs. Par conséquent, des problèmes
informatiques répartis peuvent apparaı̂tre au niveau de la mise en œuvre d’une application parallèle.