usuario - Cambiar la prioridad del proceso actual en C
ver procesos en ejecucion linux (3)
@ allain
¿Puedes disminuir la prioridad de tu propio proceso sin ser superusuario?
Por supuesto. Tenga en cuenta, sin embargo, que esta es una calle de sentido único. Ni siquiera puedes volver al punto de partida. E incluso pequeñas reducciones en la prioridad pueden tener efectos sorprendentemente grandes en el tiempo de ejecución cuando hay una carga significativa en el sistema.
En Windows puedo hacer:
HANDLE hCurrentProcess = GetCurrentProcess();
SetPriorityClass(hCurrentProcess, ABOVE_NORMAL_PRIORITY_CLASS);
¿Cómo puedo hacer lo mismo en * nix?
Tratar:
#include <sys/time.h>
#include <sys/resource.h>
int main(){
setpriority(PRIO_PROCESS, 0, -20);
}
Tenga en cuenta que debe estar ejecutándose como superusuario para que esto funcione.
(para obtener más información, escriba ''man setpriority'' en un aviso).
Si haces algo como esto bajo Unix, quieres (como root) modificar tu tarea y establecer el bit s. Luego puede cambiar quién está ejecutando, cuál es su prioridad, la programación de sus hilos, etc. en tiempo de ejecución.
Es grandioso siempre y cuando no estés escribiendo una aplicación masivamente multiproceso con un error para que tomes una caja de CPU de 48 y nadie pueda cerrarte porque tienes cada CPU girando al 100% con todo el hilo configurado en SHED_FIFO ( se ejecuta hasta su finalización) ejecutándose como root.
Nah ... No estaría hablando por experiencia ...