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