Vous êtes sur la page 1sur 8

THEME:LES

SEMAPHORES
PRÉSENTÉE PAR :
KAMENI NGUEMATCHA JAURES
DJELASSEM CYRILLE
DINGAMRABE ARISTIDE
PLAN DE TRAVAIL
 INTRODUCTION
 DÉFINITION
 ARCHITECTURE
 AVANTAGES ET INCONVÉNIENTS
 DOMAINE D’APPLICATION
 ALGORITHME
 IMPLEMENTATION
INTRODUCTION
Le problème de coordination des processus est un problème majeur
dans la communication interprocessus comme <<comment passer d’un
processus à un autre ?, comment éviter les conflits dans des activités
critiques ?, parfois un processus B, qui utilise des données générées
par un autre processus A, doit attendre la fin de ce dernier avant de
s’exécuter>>. Plusieurs solutions ont été développées parmi lesquelles
les sémaphores développés par DIJKSTRA en 1965 qui sont un bon
moyen d’apprendre la synchronisation.
Il serait question pour nous de présenter dans un premier temps la
définition de sémaphores, en suite son architecture, ses avantages et
inconvénients, son domaine d’application, son algorithme et
implémenter un cas d’étude en C.
DEFINITION
Un sémaphore est un compteur entier qui désigne le nombre
d’autorisation d’accès disponible à un objet, une section critique, etc.
Chaque sémaphore possède au moins un nom, une valeur initiale et
une file d’attente. Lorsqu’un processus est dans la section critique, les
autres processus au lieu d’attendre la sortie de ce processus (celui qui
est dans le section critique) sont bloqués (SLEEP) car ils utilisent le
CPU. Dès que le processus sort de la section critique, le processus
endormi se réveille (WAKEUP) pour pouvoir à son tour accéder à la
section critique.
ARCHITECTURE

Liste L = file d’attente du sémaphore ;


Init(SEM, val) = initialisation du sémaphore ;
V(SEM) = utilisé par le processus pour modifier la valeur du sémaphore ;
P(SEM) = utilisé par le processus pour tester la valeur du sémaphore.
AVANTAGES ET
INCONVENIENTS
Avantages
 Les sémaphores servent à effectuer la synchronisation entre
processus.
 Ils permettent de contrôler l’accès à des objets partagés.
Inconvénients
 Ils peuvent conduire à des situations indésirables comme les inter-
blocages, inversion de priorité.
 Ils ne protègent pas les programmeurs des erreurs courantes qui
consistent à bloquer un sémaphore par un processus qui est déjà
bloqué par ce même processus, et d’oublier de libérer un sémaphore
qui a été bloqué.
DOMAINE D’APPLICATION
Les sémaphores sont utilisés dans les langages de programmation
qui n’implémentent pas intrinsèquement d’autres forme de
synchronisation. Ils sont dont le mécanisme primitif de beaucoup de
système d’exploitation.
ALGORITHME
L’implémentation des sémaphores se compose de 04 parties en générale :
 Une fonction d’initialisation : qui permet de créer le sémaphore et lui
attribuer une valeur initiale.
 Une fonction permettant de détruire le sémaphore et libérer les
ressources qui lui sont attribuées.
 Une fonction v : qui est utilisé par les processus pour modifier la
valeur du sémaphore. S’il n’y a pas de processus dans la file, sa valeur est
incrémenté d’une unité sinon, un des processus en attente est libéré et
passe à l’état READY(prêt).
 Une fonction P: qui est utilisé par les processus pour tester la valeur
d’un sémaphore. Si la valeur du sémaphore est positive, elle est
décrémentée d’une unité et la fonction réussit. Si le sémaphore a une
valeur nulle, le processus est bloqué jusqu’à ce qu’un autre processus le
débloque en appelant la fonction P.

Vous aimerez peut-être aussi