IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ada Discussion :

Méthodes de gestion d'accès simultanés aux données


Sujet :

Ada

  1. #1
    Invité
    Invité(e)
    Par défaut Méthodes de gestion d'accès simultanés aux données
    Bonjour,

    Quelle sont les méthodes à disposition avec Ada pour gérer les accès simultanés aux données ?

    De mémoire, les taches et types protégés peuvent nous simplifier la vie. Mais après, je sèche.

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut Up
    Yep, bonjour,

    Donc j'ai fait une tache pour mon premier fichier, mais je ne sais pas si c'est fonctionnel. Vais-je avoir un quelconque problème ?

    Up ! Merci

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour, je remonte ce sujet car, ... je ne comprend rient au mécanisme de synchronisation.

    Je souhaite protéger une liste contre les accès simultanés.

    Je ne sais pas quoi faire...j'ai ce document http://www.ada-france.org/IMG/pdf/c_bellissant.pdf et la spécification de Gnat.Semaphores, mais je ne sais pas quoi mettre en place, puisque je comprend rien. A par pour le verrou de Dijkstar .

    Si vous avez un poil de temps à m'accorder pour me faire un topo en français ce serait super.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Yep !

    Pour faire ce que veux, il me semble qu'un sémaphore devrait suffire.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    Je pense aussi.
    Maintenant, quel type de sémaphore ?
    - As-tu N lecteurs (ie N threads ou tâches) et 1 producteur de tes données, sachant que tu ne veux pas bloquer les autres lecteurs pendant qu'un lecteur à la main ?
    - Ou veux-tu un et un seul consommateur (lecteur ou producteur) à la fois?

    Pour le premier, tu utilises la première version de sémaphore décrite dans Gnat.Sémaphores, dans l'autre, tu utilises la deuxième.

    La première version est un peu plus délicate à utiliser car quand tu veus écrire ta donnée, il faut bloquer tout le monde et surtout attendre que tout le monde est fini de lire.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir, merci pour ta réponse.

    Je suis dans le second cas.

    J'ai deux processus qui doivent accéder chacun leur tour à la ressource.

    Donc dans chaque processus, je commence par un seize et termine par release.

  7. #7
    Membre habitué
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 156
    Points
    156
    Par défaut
    Qu'est-ce qui empêche l'utilisation d'un type protégé dans ton cas (demande à titre informatif)?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jc-miranda Voir le message
    Qu'est-ce qui empêche l'utilisation d'un type protégé dans ton cas (demande à titre informatif)?
    Bonjour jc-miranda,

    Je doit protéger une liste contre les accès simultanés.

    Mais c'est peut-être pas clair.

    Je doit pouvoir interdire l'accès à une liste dans des section de code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Aller_En_Tête(Liste)
    while not En_Fin(Liste) loop
        Traiter(L_Element_Courant(Liste)
        exit when En_Queue(Liste);
        Passer_Au_Suivant(Liste);
    end loop;
    Même si je met toute ces procédure et fonction dans un objet protégé, je ne garantie pas une exploitation cohérente.

    Donc, j'utilise un sémaphore pour obtenir le droit d'accès à la liste.

    Et je rajoute deux ligne dans ma section critique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    semaphore.seize; --attendre le droit d'accéder à la resource.
    Aller_En_Tête(Liste)
    while not En_Fin(Liste) loop
        Traiter(L_Element_Courant(Liste)
        exit when En_Queue(Liste);
        Passer_Au_Suivant(Liste);
    end loop;
    semaphore.release; -- libération de la ressource.

  9. #9
    Membre habitué
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 156
    Points
    156
    Par défaut
    C'est très clair merci.
    C'est juste que comme un gros boulet j'ai loupé la partie où tu précisais ton souci.
    Mea culpa.

    /me qui va retourner prendre des cours de lecture de forums.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Y a pas de mal

Discussions similaires

  1. gestion de l'accès simultané aux données
    Par farofaro dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/05/2013, 14h31
  2. [Architecture] gestion des accès simultanés
    Par JeromeBcx dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 28/02/2008, 16h35
  3. Réponses: 6
    Dernier message: 05/11/2007, 14h35
  4. Acces rapide aux données
    Par new.proger dans le forum JDBC
    Réponses: 4
    Dernier message: 18/07/2007, 15h19
  5. jsp mysql accès concurrents aux données
    Par elpeygey dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/04/2007, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo