77 votes

Qu'est-ce que le "temps réel" configuration pour les, pour les processus de priorité?

De ce que j'ai lu dans le passé, vous êtes encouragés à ne pas modifier la priorité de vos applications windows par programme, et si vous n'avez jamais de temps réel. Quelqu'un pourrait-il clair jusqu'à ce que le processus en temps réel réglage de la priorité n'plutôt Élevé, et au-Dessus de la Normale?

84voto

Larry Osterman Points 12713

Une priorité en temps réel thread ne peut jamais être devancé par les interruptions du timer et fonctionne à une priorité plus élevée que n'importe quel autre thread dans le système. En tant que tel un CPU en temps réel thread de priorité peut totalement tuyau d'une machine.

La création en temps réel de threads de priorité exige un privilège (SeIncreaseBasePriorityPrivilege) de sorte qu'il ne peut être fait par les utilisateurs administratifs.

Pour Vista et au-delà, une option pour les applications qui ne nécessitent qu'ils s'exécutent en temps réel des priorités est d'utiliser le Service Planificateur de classes Multimédias (MMCSS) et de le laisser gérer votre threads de priorité. Le MMCSS empêchera votre demande d'utiliser trop de temps CPU de sorte que vous n'avez pas à vous soucier de tank de la machine.

26voto

Michael Burr Points 181287

Simplement, la priorité "Temps Réel" de la classe est supérieur à "Élevé" de la classe de priorité. Je ne pense pas qu'il ya beaucoup plus à lui que cela. Oh oui - vous devez avoir de l' SeIncreaseBasePriorityPrivilege de mettre un fil dans le Temps Réel de la classe.

Windows va parfois stimuler la priorité d'un thread pour diverses raisons, mais il n'augmente pas la priorité d'un thread dans une autre classe de priorité. Il a aussi, n'augmente pas la priorité des threads dans le temps réel de la classe de priorité. Si un thread de priorité Élevée de ne pas obtenir de toute automatique de coup de fouet temporaire dans le Temps Réel de la classe de priorité.

Russinovich "à l'Intérieur de Windows" chapitre sur la façon dont Windows gère les priorités est une excellente ressource pour apprendre comment cela fonctionne:

Notez qu'il n'y a absolument pas de problème avec un fil ayant une priorité en temps Réel sur un système Windows - ils ne sont pas nécessairement pour les processus en cours d'exécution sur dedicatd machines. J'imagine que les pilotes multimédia et/ou de processus pourrait avoir besoin de fils avec une priorité en temps réel. Cependant, ce fil ne doit pas exiger beaucoup de ressources CPU, il doit bloquer la plupart du temps dans l'ordre normal des événements système pour obtenir le traitement.

17voto

Eric Petroelje Points 40734

Il serait la meilleure définition des priorités, et habituellement seulement être utilisé sur la boîte qui a été dédié à l'exécution de ce programme. C'est en fait assez haut qu'elle pourrait provoquer la famine du clavier et de la souris fils, à mesure qu'ils deviennent insensibles.

Donc, fondamentalement, si vous devez vous demander, ne pas l'utiliser :)

2voto

9090 Points 680

En temps réel est la priorité la plus haute classe disponible pour un processus. Par conséquent, il est différent de "Haut" en ce que c'est un pas de plus, et "au-Dessus de la Normale" dans la mesure où il s'agit de deux étapes plus.

De même, en temps réel est également une priorité de thread niveau. Chaque thread de priorité est distinct.

La priorité du processus de classe augmente ou diminue l'ensemble des priorités de thread dans le processus et est donc considéré comme la base de la priorité".

Ainsi, un processus est un:

  1. Processus de Base classe de priorité.
  2. Chaque thread priorités, les décalages de la priorité de base de la classe.

Depuis le temps réel est censé être réservé pour les applications qui doivent absolument devancer les autres processus en cours d'exécution, il existe un privilège de sécurité pour protéger contre le hasard de l'utiliser. Cela est défini par la politique de sécurité.

Dans NT6+ (Vista+), l'utilisation de la Vista Planificateur de classes Multimédias est la bonne façon de réaliser les opérations en temps réel dans ce qui n'est pas un système d'exploitation temps réel. Il fonctionne, pour la plupart, n'est cependant pas parfait, car l'OS n'est pas conçu pour les opérations en temps réel.

Microsoft considère cette priorité très dangereux, à juste titre. Aucune application ne doit l'utiliser, sauf dans de très spécialisés circonstances, et même alors, essayez de limiter son utilisation à des besoins temporaires.

1voto

wizkid18 Points 11

Une fois que Windows apprend un programme utilise plus élevé que la normale priorité il me semble qu'il limite la priorité sur le processus.

La définition de la priorité de veille en temps réel ne change PAS l'utilisation de l'UC.

J'ai trouvé sur Mon multi-processeur AMD CPU que si je baisse l'un des Processeurs ot comme la DERNIÈRE, la l'utilisation de l'UC MAX et le dernier PROCESSEUR reste inactif. La vitesse du processeur augmente à 75% sur mon Quad AMD.

Utilisez le Gestionnaire des Tâches->sélectionnez le processus->Clic Droit sur le processus->Sélectionner->Définir l'Affinité Cliquez sur tous, mais le dernier processeur. L'utilisation de l'UC va augmenter au MAX sur les autres processeurs et un Cadre en compte si le traitement de la vidéo va augmenter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X