À quoi sert la priorité «temps réel» d'un processus?


12

D'après mon expérience, la configuration de tout processus en temps réel ralentira votre ordinateur à un rythme d'escargots. À quoi sert ce paramètre s'il rend votre ordinateur inutilisable?


2
Si vous avez un processeur multicœur ou un système multiprocesseur, vous pouvez définir l'affinité pour un seul cœur. De cette façon, le reste du système restera réactif et vous pourrez profiter des autres avantages d'un processus en temps réel. Bien sûr, cela ne fonctionne que pour les processus qui n'ont besoin que d'un cœur pour fonctionner.
AndrejaKo

Réponses:


7

Exactement ce que vous décrivez, au prix de ralentir le reste de votre ordinateur à une analyse, il exécute le processus en temps réel en lui donnant une priorité plus élevée que tout le reste. Cela n'est nécessaire que pour les applications à temps critique, la plupart des gens ne les voient pas dans leur vie quotidienne ...


Certains programmes très courants, tels que les serveurs de son (PulseAudio et JACK comme deux exemples Linux), utilisent des threads prioritaires en temps réel.
user1686

@grawity: JACK n'est pas un serveur, mais juste un kit de développement. Les deux sont multi-plateformes. Bon point, cependant, ces éléments audio nécessitent une priorité en temps réel, mais je parlais d'un point de vue Windows 7 où ces processus que vous spécifiez n'obtiennent pas la priorité en temps réel. Windows a quelque chose appelé le planificateur de classe multimédia pour ce type de processus ...
Tamara Wijsman

Qu'est-ce jackddonc, sinon un serveur sonore? (D'après ce que je comprends jusqu'à présent, le PA et le JACK fonctionnent de la même manière en ce qu'ils fournissent à la fois un serveur de son et une bibliothèque / un kit pour y accéder ...)
user1686

Cela ne fait pas du kit un serveur. Nous parlons ici de processus, pas de fils ...
Tamara Wijsman

1
D'autres exemples d'applications en temps réel sont les applications médicales et la robotique directement contrôlée. Choses où 10µs est la différence entre un fonctionnement correct et une panne (où la panne peut impliquer un robot qui dévale une falaise ou un patient exposé à trop de rayonnement).
ligos

2

Cela peut sembler inutile, mais lorsqu'un processus est démarré, des paramètres peuvent être transmis qui définissent le processus pour qu'il s'exécute à différents niveaux de priorité. Le Gestionnaire des tâches affiche cela comme un paramètre facultatif car il s'agit d'une option qui peut être définie pour le processus par le logiciel qui a lancé son exécution. La plupart des logiciels s'exécutent sous un niveau "Normal", mais parfois vous pouvez en voir quelques-uns qui s'exécutent à un niveau inférieur par défaut. Je n'ai jamais vu de logiciel qui démarre dans un état supérieur à la normale.

Il convient également de mentionner qu'il existe un cas où un processus peut s'exécuter au niveau de priorité le plus élevé et il ne semble pas affecter considérablement les performances de votre système. Par exemple, si un processus est démarré et qu'il est affecté à travailler sur seulement 1, disons, de 8 cœurs CPU, définir la priorité des processus sur "temps réel" signifierait qu'il consommerait un processeur, laissant 7 à être utilisé par le OS et tout autre logiciel. Dans ce cas, l'exécution en temps réel pourrait n'avoir presque aucun effet sur le système, mais donner une bosse de performances raisonnable au processus de haute priorité.

Je ne recommanderais presque jamais de configurer manuellement un processus pour qu'il s'exécute en "temps réel" à partir de System Manager. Cela est dû au fait que vous modifiez les paramètres d'exécution d'un processus qui peut avoir été conçu pour fonctionner sous un état d'exécution spécifique. La modification de la priorité d'exécution peut, dans certains cas, faire planter l'application et s'il s'agit d'une opération d'écriture de données, peut-être corrompre vos données!

Cependant, dans certains cas, l'utilisation d'un paramètre de priorité d'exécution maximale pour un processus peut être la bonne chose à faire, mais même dans ce cas, ces paramètres de priorité doivent être définis par l'application de contrôle et non par l'utilisateur final via une boîte de dialogue de gestion du système.

Personnellement, je recommanderais de ne JAMAIS changer une priorité de tâche, sauf si vous ne vous souciez pas vraiment si elle se bloque et si la tâche n'est PAS COMPLÈTEMENT critique. Si la documentation du logiciel indique explicitement que vous pouvez élever le processus pour qu'il s'exécute à une vitesse plus rapide afin d'accélérer une très grande charge de travail du processeur, cela serait également acceptable, cependant, je serais un peu sceptique si un mécanisme de dans l'application n'est pas fourni.

À titre d'anecdote personnelle, il n'y a qu'un seul processus que je change occasionnellement manuellement: les applications de compression logicielle. Je n'ai pas eu à décompresser un fichier massif depuis longtemps, mais j'ai constaté que si je suis pressé ( ahem étant impatient) je peux augmenter la priorité du processus et obtenir une augmentation modérée des performances. Étant donné que ces applications démarrent une tâche de travail, puis se ferment lorsqu'elles sont terminées, je n'ai pas à m'inquiéter de la suppression des paramètres de mon processeur, car lorsque l'application a fini d'extraire les données, elle s'arrêtera d'elle-même. C'est la seule fois où j'ai trouvé personnellement utile de contrôler la vitesse du processeur via la gestion du système.


1
En tant que programmeur, je ne peux pas imaginer une situation où donner plus de ressources à un programme le ferait planter
TheLQ

En tant que programmeur, oui, mais définir un processus pour qu'il s'exécute à un niveau spécifique peut entraîner des problèmes, surtout si le logiciel a été écrit (peut-être même mal) pour s'exécuter simultanément avec d'autres processus. Mes suggestions viennent à la fois de l'expérience et de la compréhension que tous les utilisateurs ne sont pas des développeurs. La définition des priorités des processus en cours d'exécution que vous n'avez pas développés peut certainement provoquer un comportement inattendu. Je ne veux effrayer personne, cependant, je ne veux pas non plus encourager d'autres utilisateurs à jouer avec les paramètres du processus s'il y a une chance que leurs modifications soient dommageables.
RLH

0

J'utilise la priorité en temps réel pour accélérer les jeux sur mon ordinateur portable non dédié aux jeux. Je ne me soucie pas du processus d'arrière-plan lorsque je suis en jeu et j'obtiens une expérience beaucoup plus agréable d'allouer ma puissance de traitement de cette façon.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.