Giter Site home page Giter Site logo

sy40-tp6's Introduction

SY40 TP6

a) Compilez P1.c, P2.c, P3.c pour obtenir les exécutables P1, P2 et P3.

Utilisation standard de GCC

b) Exécutez P1, puis réessayez une nouvelle fois. Comment expliquez-vous la réponse ?

Le programme ne supprime jamais la file de message créée : le programme ne s'exécutera qu'une seule fois sans la supprimer.

c) Visualisez les tables du système et détruisez l'entrée adéquate (ipcs, ipcrm), puis modifiez P1.c pour que la destruction de la file de messages soit automatique.

On trouve l'ID de la message queue via la commande ipcs, et on rajoute un msgctl pour supprimer l'ancienne fille. Le P1 s'exécute maintenant correctement

On a supprimé les files de messages pré-existantes. On peut maintenant rajouter notre condition en fin de P1 pour supprimer sa file de message pour qu'il puisse automatiquement se réexecuter.

d) Complétez P2.c et P3.c pour que les deux processus P2 et P3 s'écrivent et lisent mutuellement leurs numéros de PID en utilisant la file de message créée par P1.

Dans P2, on envoie le type 2 à P3 et reçoit le type 3. Vice-versa dans P3.


Ecrivez à partir de prg2.c un programme prg3.c comprenant un autre processus serveur (TRIEUR) qui trie les nombres aléatoires générés par le SERVEUR avant de les fournir au CLIENT.



J'ai déclaré une structure additionnelle pour envoyer mon message du serveur à la fonction de tri


On se charge également de créer nos message queues, et de gérer leur suppression lors de l'arrêt via Ctrl+C (SIGINT signal)

Côté serveur:

Le serveur va copier la réponse des nombres générer du client dans une structure tri, créer un processus fils qui le triera dans la fonction tri(). Le serveur attend la réponse du fils.

Le fils appelant la fonction tri va se connecter à la message queue, via la clé prédéfinie. On peut maintenant appliquer notre tri croissant pour nos chiffres entiers générés via qsort, et la fonction ordreAscendantInt, fournie dans tri.c

Tri() renvoie ensuite dans la message queue pour réception par son père.

Ce dernier va ensuite le replacer dans une structure réponse, et le renvoyer à son client respectif (via son pidEmetteur) Bien que les structures req et tri_message soient identiques, j'ai préféré créer une autre structure. Elle nous permettrait de s'adapter plus facilement à d'autres contraintes, (e.g. conversion de types...) si nous devions les implémenter, bien que cela consomme davantage de mémoire à l'exécution. Dans notre cas d'utilisation. Nous pourrions nous contenter de réutiliser la même structure dans la message queue de tri.

sy40-tp6's People

Contributors

derreyann avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.