Ressource partagée entre 2 processus indépendants
Dernière réponse : dans Programmation
Bonjour,
Je voudrais gérer une ressource partagée (en l'occurrence un tube de communication non nommé) entre 2 processus fils. J'ai pensé à utiliser une sémaphore mais je viens de lire que Linux ne gère que les sémaphores entre threads.
Il reste une méthode qui consiste à utiliser les primitives SLEEP et WAKE UP pour l acces à la section critique mais j'aimerais savoir si il n existe pas une autre méthode qui permettrait de ne pas bloquer un processus si il ne peut pas y accéder.
En fait, si le processus est refusé pour l acces au tubes de communication, il faudrait qu il puisse continuer a executer d autres fonctions.
Merci d avance!
Je voudrais gérer une ressource partagée (en l'occurrence un tube de communication non nommé) entre 2 processus fils. J'ai pensé à utiliser une sémaphore mais je viens de lire que Linux ne gère que les sémaphores entre threads.
Il reste une méthode qui consiste à utiliser les primitives SLEEP et WAKE UP pour l acces à la section critique mais j'aimerais savoir si il n existe pas une autre méthode qui permettrait de ne pas bloquer un processus si il ne peut pas y accéder.
En fait, si le processus est refusé pour l acces au tubes de communication, il faudrait qu il puisse continuer a executer d autres fonctions.
Merci d avance!
Autres pages sur : ressource partagee processus independants
Lassé par la pub ? Créez un compte
Nan il me semble pas.. Regarde ceci
int sem_init(sem_t *sem, int pshared, unsigned int valeur);
Si pshared=0, le sémaphore est local au processus => utilisable par les threads.
Si pshared !=0 => utilisable entre pere et fils(ou fils-fils), et Linux renvoie une erreur si !=0...
Par contre, j ai lu que ca marchait avec une autre fonction sous Unix System V, mais pas de bol, je dois le faire sous Linux.
int sem_init(sem_t *sem, int pshared, unsigned int valeur);
Si pshared=0, le sémaphore est local au processus => utilisable par les threads.
Si pshared !=0 => utilisable entre pere et fils(ou fils-fils), et Linux renvoie une erreur si !=0...
Par contre, j ai lu que ca marchait avec une autre fonction sous Unix System V, mais pas de bol, je dois le faire sous Linux.
Wi c est une bonne nouvelle, j ai envoyé un mail a mon prof (car c est un projet) pour savoir si les machines de l evaluation seront compatibles.
Par contre, j utilise Cygwin pour coder, est ce que c est aussi compatible System V ?
Sinon pour les IPC c est bien Com interprocessus? si c est le cas, j ai potasser le chapitre mais ds mon cours, c est différencier de Synchronisation Inter Processus.
Donc la communication est OK, il reste plus qu a synchroniser à l'aide des sémaphores
Par contre, j utilise Cygwin pour coder, est ce que c est aussi compatible System V ?
Sinon pour les IPC c est bien Com interprocessus? si c est le cas, j ai potasser le chapitre mais ds mon cours, c est différencier de Synchronisation Inter Processus.
Donc la communication est OK, il reste plus qu a synchroniser à l'aide des sémaphores
Ah, ah, je savais bien que c'était un cas d'école !!
Concernant les comptabilités de Cygwin, Google est ton ami, le manuel, l'aide en ligne et les FAQ aussi !
Il y a 99.99% de chance que les systèmes de ton école/université/collège/lycée/? soient compatibles. Sinon, on ne te proposerait pas l'exercice.
Quand j'évoque IPC c'est bien de Inter-Processus Communication dont je parle.
Tu t'es laissé emballer dans tes recherches. Tu es tombé sur les sémaphores et les threads POSIX, bien normés, bien documentés sur des sites très officiels. Mais il existe sous Linux, héritée du sVr4 une autre mécanique, classique et standard, qui s'appelle aussi sémaphore et qui s'applique particulièrement bien aux tubes non nommés.
CygWIN est très pratique mais cela reste un paliatif aux graves lacunes de Windows. Si je peux me permettre un conseil, installe toi un Linux, c'est bien, ou encore utilise une liveCD, c'est pas plus mal. cf. la cat Linux sur PPC pour plus d'aide.
Enjoy!
Concernant les comptabilités de Cygwin, Google est ton ami, le manuel, l'aide en ligne et les FAQ aussi !
Il y a 99.99% de chance que les systèmes de ton école/université/collège/lycée/? soient compatibles. Sinon, on ne te proposerait pas l'exercice.
Quand j'évoque IPC c'est bien de Inter-Processus Communication dont je parle.
Tu t'es laissé emballer dans tes recherches. Tu es tombé sur les sémaphores et les threads POSIX, bien normés, bien documentés sur des sites très officiels. Mais il existe sous Linux, héritée du sVr4 une autre mécanique, classique et standard, qui s'appelle aussi sémaphore et qui s'applique particulièrement bien aux tubes non nommés.
CygWIN est très pratique mais cela reste un paliatif aux graves lacunes de Windows. Si je peux me permettre un conseil, installe toi un Linux, c'est bien, ou encore utilise une liveCD, c'est pas plus mal. cf. la cat Linux sur PPC pour plus d'aide.
Enjoy!
Si c'est spécifique au système, c'est pas dans le répertoire include mais dans include/sys. Donc :
Mais quelle fonction cherches-tu dans <sys/synch.h> ? Tu es encore dans les threads POSIX ?
Regarde plutôt du côté de <sys/types.h>, <sys/ipc.h> et <sys/sem.h>.
(de mémoire, je ne peux pas vérifier à l'heure où je poste)
#include <sys/synch.h>
Mais quelle fonction cherches-tu dans <sys/synch.h> ? Tu es encore dans les threads POSIX ?
Regarde plutôt du côté de <sys/types.h>, <sys/ipc.h> et <sys/sem.h>.
(de mémoire, je ne peux pas vérifier à l'heure où je poste)
Nan j étais parti dans d autres sémaphores que mon cours donnait mais apparemment elles sont tres peu usitées d ou le fait qu elles n ont pas été tranmises a Linux.
J ai regardé tes .h c pile poile ce qu il me faut, je vais aller tester tout ca.
Merci bcp pour ton aide et tes connaissances précieuses
J ai regardé tes .h c pile poile ce qu il me faut, je vais aller tester tout ca.
Merci bcp pour ton aide et tes connaissances précieuses
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumAugmenter mémoire graphique partagée
- ForumAnnuler memoire partagée
- ForumCarte video mémoire partagée
- ForumDifférence entre mercatique et ressource humaine
- ForumManque de ressource
- articlesRessource tuner
- ForumRessource insuffisante
- benchmarkAutocad mesure segments indépendants
- benchmarkDeux claviers indépendants sur un portable
- articlesRégime social des indépendants rsi
- Voir plus