Estoy tratando de implementar un sabor diferente del 'bonito' comando de Unix en C. He visto las definiciones de nice() llamada al sistema y setpriority() llamada. La llamada nice() solo incrementa/disminuye la prioridad del proceso. Si quiero establecer la prioridad de un proceso en un valor particular, ¿no puedo usar la llamada nice()? Básicamente, aparte de cómo se modifica la prioridad, ¿hay alguna diferencia entre nice() y setpriority()?Diferencia entre nice y setpriority en Unix
Respuesta
Es histórico. nice()
se introdujo mucho antes de setpriority()
. Para compatibilidad con versiones anteriores, se mantuvo la función nice
.
nice
establece su propia prioridad (la amabilidad del proceso actual). setpriority
le permite establecer la bondad de otros procesos (o grupos de procesos o usuarios). Piénselo como renice
.
hombre 3p agradable
int agradable (int incr);
hombre 3p setpriority
int setpriority (int cuales, id_t que, int value);
Sí, pero puedo lograr con setpriority, lo mismo que lo que logro con nice, ¿verdad? –
Sí, pero nice * only * afecta el proceso actual, donde setpriority puede afectar (potencialmente) cualquier proceso. Esa es la diferencia. –
@Chris la pregunta parece estar enfocada en por qué alguien usaría nice cuando setpriority/getpriority se puede usar para replicar el comportamiento –
nice()
modifica el buen valor del proceso actual en relación con su buen valor actual, por lo que el proceso no necesita saber acerca de su buen valor inicial, solo le preocupa que sea más agradable para el sistema (por ejemplo: a proceso inicia a un niño que realiza un procesamiento en segundo plano, el niño se establece a sí mismo como bueno).
setpriority()
caso de uso es el usuario que establece explícitamente valores agradables para procesos específicos.
- 1. ¿Cuál es la diferencia entre $ @ y $ * en UNIX?
- 2. ¿Cuál es la diferencia entre Linux y Unix?
- 3. Nice-Level para pthreads?
- 4. php print_r nice table
- 5. Diferencia entre. y: en Lua
- 6. Diferencia entre == y === en JS
- 7. Diferencia entre '' y "" en Python
- 8. Diferencia entre '.' y "." en java
- 9. ¿Cuál es la diferencia entre async y nonblocking en unix socket?
- 10. Diferencia entre ID de grupo de proceso y ID de trabajo en UNIX
- 11. ¿Cuál es la diferencia entre un trabajo y un proceso en Unix?
- 12. MySQL: diferencia entre ', `,' y"
- 13. Diferencia entre. y #
- 14. Diferencia entre & y &
- 15. ¿Diferencia entre == y caso?
- 16. La diferencia entre $ * y $ @
- 17. Diferencia entre objeto y *?
- 18. VBA: Diferencia entre y y +
- 19. Diferencia entre "y" y "donde" en une
- 20. Diferencia entre "y" y && en Ruby?
- 21. sudo nohup nice <- ¿en qué orden?
- 22. Crear código en LaTeX look * nice *
- 23. Jquery Nice scroll no funciona
- 24. ¿cuál es la diferencia entre los comandos de Linux y Unix?
- 25. Diferencia entre -Wconversion entre gcc y g ++
- 26. Diferencia entre DataSource y DataSet
- 27. Diferencia entre SwingWorker y SwingUtilities.invokeLater
- 28. Diferencia entre java.exe y javaw.exe
- 29. Diferencia entre RASPHONE.exe y RASDIAL.exe
- 30. Diferencia entre jQuery.one() y jQuery.on()
Así que setpriority es un avance de nice ... gracias, tat despejó mi duda ... me preguntaba si la 'prioridad' referida por nice and setpriority era diferente (cojo, lo sé :)) luego implementaré nice con setpriority () sí mismo. –
@AswinParthasarathy Es similar a la historia de dup2. En ambos casos, las personas se dieron cuenta de que se necesitaban comportamientos más generales (o más específicos), por lo que algunas funciones parecen tener un comportamiento superpuesto –
@Aswin: en realidad hay otras prioridades, que se establecen a través de 'sched_setscheduler()'. – ninjalj