Pregunta

Por lo que he leído en el pasado, se le anima a no cambiar la prioridad de las aplicaciones de Windows mediante programación, y si lo hace, nunca se debe cambiar a 'tiempo real'.

Lo que hace el proceso de establecimiento de prioridades 'en tiempo real' hacer, en comparación con el estilo '', y 'encima de lo normal'?  introducir descripción de la imagen aquí introducir descripción de la imagen aquí

¿Fue útil?

Solución

Un hilo prioridad de tiempo real nunca puede ser vaciado anteriormente por interrupciones del temporizador y se ejecuta con una prioridad más alta que cualquier otro hilo en el sistema. Como unido CPU en tiempo real hilo tal prioridad puede arruinar totalmente una máquina.

Creación de hilos de prioridad de tiempo real requiere un privilegio ( SeIncreaseBasePriorityPrivilege ) por lo que sólo se puede hacer por los usuarios administrativos.

Para Vista y más allá, una opción para aplicaciones que requieren que se ejecuten en tiempo real las prioridades es utilizar el Multimedia Service Class Scheduler (MMCSS) y se deja manejar su prioridad hilos. El MMCSS evitará que su aplicación desde el uso de demasiado tiempo de CPU por lo que no tiene que preocuparse de llenar el tanque de la máquina.

Otros consejos

Simplemente, la clase de prioridad "Tiempo real" es más alta que la clase de prioridad "alta". Creo que no hay mucho más que eso. Oh, sí - usted tiene que tener la SeIncreaseBasePriorityPrivilege poner un hilo en la clase Tiempo real

.

Windows a veces aumentar la prioridad de un hilo, por diversas razones, pero no va a aumentar la prioridad de un hilo en otra clase de prioridad. Tampoco aumentará la prioridad de las discusiones en la clase de prioridad en tiempo real. Así que un hilo de alta prioridad no obtendrá ningún impulso temporal automática en la clase de prioridad en tiempo real.

capítulo "en Windows" de Russinovich sobre la forma en que Windows maneja prioridades es un gran recurso para aprender cómo funciona esto:

Tenga en cuenta que no hay absolutamente ningún problema con un hilo que tiene una prioridad en tiempo real en un sistema normal de Windows - que no son necesariamente los procesos que se ejecutan en máquinas especiales dedicatd. Me imagino que los conductores y / o procesos multimedia puede ser que necesite hilos con una prioridad en tiempo real. Sin embargo, un hilo de este tipo no debería requerir mucha CPU -. Debe estar bloqueando la mayor parte del tiempo con el fin de eventos normales del sistema para obtener el procesamiento

Sería la configuración de prioridad más alta disponible, y que por lo general sólo se utiliza en el cuadro que se dedica a ejecutar ese programa específico. En realidad es lo suficientemente alta que podría causar la inanición de los hilos de teclado y ratón en la medida en que dejan de responder.

Así que, básicamente, si usted tiene que pedir, no lo use:)

En tiempo real es la más alta prioridad class a disposición de un proceso. Por lo tanto, es diferente de 'Alto' en que se trata de un paso más, y 'encima de lo normal' en que se trata de dos pasos más.

Del mismo modo, en tiempo real es también un nivel de prioridad hilo.

La prioridad del proceso de class aumenta o disminuye todas las prioridades de los hilos efectivos en el proceso y por lo tanto se considera la 'prioridad de base'.

Por lo tanto, un proceso tiene una:

  1. proceso de Base clase de prioridad .
  2. prioridades hilo individual , las compensaciones de la clase de prioridad base.

Dado que en tiempo real se supone que debe ser reservada para las aplicaciones que es absolutamente necesario suscripción preferente sobre otros procesos en ejecución, no es un privilegio especial de seguridad para proteger contra el uso irregular de la misma. Esto se define por la política de seguridad.

En TE6 + (Vista +), el uso de la clase de programador multimedia Vista es la forma correcta para lograr operaciones en tiempo real en lo que es no un sistema operativo en tiempo real. Funciona, en su mayor parte, aunque no es perfecto ya que el sistema operativo no está diseñado para operaciones en tiempo real.

Microsoft considera esta prioridad muy peligroso, con razón. No se debe utilizar la aplicación, excepto en circunstancias muy especiales, e incluso entonces tratar de limitar su uso a las necesidades temporales.

Una vez que Windows se entera de un programa utiliza más alta que la prioridad normal parece que limita la prioridad en el proceso.

Configuración de la prioridad desde el ralentí hasta TIEMPO REAL NO cambia el uso de la CPU.

he encontrado en mi multi-procesador AMD CPU que si se me cae una de las CPUs ot como el pasado, el uso de la CPU máximo hacia fuera y el último CPU permanece inactivo. La velocidad del procesador aumenta un 75% en mi Quad AMD.

Uso de tareas Manager-> seleccione proceso-> clic derecho sobre el proceso-> Seleccionar-> Establecer afinidad Haga clic en todos excepto el último procesador. El uso de la CPU se incrementará a la MAX en los restantes procesadores y los recuentos marco si el procesamiento de vídeo se incrementará.

Básicamente es más alto / mayor en todo lo demás. Un teclado es menos prioritaria que el proceso en tiempo real. Esto significa que el proceso se tendrá en cuenta más rápido que el teclado y si no puede manejar eso, entonces se hace más lenta su teclado.

Al igual que todas las demás respuestas en tiempo real antes de que el programa da la clase de prioridad máxima. Nada se procesa hasta que el programa ha sido procesado.
En mi máquina Pentium 4 me puse a Minecraft en tiempo real una gran cantidad, ya que aumenta el rendimiento del juego mucho, y el sistema parece completamente estable. por lo que en tiempo real no es tan malo como parece, solo si tiene un multi-núcleo establece la afinidad de un programa para un núcleo o núcleos (no todos ellos, sólo para que todo lo demás sea capaz de ejecutar en caso de que el tiempo real específica programas de ajuste queda enganchada) y establecer la prioridad de tiempo real.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top