Guida ai comandi da terminale: differenze tra le versioni

Nessun oggetto della modifica
Riga 774: Riga 774:
* Sezione 7 convenzioni, pacchetti macro, etc. (es.: nroff, ascii)
* Sezione 7 convenzioni, pacchetti macro, etc. (es.: nroff, ascii)
* Sezione 8 amministrazione di sistema (soltanto l'introduzione)
* Sezione 8 amministrazione di sistema (soltanto l'introduzione)
==Modificare la priorità di un processo==
<code>'''nice'''</code> è 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''.<br/>
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, 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.<br>/
<code>nice</code> è anche il nome di una chiamata di sistema definita dallo standard POSIX che modifica il valore di ''nice'' del processo che la invoca. Di fatto il comando <code>nice</code> 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.
===Uso===
La sintassi generale di nice è la seguente:
<pre>
nice [opzioni] [--] comando [arg1 [arg2 …] ]
</pre>
Il parametro <code>''comando''</code> indica il comando da eseguire, ed i parametri facoltativi <code>''arg''</code> i suoi parametri.<br/>
Il doppio trattino <code>--</code> (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.<br/>
Tra le opzioni significative vi sono:
* <code>-n delta</code>: somma algebricamente il valore ''delta'' al valore di ''nice'', in modo da aumentarlo o diminuirlo; ''delta'' può essere negativo, in modo da privilegiare il programma rispetto agli altri, ma in tal caso occorre disporre dei privilegi dell'amministratore (root). Se l'opzione <code>-n</code> non è specificata, il comportamento predefinito prevede di aggiungere 10 al valore di ''nice'';
===Esempi===
Avvia parallelamente due copie del programma <code>factor</code>, ciascuna delle quali calcola i fattori primi del numero 4611686018427387903, misurando il tempo di esecuzione tramite il comando <code>time</code>: la prima copia viene eseguita con un valore di ''nice'' elevato (aumentato di 20 unità rispetto al normale), mentre la seconda usa il valore di ''nice'' predefinito. Entrambe le copie impiegano lo stesso tempo di CPU per effettuare il calcolo, ma la prima copia è svantaggiata e (su un sistema con una sola CPU) completa il suo calcolo ben dopo la seconda:
<pre>
time nice -n 20 factor 4611686018427387903 &
time factor 4611686018427387903 &
</pre>


=Gestione del File System=
=Gestione del File System=