prof. Nunzio Brugaletta

atapSO

EnneBi – Computer Science
AvantiIndietroInizio




Correzione priorità processi ed utenti

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.




AvantiIndietro - Inizio

http://ennebi.solira.org

ennebi@solira.org