SlideServe
Menu
Préférences
© SlideServe · v2026

Condition variables

mala avatar
5 diapositives · 170 Views · Sep 12, 2014

Condition variables. proc notify (cvar) { acquire (tt_lock); for (i = 0 to N-1) do { if (ttable[i].cvar == cvar && ttable[i].state == WAITING) { ttable[i].state  RUNNABLE;} } release(tt_lock);}. proc wait(cvar, lock) {

Condition variables - slide 1
01 / 5Condition variables
1 / 17

Télécharger la présentation

Condition variables
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Condition variables

  2. proc notify (cvar) { acquire (tt_lock); for (i = 0 to N-1) do { if (ttable[i].cvar == cvar && ttable[i].state == WAITING) { ttable[i].state  RUNNABLE;} } release(tt_lock);}

  3. proc wait(cvar, lock) { acquire(tt_lock); ttable[id].lock  lock; ttable[id].cvar  cvar; release(tt_lock); yield(WAITING); acquire(lock);}

  4. Implementing condition variables proc wait(cvar, lock) { yield_wait(cval,lock); acquire(lock); }

  5. Implementing condition variables proc yield_wait(cvar, lock) { disable_interrupts; acquire(tt_lock); release(lock); ttable[id].lock  lock; ttable[id].cvar  cvar; ttable[id].sp  SP; ttable[id].state  WAITING; // other yield code release(tt_lock); enable_interrupts;}