prof. Nunzio Brugaletta |
atapSO |
EnneBi –
Computer Science
Avanti – Indietro – Inizio
Quando sono in esecuzione più processi, il sistema cerca di distribuire il tempo macchina in modo equo fra i processi stessi. Può essere tuttavia necessario effettuare degli aggiustamenti per esempio facendo schedulare alcuni processi, che possono attendere, a quando il sistema è inattivo e lasciando più tempo a disposizione agli altri processi quando questi ne hanno necessità. La soluzione al problema è intervenire nel fattore nice del calcolo della priorità. In assenza di questi aggiustamenti il sistema tratta, per esempio, tutti i processi utente allo stesso modo.
Il fattore nice, posto al valore 0 dal sistema, può essere variato e portato in un range da -20 (priorità massima) a +20 (priorità minima). L'utente con diritti standard può modificare il nice di un fattore positivo, quindi diminuire la priorità, e solo dei processi che lui stesso ha avviato. L'utente root può anche aumentare la priorità di qualsiasi processo o dei processi di qualsiasi utente.
$ whoami tux $ renice -5 -u tux renice: 1000: setpriority: Permesso negato $ renice +1 -u tux 1000: vecchia priorità -5, nuova priorità 1 $ sudo renice -5 -u tux 1000: vecchia priorità 1, nuova priorità -5
Nell'esempio proposto tux prova ad aumentare la priorità dei propri processi ma l'operazione non viene consentita: può solo diminuirla (valore +1). Il comando ha effetto solo se si esegue con privilegi di root.
L'utente con diritti normali può lanciare un processo con priorità inferiore.
$ nice -10 emacs& [1] 2239 $ nice -5
Il primo comando aumenta il nice (il carattere – davanti al valore 10 indica la presenza del parametro) di un processo avviato in background e associato al comando emacs. Si può anche visualizzare la priorità dei propri processi con il comando nice senza alcun parametro.
http://ennebi.solira.org |
ennebi@solira.org |