NICE

Voer programma uit met aangepaste prioriteiten.

We noemen Linux een Multi-tasking besturingssysteem, maar dit is niet helemaal correct 1; Linux gebruikt een zogenaamde Kernel Scheduler die bepaald welk proces het meest geschikt is om als volgende uitgevoerd te worden. De kernel wijst dus processor-tijd toe aan processen die wachten op CPU tijd om uitgevoerd te worden. Processen die niet klaar zijn, zoals bijvoorbeeld een programma dat wacht tot je op de OK knop drukt zullen ook niet in de wachtrij worden opgenomen.

Hoe beslist de Kernel welk proces de meeste prioriteit heeft? 2 Hiervoor gebruikt de Linux Kernel 2 systemen.
  1. de Nice of niceness van een proces.
  2. de Real-time priority van een proces.

In dit artikel bespreken we enkel nice systeem.

Hier verschijnen nice en renice op het toneel. Met nice start je een programma op met een bepaalde Niceness en met renice kun je deze aanpassen.

De niceness kan ingesteld worden tussen -20 (de hoogste prioriteit) en 19 (de laagste prioriteit), waarbij -20 het beste is voor het proces maar het minst goede voor de andere processen. Je kunt dus zeggen dat -20 niet nice (vriendelijk) en 19 heel vriendelijk.
Wil je kijken welke niceness een bepaald proces heeft dan kun je dat bekijken met ps zoals $ $ ps -eo pid,ppid,ni,comm
Figuur 1. $ ps -eo pid,ppid,ni,comm
$ ps -eo pid,ppid,ni,comm

De systaxis van NICE is heel simpel: nice -n xx PROGRAMMA waar xx een waarde is tussen -20 en 19.

De standaard nice waarde is 03 of renice, en kan oa. weergegeven worden in top en htop. of met ps zoals hierboven.

toch moeten we enkele dingen in acht nemen:
  1. Start je nice zonder parameter dan zal de nice waarde van 10 toegewezen worden.
  2. Enkel root kan een programma opstarten met een verhoogde prioriteit.
  3. gewone gebruikers kunnen enkel programma's starten met een verlaagde prioriteit.

Wil je de "niceness" van een reeds actief proces aanpassen dan gebruik je renice

Meer informatie over wat je allemaal kan met nano is te vinden in de manpages of de infopages.

1 Multi-Core en Multi-Thread CPU's even buiten beschouwing gelaten.
2 Als er processen zijn met dezelfde prioriteit dan worden ze simpelweg in volgorde uitgevoerd.
3 als je het programma opstart zonder nice