Bonjour à tous,
Pour une application embarquée j'aurai besoin de pouvoir désactiver le Scheduler pendant un court instant, en mode User.
Est-ce possible de désactiver le Scheduler sous Linux ?
Si oui, quelle est la fonction qui me permettrai de le faire ?
Je vous remercie d'avance pour votre aide.
Sébastien.
# Préemptif
Posté par peck (site web personnel) . Évalué à 3.
Ce que tu veux c'est probablement des fonctions temps réel au noyau. Elle ne sont aps disponible dans le noyau de base, mais probablement dans des patchs temps réel.
# Désactiver ?
Posté par Alex . Évalué à 2.
Il éxiste sous linux des appels sys pour influer sur le scheduler dont setsched (jme rapelle que celui là, jai pas de lin sous la main :( ). Et des outils en ligne de commande tel schedutil et schedtool
# C'est pour quoi faire ?
Posté par TheBreton . Évalué à 2.
Quel est la raison de vouloir couper le scheduler ?
Si c'est pour absorber un pic de charge en temps de traitement et ameliorer un temps de reponse en desactivant les autres taches:
-Tu peut jouer avec la priorité d'execution de ta tache (le scheduleur te donneras plus la main que les autres taches)
-Tu peut envoyer un signal a tes taches pour quelle passe en sleep (si tu en as les sources) puis un autre pour les relancer
-(solutions beurk) Tu peut descendre la partie traitement (longue) dans un module kernel car dans l'espace kernel tu n'est pre-empté que par les [interruptions et thread kernel] mais par aucune tache user.
[^] # Re: C'est pour quoi faire ?
Posté par seblux . Évalué à 1.
En fait le but est de porter un vieu code Assembleur sous Linux, ce code désactivait le scheduler pour le traitment de ressources critiques.
A savoir, il n'y aurra normalement qu'un seul Processus successible d'acceder à ces données, mais plusieurs Threads dans ce processus qui pourraient éventuellement y acceder, et peut-être simultanément....
Donc si j'ai bien suivi, pour éviter d'être interrompu par un autre Thread quand je veux acceder à ma ressource, je devrai passer par le mode Kernel lorsque j'accede à ces ressources ?
Ainsi je ne serais pas interrompu par un autre Thread qui désire acceder à la même ressource au même moment....
Ca tiens la route ?
[^] # Re: C'est pour quoi faire ?
Posté par Toto . Évalué à 2.
[^] # Re: C'est pour quoi faire ?
Posté par Plinn . Évalué à 1.
Regarde les sémaphores ou mutex.
Tu peux parfaitement gérer ça en mode user sans un quelconque recourt au mode Kernel.
[^] # Re: C'est pour quoi faire ?
Posté par seblux . Évalué à 1.
Merci à tous.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.