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

C Discussion :

créer section critique


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut créer section critique
    Bonsoir,

    je cherche à exécuter un bout de code en section critique.

    Qu'y a-t-il de similaire à un CLI et un STI (asm) ?
    J'obtiens un segfault si je met directement ces instructions en asm.
    D'après différentes docs sur le net, c'est parce qu'on a uniquement le droit en mode kernel et non user.

    J'ai trouvé spinlock ou encore lock_kernel, mais je ne trouve pas les fichiers d'entêtes correspondants.


    Quelqu'un a une idée comment procéder ?
    Merci d'avance pour toute aide ...

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    Pourquoi ne pas utiliser les threads?

  3. #3
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    Citation Envoyé par Gruik Voir le message
    Salut,

    Pourquoi ne pas utiliser les threads?
    Je veux garantir cette suite d'instruction dans un programme sans threads.
    Dans le cas d'un driver, aucun thread n'est utilisé pour les sections critiques ...

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par je®ome Voir le message
    Je veux garantir cette suite d'instruction dans un programme sans threads.
    Dans le cas d'un driver, aucun thread n'est utilisé pour les sections critiques ...
    Je ne comprends pas bien ton problème.

    Pour les section critiques, en général, tu veux garantir un accès exclusif à une ressource (mémoire, fichier, périphérique, code, ...) vis a vis d'un programme/processus/thread concurrent qui pourrait vouloir faire la même chose.

    Dans ton cas, tes concurrents ils sont où ? Est ce que tu peux expliquer un peu plus ton problème ?

    Les instructions STI/CLI sont des instructions assembleurs qui nécessitent des privilèges (ring0) mais surtout qui empêchent les interruptions. A ce propos, je ne suis pas sûr que le fait de masquer les interruptions empêche le scheduler de faire un changement de tâche et donc, ce n'est peut être pas la solution à ton problème.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    Les concurrents sont toutes les autres tâches linux qui tournent sur l'os.
    En stoppant les irq, je suis certain de stopper le scheduler, car le scheduler utilise l'interruption timer (irq0).

    Sinon, comment exécuter un programme en mode kernel ? ( sans faire de module driver)

    Merci pour l'intérêt porté à mon problème !!

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Et pourquoi alors ne pas utiliser un sémaphore. C'est un peu prévu pour tout de même. Regarde du côté de semget().

    Et puis stopper le schéduler, c'est probablement pas une bonne idée.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'include avec une section critique.
    Par radicalrider dans le forum Visual C++
    Réponses: 21
    Dernier message: 12/07/2006, 15h38
  2. [VB.NET] Remplacement de fichier, section critique
    Par leSeb dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/03/2006, 14h34
  3. section critique "static" ou pas?
    Par giova_fr dans le forum Windows
    Réponses: 2
    Dernier message: 01/01/2006, 13h15
  4. [Delphi 6] Problème de section critique
    Par Desraux dans le forum Langage
    Réponses: 8
    Dernier message: 08/12/2005, 14h13
  5. [Kylix] Section critique
    Par rahimk dans le forum EDI
    Réponses: 5
    Dernier message: 23/11/2005, 12h18

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