Vous êtes sur la page 1sur 5

Dév. d’applications réparties 2020/2021.

Semestre 1 Université Constantine 2

Université Abdelhamid Mehri – Constantine 2


2020/2021. Semestre 1

DÉVELOPPEMENT D’APPLICATIONS REPARTIES

– 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

© Dr. KITOUNI Ilham & Dr. MENNOUR Rostom Page 1 sur 4


Dév. d’applications réparties 2020/2021. Semestre 1 Université Constantine 2

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.

1.1 Traitement par série


Premiers ordinateurs de la fin des années 1940 au milieu des années 1950.
Le programmeur interagit directement avec le matériel informatique.
Ces machines sont appelées machines nues car elles ne possèdent pas de système d’exploitation.
Chaque système informatique est programmé dans son langage machine.
Utilise une carte perforée, des bandes de papier et un traducteur de langage.
Ce système présentait deux problèmes majeurs.
Problème d’ordonnancement.
Problème de temps d’installation.

1.2 Traitement par lots simple


Les premiers ordinateurs coûtaient très cher et il était donc important de maximiser l’utilisation
du processeur.
Le temps perdu en raison de l’ordonnancement et de la configuration du traitement en série était
inacceptable.
Pour améliorer l’utilisation, le concept d’un système d’exploitation par lots a été développé.
Le lot est défini comme un groupe de travaux (jobs) ayant des besoins similaires. Le système
d’exploitation permet aux utilisateurs de former des lots. L’ordinateur exécute chaque lot
séquentiellement, en traitant tous les travaux d’un lot en les considérant comme un processus
unique appelé traitement par lots (batch).

1.3 Système de lot multiprogrammé


Un seul programme ne peut pas garder le processeur ou les périphériques d’ E / S occupés à tout mo-
ment. La multiprogrammation augmente l’utilisation du CPU en organisant les tâches de telle manière
que celle-ci ait toujours une tâche à exécuter. Si un ordinateur doit exécuter plusieurs programmes en
même temps, le processeur peut rester occupé la plupart du temps en déplaçant son attention d’un
programme à l’autre. De plus, le transfert d’ E / S peut chevaucher l’activité du processeur, c’est-à-
dire qu’un programme attend un transfert d’ E / S, un autre programme peut utiliser le processeur.
Ainsi, le CPU ne reste jamais inactif. Si il passe à l’état inactif, il redevient occupée après une très
courte période.

1.4 Système multitâche ou à temps partagé


La multiprogrammation n’a pas permis à l’utilisateur d’interagir avec le système informatique.
Le partage du temps ou le multitâche est une extension logique de la multiprogrammation
permettant une interaction avec l’utilisateur.
Plusieurs utilisateurs interagissent en même temps avec le système.
La commutation du CPU entre deux utilisateurs est si rapide que cela donne l’impression à
l’utilisateur qu’il travaille seul sur le système, mais en réalité il est partagé entre différents
utilisateurs.
La limite du CPU est divisée en différents créneaux horaires en fonction du nombre d’utilisateurs
du système.

© Dr. KITOUNI Ilham & Dr. MENNOUR Rostom Page 1 sur 4


Dév. d’applications réparties 2020/2021. Semestre 1 Université Constantine 2

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.

1.5 Système multiprocesseur


Le système multiprocesseur vise à prendre en charge des performances élevées via l’utilisation de
plusieurs processeurs. Il consiste en un ensemble de processeurs qui partagent un ensemble de blocs
de mémoire physique sur un réseau interconnecté. Un objectif important est de rendre le nombre
de processeurs transparent pour l’application. Obtenir une telle transparence est relativement facile
car la communication entre différentes parties d’application utilise les mêmes primitives que celles du
système monoprocesseur. L’idée est que toutes les communications se font en manipulant des données
aux emplacements de mémoire partagée et qu’il ne nous reste plus qu’à protéger ce segment de données
contre un accès simultané. La protection est assurée par des primitives de synchronisation telles que
des sémaphores et des moniteurs.

1.6 Système distribué


Une tendance récente des systèmes informatiques consiste à répartir les calculs entre plusieurs pro-
cesseurs. Contrairement au système à couplage étroit, les processeurs ne partagent pas de mémoire
ni d’horloge. Au lieu de cela, chaque processeur a sa propre mémoire locale. Les processeurs commu-
niquent les uns avec les autres par le biais de diverses lignes de communication, telles qu’un réseau
informatique. Les systèmes d’exploitation distribués sont les systèmes d’exploitation d’un système
distribué (un réseau d’ordinateurs autonomes connectés par un réseau de communication via des
mécanismes de transmission de messages). Un système d’exploitation distribué contrôle et gère les
ressources matérielles et logicielles d’un système distribué. Lorsqu’un programme est exécuté sur un
système distribué, l’utilisateur ne sait pas où le programme est exécuté ni l’emplacement des ressources
consultées.

2 Limites des systèmes centralisés


Dans un système centralisé, tout est localisé sur la même machine et accessible par le programme. Les
logiciels s’exécutent sur une seule machine. Ceci provoque certaines limites :
Aucune tolérance aux pannes : si la machine tombe en panne, tous les programmes s’arrêtent.
Faibles performances.
Rapport qualité / prix trop bas.
Difficulté de synchronisation, et nécessite des spécialistes dans des domaines aigus de l’informatique.
Passage à l’échelle impossible.
Les inputs doivent être présents sur le même endroit géographique.
Il existe deux type de machines centralisées : les machines centralisées séquentielles, et les machines
centralisées parallèles.

© Dr. KITOUNI Ilham & Dr. MENNOUR Rostom Page 2 sur 4


Dév. d’applications réparties 2020/2021. Semestre 1 Université Constantine 2

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.

3.2 Calcul distribué vs Calcul parallèle


La différence réside dans le fait qu’une tâche est distribuée selon sa définition même. Cela signifie que
les processus, chacun avec ses propres entrées, sont répartis géographiquement et, en raison de cette
distribution imposée, doivent communiquer pour calculer leurs résultats. La répartition géographique
des entités informatiques n’est pas un choix de conception, c’est une entrée du problème qui donne
son nom à l’informatique distribuée.

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.

4 Pourquoi aller vers la distribution ?


Aspects économiques (rapport prix/performance).
Adaptation de la structure d’un système à celle des applications (géographique ou fonctionnelle).

© Dr. KITOUNI Ilham & Dr. MENNOUR Rostom Page 3 sur 4


Dév. d’applications réparties 2020/2021. Semestre 1 Université Constantine 2

Besoin d’intégration (applications existantes).


Besoin de communication et de partage d’information.
Réalisation de systèmes à haute disponibilité.
Partage de ressources (programmes, données, services).
Réalisation de systèmes à grande capacité d’évolution.

© Dr. KITOUNI Ilham & Dr. MENNOUR Rostom Page 4 sur 4

Vous aimerez peut-être aussi