Synchronisation Flashcards
Quelles sont les 3 raisons pourquoi on a besoin de synchronisation?
- Variables globales
- ES
- Vitesse inconnue du OS
Quels sont les 3 types d’interaction entre les processus
- Compétition
- Coopération par partage (indirecte)
- Coopéraion par communication (directe)
Qu’est-ce que la compétiton?
2 processus tentent d’accéder à la même ressource sans savoir que l’autre existe
Qu’est-ce que la coopération par partage?
Write must be mutex
Access to shared data, but knows there are other processes and that data integrity must be preserved
Qu’est-ce que la coopération par communication?
Les processus travaillent ensemble
Font un effort pour être connectés
S’envoient des messages
Pas de partage
Quels sont les 3 problèmes potentiels?
- Exclusion mutuelle
- Interblocage
- Famine
Qu’est-ce que l’exclusion mutuelle?
Un seul processus dans une section critique
Qu’est-ce que l’inteblocage?
Un ou plusieurs processus sont bloqués car ils s’attendent
Qu’est-ce que la famine?
Un processus n’est jamais choisi par le répartiteur
Qu’est-ce qu’une race condition?
La valeur finale d’une variable dépend de l’ordre d’exécution
Quelles sont les 5 conditions qui doivent être respectées afin d’assurer l’exclusion mutuelle?
- Un seul processus dans la section critique à la fois
- Un processus interrompu dans une section non-critique ne doit pas interférer avec les autres
- Un processus qui attend à l’entrée d’une section critique ne peut l’attendre indéfiniement
- Lorsqu’il n’y a aucun processus dans la section critique, alors tout processus qui en fait la demande peut y accéder sans attente.
- Un processus demeure dans la section critique pour un temps fini
Qu’est-ce que l’algorithme de Peterson?
sCritA = 1
tour = 1
wait while scritb and tour
scritb = 1
tour = 0
wait while scrita and not tour
scrit is false after crit sect
Qu’est-ce qu’une opération atomique?
Une opération qui s’exécute sans interuption
Que fait semwait
décrémente, rajoute a la file de blocked si négatif après
Que fait semsignal
incremente, si valeur negative, on débloque un processus bloqué