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

Linux Discussion :

Programmation Système : Signaux


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut Programmation Système : Signaux
    Une petite question sur laquelle je bloque :
    Quel est le nombre maxiaml de traitants de signaux qui peuvent être exécutés de façon imbriquée ? Pourquoi cette limite ?

    J'ai eu cette question dans le cadres d'un partiel sur de la programmation système sur système Unix. Ayant eu 2,5 je suis en train de préparer mon rattrapage.
    Merci pour votre aide

    Voici mon partiel:
    partiel1.jpg
    partiel2.jpg

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Je ne connais pas la réponse exacte, mais une chose est certaine : si tu programmes correctement, un handler de signal doit faire le minimum d'actions. Généralement, cela se limite a changer la valeur d'une variable.

    Donc sauf contraintes speciales (environnementales ou autre), si tu développes correctement, la réponse sera 1 seul.

    Je pense d'ailleurs que c'est la reponse, mais je ne suis pas certain, car c'est une question purement theorique, qui appelle donc une reponse theorique.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    Bonjour,

    je ne comprends pas très bien ou est l'imbrication, pourrais tu préciser.

    Sinon même sans avoir compris je suis persuadé que la réponse se trouve quelque part près de

    man 2 signal
    man 7 signal
    man sigaction

    @+

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut
    Merci pour vos réponses.
    Je suis d'accord que vous donnez cette question hors de son contexte peut être compliquer, c'est pour cela que je vous ai ajouté en image le sujet de mon partiel.

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Le sujet du partiel n'aide pas beaucoup... Le vocabulaire employe n'est pas des plus precis, ni des plus communs.

    Il s'agit de questions de cours, donc je suppose que la réponse se situe dans les cours que vous avez eu. Sinon, peut-etre qu'un camarade de promo saurait te donner la reponse ?

    Desole de pas pouvoir t'aider plus, mais je crains que cette question theorique ne reste sans reponse de ma part.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut
    Mon problème est que personne n'a réussi ce partiel (la meilleur note étant 11), Le cours n'est pas très explicite (bcp de proto de fonction et pas d'exemple), des tps compliqués sans correction et pas de correction de partiel. C'est pour ça que je suis venu ici tenté ma chance.
    Merci pour ta réponse

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 494
    Par défaut
    C'est-à-dire que l'énoncé en lui-même est déjà très tordu et, qui plus est, d'un français approximatif (on ne parle pas de signal pendant mais en suspens, entre autres). Ensuite, imbrication et empilement sont deux choses différentes. Concernant la pile de signaux, il y a bien sigstack() sur BSD, mais pas ailleurs, à ma connaissance.

    Par contre, si je comprends bien le sens des questions 2.1 et 2.2, il ne peut y avoir qu'un exemplaire de chaque signal en suspens, parce que ceux-ci sont marqués comme reçus par un flag propre à chacun d'eux. C'est quasiment identique à une IRQ hardware et c'est fait pour. Si l'on met un handler sur un signal donné, qu'on le bloque avec sigprocmask() pendant une dizaine de seconde et que, dans l'intervalle, on balance cinq fois le même signal au processus, le handler sera bien appelé à l'issue du délai de grâce, mais une seule fois.

    J'ai lu quelque part (je ne retrouve plus où) que le nombre de signaux différents était celui du nombre de bits dans un int, donc 32 sur une machines 32 bits, 64 sur une 64.

    Depuis, POSIX spécifie ceci, extrait de man 7 signal :

    Citation Envoyé par man 7 signal
    According to POSIX, an implementation should permit at least _POSIX_SIGQUEUE_MAX (32) real-time signals to be queued to a process. However, Linux does things differently. In kernels up to and including 2.6.7, Linux imposes a system-wide limit on the number of queued real-time signals for all processes. This limit can be viewed and (with privilege) changed via the /proc/sys/kernel/rtsig-max file. A related file, /proc/sys/kernel/rtsig-nr, can be used to find out how many real-time signals are currently queued. In Linux 2.6.8, these /proc interfaces were replaced by the RLIMIT_SIGPENDING resource limit, which specifies a per-user limit for queued signals; see setrlimit(2) for further details.
    Comme j'imagine qu'un handler de signal peut être appelé depuis un autre handler si le signal correspondant n'est pas bloqué (un signal donné est automatiquement bloqué lorsque l'on entre dans son handler), les réponses à tes questions doivent donc être :

    1. Un signal d'un type donné à la fois ;
    2. 32 signaux différents recevables par un processus, simultanément ou non ;
    3. 32 appels imbriqués aux différents handlers.


    Il reste à savoir si c'est bien de cette manière que ton prof' voit les choses, ce qui est loin d'être sûr.

    Après, il existe maintenant les signaux temps-réel qui imposent des contrôles supplémentaires. Je ne les utilise jamais et je ne peux donc pas gloser sur le sujet.

  8. #8
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Je suis d'accord avec cette analyse et avec les réponses apportées.

    fred44ooo : ne pouvez-vous pas demander un corrigé au professeur, afin de savoir si c'est bien ce qu'il attendait comme réponse ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/10/2014, 08h20
  2. Réponses: 4
    Dernier message: 18/06/2014, 14h57
  3. Réponses: 4
    Dernier message: 28/11/2013, 20h40
  4. Programmation système
    Par spynux dans le forum Général Java
    Réponses: 1
    Dernier message: 04/11/2005, 10h40
  5. [Programmation système] Programme de base
    Par tooney dans le forum C
    Réponses: 7
    Dernier message: 11/07/2005, 21h36

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