Sto cercando di implementare un diverso sapore del comando 'nice' di unix in C. Ho visto le definizioni di chiamata a sistema piacevole() call e setpriority(). La chiamata nice() incrementa/decrementa solo la priorità del processo. Se voglio impostare la priorità di un processo su un valore particolare, non posso usare la chiamata nice()? Fondamentalmente, a parte il modo in cui la priorità viene modificata, c'è qualche differenza tra nice() e setpriority()?Differenza tra nice e setpriority in unix
risposta
È storico. nice()
è stato introdotto molto prima dello setpriority()
. Per compatibilità con le versioni precedenti, è stata mantenuta la funzione nice
.
nice
imposta la propria priorità (la gradevolezza del processo corrente). setpriority
consente di impostare la gradevolezza di altri processi (o gruppi di processi o utenti). Pensalo come renice
.
uomo 3p bello
int bello (int incr);
uomo 3p setpriority
int setpriority (int che, id_t che, int value);
sì ma posso realizzare con setpriority, lo stesso di quello che fare con bello, giusto? –
Sì, ma nice * only * influenza il processo corrente, in cui setpriority può influenzare (potenzialmente) qualsiasi processo. Questa è la differenza. –
@Chris la domanda sembra essere incentrata sul motivo per cui qualcuno dovrebbe usare bene quando setpriority/getpriority può essere utilizzato per replicare il comportamento –
nice()
modifica il valore piacevole del processo corrente rispetto al suo valore attuale, quindi il processo non ha bisogno di sapere del suo valore di partenza, si preoccupa solo che sia più bello per il sistema (es: processo avvia un bambino che fa qualche elaborazione in background, il bambino si impone di essere bello).
setpriority()
use case è l'utente che imposta esplicitamente valori validi per processi specifici.
- 1. Qual è la differenza tra "$ a" e $ a in unix
- 2. Qual è la differenza tra $ @ e $ * in UNIX?
- 3. Qual è la differenza tra read e pread in unix?
- 4. Unix: Qual è la differenza tra la fonte e l'esportazione?
- 5. Differenza tra python - getmtime() e getctime() nel sistema unix
- 6. qual è la differenza tra i comandi linux e unix?
- 7. Qual è la differenza tra Linux e Unix?
- 8. Nice-Level per pthreads?
- 9. Differenza tra `% in%` e `` ==
- 10. Differenza tra intercettori e decoratori
- 11. Come calcolare la differenza di orario tra timbri unix?
- 12. differenza tra __u8 e uint8_t
- 13. Differenza tra "" e "" in Python
- 14. Differenza tra $ @ e $! in perl
- 15. Differenza tra. e: in Lua
- 16. Parola chiave "nice" in C++?
- 17. Qual è la differenza tra un lavoro e un processo in Unix?
- 18. Thread di sfondo durante l'utilizzo di pthreads (nice, priority)
- 19. Differenza tra. e #
- 20. Differenza tra "o" e "||"
- 21. MySQL: Differenza tra ",", "e"
- 22. Differenza tra "e" e && in Ruby?
- 23. Python: ulimit e nice per subprocess.call/subprocess.Popen?
- 24. Differenza tra oggetto e *?
- 25. Differenza tra ". +" E ". +?"
- 26. Differenza tra | = e^= css
- 27. CMake: differenza tra $ {} e "$ {}"
- 28. La differenza tra $ * e $ @
- 29. Differenza tra $ # e $ {# @}
- 30. Differenza tra unwrapObservable e()
così setpriority è un progresso di bello .. grazie, tat cancellato il mio dubbio .. Mi chiedevo se la 'priorità' sollevata dal bello e setpriority era diverso (zoppo, lo so :)) poi mi attuare bello con setpriority () stesso. –
@AswinParthasarathy È simile alla cronologia di dup2. In entrambi i casi, la gente ha capito che erano necessari comportamenti più generali (o più specifici), che è il motivo per cui alcune funzioni sembrano avere un comportamento sovrapposizione –
@Aswin: in realtà ci sono altre priorità, che sono impostati tramite 'sched_setscheduler()'. – ninjalj