¿De qué sirve la prioridad "en tiempo real" para un proceso?


12

En mi experiencia, configurar cualquier proceso en tiempo real hará que su computadora se desacelere a un ritmo muy lento. ¿De qué sirve esta configuración si hace que su computadora no se pueda usar?


2
Si tiene un procesador multiproceso o un sistema multiprocesador, puede establecer la afinidad para un solo núcleo. De esa manera, el resto del sistema seguirá respondiendo y podrá disfrutar del resto de los beneficios de un proceso en tiempo real. Por supuesto, esto solo funciona bien para procesos que solo necesitan un núcleo para funcionar.
AndrejaKo

Respuestas:


7

Exactamente lo que describe, a costa de ralentizar el resto de su computadora, ejecuta el proceso en tiempo real y le da una prioridad más alta que todo lo demás. Esto solo es necesario para aplicaciones de tiempo crítico, la mayoría de las personas no las ven en su vida diaria ...


Algunos programas muy comunes, como los servidores de sonido (PulseAudio y JACK como dos ejemplos de Linux), usan hilos de prioridad en tiempo real.
user1686

@grawity: JACK no es un servidor, sino solo un kit de desarrollo. Ambos son multiplataforma. Sin embargo, un buen punto es que el audio requiere prioridad en tiempo real, pero estaba hablando desde un punto de vista de Windows 7 donde estos procesos que especifique no obtienen prioridad en tiempo real. Windows tiene algo llamado Multimedia Class Scheduler para este tipo de procesos, aunque ...
Tamara Wijsman

¿Qué es jackd, entonces, si no es un servidor de sonido? (Por lo que sé hasta ahora, el trabajo tanto de PA y JACK de la misma forma en que proporcionan tanto un servidor de sonido y una biblioteca / kit para acceder a ella ...)
user1686

Eso no hace que el kit de repente se convierta en un servidor. Estamos hablando de procesos aquí, no de hilos ...
Tamara Wijsman

1
Otros ejemplos de aplicaciones en tiempo real son aplicaciones médicas y robótica controlada directamente. Cosas en las que 10 µs es la diferencia entre la operación correcta y la falla (donde la falla puede involucrar que un robot se salga de un acantilado o que un paciente esté expuesto a demasiada radiación).
ligos

2

Esto puede parecer innecesario, pero cuando se inicia un proceso, se pueden pasar parámetros que configuran el proceso para ejecutarse en varios niveles de prioridad. El Administrador de tareas muestra esto como una configuración opcional porque es una opción que el software que inició su ejecución puede configurar para el proceso. La mayoría del software se ejecuta en un nivel "Normal", pero ocasionalmente puede ver algunos que se ejecutan en un nivel inferior de forma predeterminada. Nunca he visto un software que se inicia en un estado superior a lo normal.

También vale la pena mencionar que hay un caso en el que un proceso puede ejecutarse con la configuración de mayor prioridad y no parece afectar en gran medida el rendimiento de su sistema. Por ejemplo, si se inicia un proceso y se le asigna trabajar solo en 1 de, por ejemplo, 8 núcleos de CPU, establecer la prioridad de los procesos en "tiempo real" significaría que consumiría un procesador, dejando 7 para ser utilizados por el SO y cualquier otro software. En este caso, la ejecución en tiempo real casi no podría afectar el sistema, pero daría un aumento de rendimiento razonable al proceso de alta prioridad.

Casi nunca recomendaría configurar manualmente un proceso para que se ejecute en "tiempo real" desde el Administrador del sistema. Esto se debe a que está cambiando la configuración de ejecución para un proceso que puede haber sido diseñado para operar bajo un estado de ejecución específico. Cambiar la prioridad de ejecución puede, en algunos casos, bloquear la aplicación y, si es una operación de escritura de datos, ¡posiblemente corromper sus datos!

Sin embargo, hay algunos casos en los que usar una configuración de prioridad de ejecución máxima para un proceso puede ser lo correcto, pero aun así, dicha configuración de prioridad debe establecerla la aplicación de control y no el usuario final a través de un diálogo de administración del sistema.

Yo, personalmente, recomendaría NUNCA cambiar una prioridad de tareas a menos que realmente no te importe si se bloquea y la tarea es COMPLETAMENTE no crítica. Si la documentación del software declara explícitamente que puede elevar el proceso para que se ejecute a una velocidad más rápida con el fin de acelerar una gran carga de trabajo del procesador, entonces eso también sería aceptable, sin embargo, sería un poco escéptico si un mecanismo de dentro de la aplicación no se proporciona.

Como anécdota personal, solo hay un proceso que ocasionalmente cambio manualmente: aplicaciones de compresión de software. No he tenido que descomprimir un archivo masivo en mucho tiempo, pero he descubierto que si tengo prisa ( ejem, impaciente) puedo aumentar la prioridad del proceso y obtener un aumento moderado en el rendimiento. Dado que estas aplicaciones comienzan una tarea de trabajo y luego se cierran cuando finalizan, no tengo que preocuparme por desarmar la configuración de mi procesador porque cuando la aplicación termine de extraer los datos, se detendrá por sí misma. Esta es la única vez que he encontrado personalmente útil controlar la velocidad del procesador a través de la administración del sistema.


1
Como programador no me es posible pensar en una situación en la que da un programa de más recursos que se estrellaría
TheLQ

Como programador, sí, pero configurar un proceso para que se ejecute a un nivel específico puede causar problemas, especialmente si el software fue escrito (posiblemente incluso deficientemente) para ejecutarse simultáneamente con otros procesos. Mis sugerencias provienen tanto de la experiencia como del entendimiento de que no todos los usuarios son desarrolladores. Establecer prioridades de procesos que se están ejecutando y que no ha desarrollado puede indudablemente provocar un comportamiento inesperado. No quiero asustar a nadie, sin embargo, tampoco quiero alentar a otros usuarios a meterse con la configuración del proceso si existe la posibilidad de que sus cambios puedan ser perjudiciales.
RLH

0

Uso la prioridad en tiempo real para acelerar los juegos en mi computadora portátil que no es para juegos. No me importa el proceso en segundo plano cuando estoy en el juego y obtengo una experiencia mucho más agradable al asignar mi poder de procesamiento de esta manera.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.