Simulateur de réseau

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”


  • No Comments

Leave a Reply