SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Gestion des
Processus
Richard Terrat
Jérôme Palaysi
19/06/19 DIU EIL - Université de Montpellier 2/31
Sommaire
● Un petit exemple
● Co-routines → Tâches → Processus
● Exclusion mutuelle
● Synchronisation : Événements et sémaphores
● Ordonnancement
● Interblocage
● Famine et Équité
19/06/19 DIU EIL - Université de Montpellier 3/31
Un exemple
Agence de Voyage en
ligne
Site de réservation de
places d'avion
Site de réservation de
chambres d'hôtel
Alice Bob
19/06/19 DIU EIL - Université de Montpellier 4/31
Un exemple
● Alice et Bob
s'adressent indépendamment l'un de l'autre à une
agence de voyage pour réserver
● Un billet d'avion
● Une chambre d'hôtel
et ne partiront en voyage que s'ils obtiennent
satisfaction pour l'ensemble de ces deux
réservations
19/06/19 DIU EIL - Université de Montpellier 5/31
Site de l'agence de voyage
réservation d'une place d'avion
Que se passe-t-il s'il ne reste plus qu'une place ?
1 2
3
5
4
6
Processus Alice Processus Bob
Consultation du vol Air-Isson n°421
lecture du fichier
Réservation d'une place
écriture du fichier
Consultation du vol Air-Isson n°421
lecture du fichier
Réservation d'une place
écriture du fichier
19/06/19 DIU EIL - Université de Montpellier 6/31
Site de l'agence de voyage
réservation d'une place d'avion et d'une chambre d'hôtel
Processus Alice Processus Bob
Consultation du vol Air-Isson n°421
Réservation d'une place
Consultation de l'hôtel Kel
Réservation d'une chambre
Consultation de l'hôtel Kel
Réservation d'une chambre
Consultation du vol Air-Isson n°421
Réservation d'une place
1 2
3 4
5 6
7 8
19/06/19 DIU EIL - Université de Montpellier 7/31
Site de l'agence de voyage
réservation d'une place d'avion et d'une chambre d'hôtel
● Résultats
– Dans le premier scénario une même place d'avion
pouvait être attribuée à deux personnes
– Dans le second scénario, s'il n'existe plus qu'une place
d'avion et qu'une chambre d'hôtel
● Alice obtient satisfaction pour son vol mais pas pour sa
chambre d'hôtel
● Bob obtient satisfaction pour sa chambre d'hôtel mais pas pour
son vol
● Aucun des deux ne partira !
● Il s'agit d'une forme d'interblocage
19/06/19 DIU EIL - Université de Montpellier 8/31
Co-routines
Une sous-routine
● s'exécute dans le contexte
de l'appelant
● dans la pile de l'appelant
Les co-routines
● s'exécutent dans un
contexte commun
● possèdent leur propre pile
appel SP
retour
reprise B
reprise A
SP
A B
reprise B
19/06/19 DIU EIL - Université de Montpellier 9/31
Tâches (threads)
● Tâche (thread) ou « processus léger » :
– Coroutine contrôlée par un planificateur (scheduler)
– Pas d'instruction explicite de reprise d'exécution
– Peut être interrompue entre deux instructions (via le mécanisme
d'interruption) pour donner le contrôle à un planificateur : c'est la
préemption
– Le planificateur choisit une des tâches prêtes à être exécutée et lui
donne le contrôle
● Plusieurs tâches peuvent s'exécuter sur un même processeur
– Leur exécution est interrompue périodiquement à très fine échelle (de
l'ordre de la microseconde) donnant l'illusion à plus grande échelle
d'exécution en parallèle : c'est le quasi-prallélisme
19/06/19 DIU EIL - Université de Montpellier 10/31
Préemption, quasi-parallélisme
T1 T2
Interruptions
+
planificateur
19/06/19 DIU EIL - Université de Montpellier 11/31
Processus
● Un processus est une tâche (thread)
possédant son propre contexte en mémoire
virtuelle :
– Pile d'exécution (coroutine)
● Adresses de retour
des sous-programmes
● Variables locales et paramètres
– Tas
● Objets
Données
Tas
Pile
Code
Coroutine
☞ les différentes zones ne sont pas
nécessairement dans cet ordre
19/06/19 DIU EIL - Université de Montpellier 12/31
Tâche vs Processus
● Très souvent les deux coexistent au sein d'un système
● Unix : un processus peut comprendre plusieurs tâches
● La gestion des tâches est plus légère que celle des
processus
– le contexte est réduit à une simple pile
● Les processus sont plus autonomes que les tâches : ils
possèdent
– un environnement propre
– un espace de mémoire virtuelle
– une protection vis-à-vis des autres processus
19/06/19 DIU EIL - Université de Montpellier 13/31
Exclusion mutuelle
● Ressource partageable
– Base de données, tableau, fichier, imprimante, …
– Possède un état
– Utilisable par plusieurs processus
– Exclusive : utilisée par un seul processus à un instant donné
● Opération sur une ressource
– Modifie l'état de la ressource
– Déterministe : l'état final ne dépend que de l'état initial et de
l'opération
– Indivisible : aucune autre opération sur cette ressource ne peut avoir
lieu pendant cette opération
19/06/19 DIU EIL - Université de Montpellier 14/31
Exclusion mutuelle
● Section critique
– Suite d'instructions composant une opération indivisible sur
une ressource
● Verrou : objet lié à une ressource
– Attributs
● Une donnée reflétant l'utilisation de la ressource : libre ou occupée
● Les processus en attente d'utilisation
– Méthodes
● Verrouiller
● Déverrouiller
19/06/19 DIU EIL - Université de Montpellier 15/31
Exclusion mutuelle
● Verrouiller : précède une section critique
– Si la ressource est libre :
● Met la ressource à occupée
– Sinon :
● Met le processus courant en attente
● Invoque le planificateur
● Déverrouiller : termine une section critique
– Si au moins un processus est en attente :
● Met un seul de ces processus dans l'état prêt
● Invoque le planificateur
– Sinon :
● Met la ressource à libre
☞ les opérations verrouiller et déverrouiller doivent être indivisibles !
19/06/19 DIU EIL - Université de Montpellier 16/31
Exclusion mutuelle
Processus Alice
Verrouiller le vol n°421
Consultation du vol Air-Isson n°421
Réservation d'une place
Déverrouiller le vol n°421
Processus Bob
Verrouiller le vol n°421
Consultation du vol Air-Isson n°421
Réservation d'une place
Déverrouiller le vol n°421
1 2
3
3
3
5
4
4
4
6
sectioncritique
sectioncritique
19/06/19 DIU EIL - Université de Montpellier 17/31
Interblocage
Processus Alice
Consultation du vol Air-Isson n°421
Réservation d'une place
Consultation de l'hôtel Kel
Réservation d'une chambre
Processus Bob
Consultation de l'hôtel Kel
Réservation d'une chambre
Consultation du vol Air-Isson n°421
Réservation d'une place
1
3
5
2
4
6
sectioncritique#1
sectioncritique#2
sectioncritique#2
sectioncritique#1
sc #1 sc #2
19/06/19 DIU EIL - Université de Montpellier 18/31
Donc ...
Les verrous
– permettent de résoudre le problème d'accès à une
ressource exclusive partagée par des processus
– ne résolvent pas l'interblocage
19/06/19 DIU EIL - Université de Montpellier 19/31
Synchronisation
● Coopération entre processus ou entre tâches
⇒ nécessité de synchronisation
P1 P2
Planificateur
gère le
attente
envoi
signal
P1 attend un signal émis par P2
Exemples d'outils de synchronisation :
événements, sémaphores
19/06/19 DIU EIL - Université de Montpellier 20/31
Synchronisation
● Événement
– Objet lié à un signal
– Envoyé par un processus, puis mémorisé
– Les processus en attente d'un signal mémorisé poursuivent leur exécution
– Les processus mis en attente avant l'envoi du signal sont débloqués
– Un tel signal doit être effacé explicitement
– Si plusieurs signaux sont envoyés avant d’avoir été effacés, tout se passe comme
si un seul avait effectivement été envoyé.
● Attributs
– Une donnée booléenne E reflétant l'état du signal
– Les processus en attente de ce signal
● Méthodes
– envoi (S)
– attente (S)
19/06/19 DIU EIL - Université de Montpellier 21/31
Événement
● envoi (S)
– Si E ≠ S :
● E ← S
● Met tous les processus en attente à l'état prêt
● Invoque le planificateur
● Attente (S)
– Si E ≠ S :
● Met le processus courant en attente
● Invoque le planificateur
☞ ces deux opérations doivent être indivisibles !
19/06/19 DIU EIL - Université de Montpellier 22/31
Sémaphores
● Objet permettant de gérer
– Exclusion mutuelle
– Synchronisation
● Inventé par Edsger Dijkstra
● Attributs
– Un compteur K
– Une liste de processus en attente
● Méthodes
– P « Proberen » : Tester
– V « Verhogen » : Incrémenter
19/06/19 DIU EIL - Université de Montpellier 23/31
Sémaphores
● P :
– K ← K – 1
– si K < 0 :
● Met le processus courant en attente
● Invoque le planificateur
● V :
– K = K + 1
– Si K ≤ 0 :
● Met à l'état prêt un seul des processus en attente
● Invoque le planificateur
☞ ces deux opérations doivent être indivisibles !
19/06/19 DIU EIL - Université de Montpellier 24/31
Sémaphores
● On observe que la valeur de S désigne
– Si K ≥ 0 : le nombre de fois qu’une opération P peut être
exécutée sans bloquer le processus qui l’invoque
– Si K ≤ 0 : |K| = le nombre de processus en attente
● Utilisation
– Pour l'exclusion mutuelle : S doit être initialisé à 1
– Pour la gestion d'un signal : S doit être initialisé à 0
● Dans ce cas, l'opération V :
– Mémorise et compte chaque occurrence d'un signal envoyé
– Ne débloque qu'un seul des processus en attente
19/06/19 DIU EIL - Université de Montpellier 25/31
Communication entre processus
● Modèle du Producteur-Consommateur
– Un processus P envoie des données à un processus K via
un tampon partagé T de n cases
– On utilise deux sémaphores
● S1 dont le compteur est initialisé à n
● S2 dont le compteur est initialisé à 0
P K
T [1:n] S2.P
Consomme (j)
j ← j + 1 mod n
S1.V
S1.P
Produit (i)
i ← i + 1 mod n
S2.V
i j
19/06/19 DIU EIL - Université de Montpellier 26/31
Ordonnancement
● États d'un processus ou d'une tâche
– ACTIF : un seul processus (ou tâche) est en cours d'exécution à un instant donné par
processeur (donc un seul sur un mono-processeur)
– PRÊT : un processus non ACTIF possédant toutes les ressources nécessaires à son
exécution
– BLOQUÉ : un processus en attente de ressource ou de signal
● Transitions entre états
PRÊT ACTIF
BLOQUÉ
création
activation
désactivation
blocage
(mise en attente)
déblocage
terminaison
planificateur
synchronisation
19/06/19 DIU EIL - Université de Montpellier 27/31
Ordonnancement
● Dès qu'il est appelé, le planificateur choisit parmi les
processus ou les tâches prêts à être exécutés, un « élu »
● Stratégies d'élection
– Par priorités
– Tourniquet (round-robin)
Élu
Prêts
19/06/19 DIU EIL - Université de Montpellier 28/31
Interblocage
● Situation dans laquelle deux processus ou tâches
P1 et P2 demandent l'accès à deux ressources R1
et R2 selon le schéma ci-dessous
R1
R2
P1 P2
Est allouée à
Est allouée à
Demande
Demande
19/06/19 DIU EIL - Université de Montpellier 29/31
Interblocage
● Détection
– Comment savoir que deux processus ou tâches sont en situation
d'interblocage ?
● Guérison
– Que peut on faire pour sortir d'un interblocage ?
● Prévention
– Comment et quand peut-on prévoir une situation d'interblocage ?
● Exemple de l'algorithme du banquier
– Développé par Dijstra et Habermann
– Analogie avec les prêts gérés par un banquier
19/06/19 DIU EIL - Université de Montpellier 30/31
R1
R2
P1
P2
f3
f1
f2
a
b c
d
19/06/19 DIU EIL - Université de Montpellier 31/31
Famine et Équité
● Famine
– Certains processus ou tâches sont privés de l'obtention
de certaines ressources demandées, allouées à tour de
rôle à d'autres processus ou tâches
● Équité
– Propriété assurée par le planificateur pour éviter la
famine, prenant par exemple en compte
● Nombre et fréquence des demandes
● Temps d'utilisation des ressources
● Gestion dynamiques de priorités (vieillissement des
demandes en attente)

Contenu connexe

Plus de RichardTerrat1

La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...RichardTerrat1
 
L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2RichardTerrat1
 
Ingénierie des protocoles
Ingénierie des protocolesIngénierie des protocoles
Ingénierie des protocolesRichardTerrat1
 
Épistemologie de l'informatique
Épistemologie de l'informatiqueÉpistemologie de l'informatique
Épistemologie de l'informatiqueRichardTerrat1
 
Mathématiques pour l'informatique
Mathématiques pour l'informatiqueMathématiques pour l'informatique
Mathématiques pour l'informatiqueRichardTerrat1
 
Histoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculHistoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculRichardTerrat1
 
Informatique des sons et de la musique
Informatique des sons et de la musiqueInformatique des sons et de la musique
Informatique des sons et de la musiqueRichardTerrat1
 
Théorie de l'information
Théorie de l'informationThéorie de l'information
Théorie de l'informationRichardTerrat1
 
Sécurité des réseaux informatiques
Sécurité des réseaux informatiquesSécurité des réseaux informatiques
Sécurité des réseaux informatiquesRichardTerrat1
 

Plus de RichardTerrat1 (10)

La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...
 
Steganographie
SteganographieSteganographie
Steganographie
 
L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2
 
Ingénierie des protocoles
Ingénierie des protocolesIngénierie des protocoles
Ingénierie des protocoles
 
Épistemologie de l'informatique
Épistemologie de l'informatiqueÉpistemologie de l'informatique
Épistemologie de l'informatique
 
Mathématiques pour l'informatique
Mathématiques pour l'informatiqueMathématiques pour l'informatique
Mathématiques pour l'informatique
 
Histoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculHistoire des ordinateurs et du calcul
Histoire des ordinateurs et du calcul
 
Informatique des sons et de la musique
Informatique des sons et de la musiqueInformatique des sons et de la musique
Informatique des sons et de la musique
 
Théorie de l'information
Théorie de l'informationThéorie de l'information
Théorie de l'information
 
Sécurité des réseaux informatiques
Sécurité des réseaux informatiquesSécurité des réseaux informatiques
Sécurité des réseaux informatiques
 

Processus

  • 2. 19/06/19 DIU EIL - Université de Montpellier 2/31 Sommaire ● Un petit exemple ● Co-routines → Tâches → Processus ● Exclusion mutuelle ● Synchronisation : Événements et sémaphores ● Ordonnancement ● Interblocage ● Famine et Équité
  • 3. 19/06/19 DIU EIL - Université de Montpellier 3/31 Un exemple Agence de Voyage en ligne Site de réservation de places d'avion Site de réservation de chambres d'hôtel Alice Bob
  • 4. 19/06/19 DIU EIL - Université de Montpellier 4/31 Un exemple ● Alice et Bob s'adressent indépendamment l'un de l'autre à une agence de voyage pour réserver ● Un billet d'avion ● Une chambre d'hôtel et ne partiront en voyage que s'ils obtiennent satisfaction pour l'ensemble de ces deux réservations
  • 5. 19/06/19 DIU EIL - Université de Montpellier 5/31 Site de l'agence de voyage réservation d'une place d'avion Que se passe-t-il s'il ne reste plus qu'une place ? 1 2 3 5 4 6 Processus Alice Processus Bob Consultation du vol Air-Isson n°421 lecture du fichier Réservation d'une place écriture du fichier Consultation du vol Air-Isson n°421 lecture du fichier Réservation d'une place écriture du fichier
  • 6. 19/06/19 DIU EIL - Université de Montpellier 6/31 Site de l'agence de voyage réservation d'une place d'avion et d'une chambre d'hôtel Processus Alice Processus Bob Consultation du vol Air-Isson n°421 Réservation d'une place Consultation de l'hôtel Kel Réservation d'une chambre Consultation de l'hôtel Kel Réservation d'une chambre Consultation du vol Air-Isson n°421 Réservation d'une place 1 2 3 4 5 6 7 8
  • 7. 19/06/19 DIU EIL - Université de Montpellier 7/31 Site de l'agence de voyage réservation d'une place d'avion et d'une chambre d'hôtel ● Résultats – Dans le premier scénario une même place d'avion pouvait être attribuée à deux personnes – Dans le second scénario, s'il n'existe plus qu'une place d'avion et qu'une chambre d'hôtel ● Alice obtient satisfaction pour son vol mais pas pour sa chambre d'hôtel ● Bob obtient satisfaction pour sa chambre d'hôtel mais pas pour son vol ● Aucun des deux ne partira ! ● Il s'agit d'une forme d'interblocage
  • 8. 19/06/19 DIU EIL - Université de Montpellier 8/31 Co-routines Une sous-routine ● s'exécute dans le contexte de l'appelant ● dans la pile de l'appelant Les co-routines ● s'exécutent dans un contexte commun ● possèdent leur propre pile appel SP retour reprise B reprise A SP A B reprise B
  • 9. 19/06/19 DIU EIL - Université de Montpellier 9/31 Tâches (threads) ● Tâche (thread) ou « processus léger » : – Coroutine contrôlée par un planificateur (scheduler) – Pas d'instruction explicite de reprise d'exécution – Peut être interrompue entre deux instructions (via le mécanisme d'interruption) pour donner le contrôle à un planificateur : c'est la préemption – Le planificateur choisit une des tâches prêtes à être exécutée et lui donne le contrôle ● Plusieurs tâches peuvent s'exécuter sur un même processeur – Leur exécution est interrompue périodiquement à très fine échelle (de l'ordre de la microseconde) donnant l'illusion à plus grande échelle d'exécution en parallèle : c'est le quasi-prallélisme
  • 10. 19/06/19 DIU EIL - Université de Montpellier 10/31 Préemption, quasi-parallélisme T1 T2 Interruptions + planificateur
  • 11. 19/06/19 DIU EIL - Université de Montpellier 11/31 Processus ● Un processus est une tâche (thread) possédant son propre contexte en mémoire virtuelle : – Pile d'exécution (coroutine) ● Adresses de retour des sous-programmes ● Variables locales et paramètres – Tas ● Objets Données Tas Pile Code Coroutine ☞ les différentes zones ne sont pas nécessairement dans cet ordre
  • 12. 19/06/19 DIU EIL - Université de Montpellier 12/31 Tâche vs Processus ● Très souvent les deux coexistent au sein d'un système ● Unix : un processus peut comprendre plusieurs tâches ● La gestion des tâches est plus légère que celle des processus – le contexte est réduit à une simple pile ● Les processus sont plus autonomes que les tâches : ils possèdent – un environnement propre – un espace de mémoire virtuelle – une protection vis-à-vis des autres processus
  • 13. 19/06/19 DIU EIL - Université de Montpellier 13/31 Exclusion mutuelle ● Ressource partageable – Base de données, tableau, fichier, imprimante, … – Possède un état – Utilisable par plusieurs processus – Exclusive : utilisée par un seul processus à un instant donné ● Opération sur une ressource – Modifie l'état de la ressource – Déterministe : l'état final ne dépend que de l'état initial et de l'opération – Indivisible : aucune autre opération sur cette ressource ne peut avoir lieu pendant cette opération
  • 14. 19/06/19 DIU EIL - Université de Montpellier 14/31 Exclusion mutuelle ● Section critique – Suite d'instructions composant une opération indivisible sur une ressource ● Verrou : objet lié à une ressource – Attributs ● Une donnée reflétant l'utilisation de la ressource : libre ou occupée ● Les processus en attente d'utilisation – Méthodes ● Verrouiller ● Déverrouiller
  • 15. 19/06/19 DIU EIL - Université de Montpellier 15/31 Exclusion mutuelle ● Verrouiller : précède une section critique – Si la ressource est libre : ● Met la ressource à occupée – Sinon : ● Met le processus courant en attente ● Invoque le planificateur ● Déverrouiller : termine une section critique – Si au moins un processus est en attente : ● Met un seul de ces processus dans l'état prêt ● Invoque le planificateur – Sinon : ● Met la ressource à libre ☞ les opérations verrouiller et déverrouiller doivent être indivisibles !
  • 16. 19/06/19 DIU EIL - Université de Montpellier 16/31 Exclusion mutuelle Processus Alice Verrouiller le vol n°421 Consultation du vol Air-Isson n°421 Réservation d'une place Déverrouiller le vol n°421 Processus Bob Verrouiller le vol n°421 Consultation du vol Air-Isson n°421 Réservation d'une place Déverrouiller le vol n°421 1 2 3 3 3 5 4 4 4 6 sectioncritique sectioncritique
  • 17. 19/06/19 DIU EIL - Université de Montpellier 17/31 Interblocage Processus Alice Consultation du vol Air-Isson n°421 Réservation d'une place Consultation de l'hôtel Kel Réservation d'une chambre Processus Bob Consultation de l'hôtel Kel Réservation d'une chambre Consultation du vol Air-Isson n°421 Réservation d'une place 1 3 5 2 4 6 sectioncritique#1 sectioncritique#2 sectioncritique#2 sectioncritique#1 sc #1 sc #2
  • 18. 19/06/19 DIU EIL - Université de Montpellier 18/31 Donc ... Les verrous – permettent de résoudre le problème d'accès à une ressource exclusive partagée par des processus – ne résolvent pas l'interblocage
  • 19. 19/06/19 DIU EIL - Université de Montpellier 19/31 Synchronisation ● Coopération entre processus ou entre tâches ⇒ nécessité de synchronisation P1 P2 Planificateur gère le attente envoi signal P1 attend un signal émis par P2 Exemples d'outils de synchronisation : événements, sémaphores
  • 20. 19/06/19 DIU EIL - Université de Montpellier 20/31 Synchronisation ● Événement – Objet lié à un signal – Envoyé par un processus, puis mémorisé – Les processus en attente d'un signal mémorisé poursuivent leur exécution – Les processus mis en attente avant l'envoi du signal sont débloqués – Un tel signal doit être effacé explicitement – Si plusieurs signaux sont envoyés avant d’avoir été effacés, tout se passe comme si un seul avait effectivement été envoyé. ● Attributs – Une donnée booléenne E reflétant l'état du signal – Les processus en attente de ce signal ● Méthodes – envoi (S) – attente (S)
  • 21. 19/06/19 DIU EIL - Université de Montpellier 21/31 Événement ● envoi (S) – Si E ≠ S : ● E ← S ● Met tous les processus en attente à l'état prêt ● Invoque le planificateur ● Attente (S) – Si E ≠ S : ● Met le processus courant en attente ● Invoque le planificateur ☞ ces deux opérations doivent être indivisibles !
  • 22. 19/06/19 DIU EIL - Université de Montpellier 22/31 Sémaphores ● Objet permettant de gérer – Exclusion mutuelle – Synchronisation ● Inventé par Edsger Dijkstra ● Attributs – Un compteur K – Une liste de processus en attente ● Méthodes – P « Proberen » : Tester – V « Verhogen » : Incrémenter
  • 23. 19/06/19 DIU EIL - Université de Montpellier 23/31 Sémaphores ● P : – K ← K – 1 – si K < 0 : ● Met le processus courant en attente ● Invoque le planificateur ● V : – K = K + 1 – Si K ≤ 0 : ● Met à l'état prêt un seul des processus en attente ● Invoque le planificateur ☞ ces deux opérations doivent être indivisibles !
  • 24. 19/06/19 DIU EIL - Université de Montpellier 24/31 Sémaphores ● On observe que la valeur de S désigne – Si K ≥ 0 : le nombre de fois qu’une opération P peut être exécutée sans bloquer le processus qui l’invoque – Si K ≤ 0 : |K| = le nombre de processus en attente ● Utilisation – Pour l'exclusion mutuelle : S doit être initialisé à 1 – Pour la gestion d'un signal : S doit être initialisé à 0 ● Dans ce cas, l'opération V : – Mémorise et compte chaque occurrence d'un signal envoyé – Ne débloque qu'un seul des processus en attente
  • 25. 19/06/19 DIU EIL - Université de Montpellier 25/31 Communication entre processus ● Modèle du Producteur-Consommateur – Un processus P envoie des données à un processus K via un tampon partagé T de n cases – On utilise deux sémaphores ● S1 dont le compteur est initialisé à n ● S2 dont le compteur est initialisé à 0 P K T [1:n] S2.P Consomme (j) j ← j + 1 mod n S1.V S1.P Produit (i) i ← i + 1 mod n S2.V i j
  • 26. 19/06/19 DIU EIL - Université de Montpellier 26/31 Ordonnancement ● États d'un processus ou d'une tâche – ACTIF : un seul processus (ou tâche) est en cours d'exécution à un instant donné par processeur (donc un seul sur un mono-processeur) – PRÊT : un processus non ACTIF possédant toutes les ressources nécessaires à son exécution – BLOQUÉ : un processus en attente de ressource ou de signal ● Transitions entre états PRÊT ACTIF BLOQUÉ création activation désactivation blocage (mise en attente) déblocage terminaison planificateur synchronisation
  • 27. 19/06/19 DIU EIL - Université de Montpellier 27/31 Ordonnancement ● Dès qu'il est appelé, le planificateur choisit parmi les processus ou les tâches prêts à être exécutés, un « élu » ● Stratégies d'élection – Par priorités – Tourniquet (round-robin) Élu Prêts
  • 28. 19/06/19 DIU EIL - Université de Montpellier 28/31 Interblocage ● Situation dans laquelle deux processus ou tâches P1 et P2 demandent l'accès à deux ressources R1 et R2 selon le schéma ci-dessous R1 R2 P1 P2 Est allouée à Est allouée à Demande Demande
  • 29. 19/06/19 DIU EIL - Université de Montpellier 29/31 Interblocage ● Détection – Comment savoir que deux processus ou tâches sont en situation d'interblocage ? ● Guérison – Que peut on faire pour sortir d'un interblocage ? ● Prévention – Comment et quand peut-on prévoir une situation d'interblocage ? ● Exemple de l'algorithme du banquier – Développé par Dijstra et Habermann – Analogie avec les prêts gérés par un banquier
  • 30. 19/06/19 DIU EIL - Université de Montpellier 30/31 R1 R2 P1 P2 f3 f1 f2 a b c d
  • 31. 19/06/19 DIU EIL - Université de Montpellier 31/31 Famine et Équité ● Famine – Certains processus ou tâches sont privés de l'obtention de certaines ressources demandées, allouées à tour de rôle à d'autres processus ou tâches ● Équité – Propriété assurée par le planificateur pour éviter la famine, prenant par exemple en compte ● Nombre et fréquence des demandes ● Temps d'utilisation des ressources ● Gestion dynamiques de priorités (vieillissement des demandes en attente)