Description
Le simulateur de réseau émule un système de communication faisant usage de sémaphore afin de se partager un nombre limité d’imprimantes communes. Tous les ordinateurs reçoivent une partie différente d’un «feed» qui contient des instructions sur ce que l’ordinateur doit effectuer. L’une de ses instructions est d’imprimer le contenu actuel de la mémoire de l’ordinateur. Pour ce faire, il faut toutefois demander à obtenir une imprimante, ce qui n’est pas toujours possible.
Snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // Attendre le mutex de cet ordinateur sem_wait(&mutexOrdinateurs[ordi->mId-1]); // Si terminé, simplement activer le prochain ordi if (ordi->aTermine) { // Libérer le mutex du prochain ordinateur prochain = (ordi->mId) % nbOrdinateurs; if (prochain != 0) { sem_post(&mutexOrdinateurs[prochain]); } else { // Libérer le mutex principal sem_post(&mutexPrincipal); } continue; } // Quelle instruction? instructionMaintenant = ordi->instructions.front(); |
Options(features)
Aperçu
0 Responses to “Simulateur de réseau”