Skip to content

ElenaFri/parallel-sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 

Repository files navigation

sae-s31

Ceci est un simulateur de processus sur un (ou plusieurs, suivant la version) serveur(s) de jeux.

Vous êtes au point de départ : en effet, la branche main ne contient que la liste des versions disponibles dans les autres branches, listées ci-dessous.

Versions et branches

Version 0, de base

v0 : branche v_0_base

Cette simulation sait effectuer les opérations suivantes :

  • Créer une base de données (en variable globale), qui sera exploitée par la suite ;
  • Consulter cette base soit pour
    • afficher la liste intégrale des jeux disponibles, ou pour
    • télécharger un ou plusieurs jeux proposés, un par un ;
  • Effacer le jeu téléchargé - sans pour autant toucher à la base de données créée au lancement du serveur ;
  • Lancer un jeu téléchargé, pour jouer en solo ou contre un autre joueur.

Pour les versions de v1 à v3, le client impose une exécution des opération en parallèle, afin de :

  • Limiter la consommation de mémoire ;
  • Réduire au maximum les temps d'exécution.

Version 1, monolithique

v1.1 : branche v_1_1_mono_fork

Le serveur doit pouvoir lancer des opérations non bloquantes en parallèle mais aussi être capable d’attendre la fin d’une opération bloquante.

v1.2 : branche v_1_2_mono_thread

Le serveur est toujours issu d’un seul code mais intègre le partage de mémoire tout en maintenant la possibilité de parallélisation des exécutions.

Version 2, multiserveur

v2.1 : branche v_2_1_multi_execv

Chaque serveur est spécialisé dans une opération (search_server, list_server, play_solo_server, play_combat_server...) avec des codes différents du coup : le serveur principal, qui ne contient plus le code correspondant aux opérations, devra lancer le serveur dédié à chaque exécution d’une opération en lui transférant les arguments de celle-ci dont le code du jeu si nécessaire.

v2.2 : branche v_2_2_multi_pipe

Les serveurs dédiés sont toujours actifs : le serveur principal va juste leur transférer les arguments des opérations à exécuter.

Version 3, réseau

v3.0 : branche v_3_0_network_socket

Les opérations seront exécutées sur une ou plusieurs machines distantes.

Livrables

Conformément à la demande du client, l'application est compilée avec une seule commande, make (voir Makefile). À moins d'avoir fait un make clean préalablement, seuls les fichiers mis à jour et ceux qui dépendent de ces derniers sont (re)compilés.

Le nom de l'exécutable est games_sim.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published