[A L'AIDE] Exercice d'informatique qui nécessite +200 IQ
Supprimé1. Synchronisation par ticket sans compteur commun
int ticket [N]; // Ticket pour chaque thread, il y a N threads
int number = 1; // Distributeur de tickets
int next = 1; // numéro du prochain ticket qui peut entrer en section critique
void *foo(void *arg) {
int k = atoi((char *) arg); // k est le numéro du thread
while(1) {
ticket[k] = number; number = number + 1; // Je prends mon ticket
while(ticket[k]!=next); //J'attend mon tour
... //On est dans la section critique
next = next + 1;
}
}
A partir du code précédent, dérivez une solution où on n'utilise plus la variable globale next (qui indique qui est le prochain thread à rentrer en section critique), mais où chaque thread compare la valeur de son ticket par rapport à la valeur des autres avant de décider de rentrer en section critique.
Désolé, le bas QI que je suis n'avait pas mis la consigne complète, c'est corrigé
Aidez-moi maintenant je vous en prie
Je comprends pas comment on peut faire un machin d'exclusion mutuelle entre des threads si y'a pas un machin commun entre les threads
Pour moi comparer les numéros de tickets entre eux ça permet pas de faire ça quoi
Enfin je sais pas je comprends rien
J'en ai marre
Le 13 octobre 2021 à 18:04:26 :
Ecris moi ton truc en pseudo code dans un truc que je peux comprendre et je te le fais c'est de la logique pure mais la je bite rien a ton langage
Euh ok
VARIABLESticket : Tableau de N entiers
number = 1 : Entier
next = 1 : Entier
k : Entier
PROCEDURE fooReçoit arg : Entier
k = arg
TANT QUE 1 = 1 (boucle infinie quoi)
ticket[k] = number;
number = number + 1;
TANT QUE ticket[k] != next //J'attend mon tour
... //On est dans la section critique
next = next + 1;
FIN TANT QUE
FIN TANT QUE
Le 13 octobre 2021 à 18:13:39 :
C'est n'importe quoi ton code il y a des races de partout, l'écriture dans une variable globale n'est pas thread-safe
Oui ça je sais c'est même ce qu'il fallait expliquer à la question d'avant
Données du topic
- Auteur
- JohnnyGrosZboub
- Date de création
- 13 octobre 2021 à 17:45:39
- Date de suppression
- 18 octobre 2021 à 16:00:17
- Supprimé par
- Auteur
- Nb. messages archivés
- 34
- Nb. messages JVC
- 31