/utbm_lo41_ferroutage

Simulation de ferroutage en C

Primary LanguageC

UTBM, Projet de LO41, programmation système et simulation de ferroutage

Le principe de la simulation est simple : 12 terminaux d'accueils symbolisés par des files de messages, reçoivent chacun des camions et leurs remorques destinés à être chargés sur un train. Quand le train est entièrement chargé, un nouveau train arrive en gare !

Ce projet met en oeuvre quelques concepts importants de programmation système : la création de processus (fork) et les IPC (signaux, mémoire partagée shm, sémaphores et files de messages).

Le programme est composé de 4 processus parallèles :

  • un contrôleur, affiche le chargement du train pas à pas ;
  • le train, affiche son arrivée, son remplissage et son départ ;
  • le processus file_camion, un générateur de camions, qui permet de remplir les terminaux.
  • le processus terminaux, gère les terminaux de chargement, chacun étant un processus associé à une file.

Le programme a été testé avec succès sous Linux et Solaris. Le code du fichier semaphore.c nous a été donné par le professeur.

Pour compiler le programme, compilez avec make :

$ git clone git://github.com/hcartiaux/utbm_lo41_ferroutage.git 
$ cd utbm_lo41_ferroutage
$ make

Pour le lancer, sur 4 terminaux, lancez les commandes suivantes :

$ ./controleur
$ ./train
$ ./terminaux
$ ./file_camion

Arrêter le processus controleur en le tuant (via ctrl+c ou kill) arrête tous les autres processus.