Onyest dossier - Priorité forte à la lecture Ajouter à mes favoris
Sommaire
Systèmes parallèles
Cours
Atomicité et processus
Exclusion mutuelle
Les sémaphores
Approche "langage"
Moniteur
Implémentation d’un moniteur
Lecteur(s)-Rédacteur(s)
Priorité forte à la lecture
Préférence aux lecteurs
Le problème des voies
TDs
TPs
Probabilités appliquées aux systèmes
Théorie des langages et compilation
VHDL
Suite : Préférence aux lecteurs

Priorité forte à la lecture

moniteur LRprioFL =
entier nblac, nbrac, nblatt, nbratt init 0
condition fl, fr init vide

procedure deb_ecr =
si non (nbrac = 0 et nblac + nblatt = 0) alors fr.WAIT
nbracc := 1.
procedure deb_lect =
nblatt++
si non (nbrac = 0) alors fl.WAIT ; fl.SIGNAL (je viens d'être réveillé, donc il faut que je réveille le suivant)
procedure fin_ecr =
nbracc := 0
si nblatt > 0 alors fl.SIGNAL sinon fr.SIGNAL.
procedure fin_lect =
nblac --
si nblatt + nblac = 0 alors fr.SIGNAL

nbracc variant entre 0 et 1, on pourrait la remplacer par un booléen.

Suite : Préférence aux lecteurs
Onyest dossier - cours ingénieur informatique et électronique : SPAR, PAS, TLC, VHDL - http://www.onyest.free.fr/dossier/cours - webmaster : novis@chez.com

-