Nice (Unix)

nice è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che esegue un altro comando modificando il suo valore di nice.

Il valore di nice è un attributo numerico di ciascun processo dei sistemi Unix e Unix-like che è usato dallo scheduler per stabilire quanto tempo di CPU dedicare all'esecuzione del processo. A parità di priorità e di politica di schedulazione, i processi che hanno valori di nice maggiori ottengono in proporzione meno tempo di CPU rispetto a processi che hanno valori di nice minori[2], e quindi la loro esecuzione procede più lentamente, favorendo gli altri processi. L'idea generale è che un utente si comporti in maniera cortese (la traduzione dalla lingua inglese del termine nice è appunto cortese, simpatico) nei confronti degli altri utenti quando avvia elaborazioni particolarmente lunghe ed intense, avviandole con un valore di nice elevato in modo da non rallentare eccessivamente l'esecuzione dei processi degli altri utenti.

Facciamo un esempio su un sistema Linux Mint 17.2 Rafaela consultando il Monitor di Sistema in cui la quasi totalità dei programmi ha il nice a 0:

  • BOINC è un programma di calcolo distribuito e non deve interferire col lavoro del calcolatore nonostante utilizzi quasi il 100% delle CPU:Ha il nice settato a 10
  • Per non sentire a scatti e vedere un filmato fuori sincrono il manager dell'audio PulseAudio deve avere una priorità altissima nonostante usi meno dell'1% di CPU ed ha il nice a -11

nice è anche il nome di una chiamata di sistema definita dallo standard POSIX[3] che modifica il valore di nice del processo che la invoca. Di fatto il comando nice opera invocando l'omonima chiamata di sistema.

Per diminuire il valore di nice è necessario disporre dei privilegi dell'amministratore (root), mentre ciò non è necessario per aumentarlo. Tipicamente è possibile diminuire il valore di nice fino a 20 unità rispetto al valore predefinito, o aumentarlo fino a 19 unità: è possibile specificare scostamenti più ampi, ma essi sono automaticamente ricondotti entro i limiti sopra citati.

  1. ^ (EN) nice (utilities), in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 12-02-2009.
  2. ^ (EN) Nice Value, in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 16-02-2009.
  3. ^ (EN) nice (functions), in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 12-02-2009.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by razib.in