:::: MENU ::::
Posts tagged with: priority

Priority gozlemleme ve degistirme

chrt

chrt kullanarak realtime sistemlerde, pid degeri bilinen bir process’in scheduling policy’sini ve priority degerini degistirmek mumkundur.

chrt -p $PID_OF_THE_KTHREAD

Yukaridaki komut ile verilen pid’li process’in priority degerini ve policy bilgilerini almak mumkundur.

chrt -f -p $PRIO $PID_OF_THE_KTHREAD

-f ile FIFO policy’si kullanarak verilen pid’li processin priority degeri verilen degere cekilecektir.

htop

htop, top komutunun ozellestirilebilir ve daha fonksiyonel bir varyasyonudur.
htop ile processlerin priority degerleri gozlemlenebilir, processler parent-child iliskisiyle birlikte gozlemlenebilir, userspace ve kernelspace thread’ler detaylica incelenebilir.
Ayni zamanda htop kullanarak processlerin ve threadlerin nice degerleri degistirilebilinir, bu sayede priority degerlerinde de farklilasma gozlemlenecektir.
Platform boardlar uzerinde calisirken rootfs ile kisitli ozellikleri sunan ps alternatifi olarak kullandigimiz top, priority gosterme ve thread/process islemlerinde yetersiz kalmaktadir. Bu nedenle bir cok fonksiyonellik sunan htop kullanilabilinir.

nice degerinin priority uzerine etkisi

nice degeri kullanici tarafindan -20 ile 19 arasinda, process basina ayarlanan bir priority talebi olarak dusunulebilinir.
htop uzerinden de gozlemlenebilecegi gibi
nice(-20) -> prio(0)
nice(-10) -> prio(10)
nice(0) -> prio(20)
nice(10) -> prio(30)
nice(19) -> prio(39)
seklinde lineer bir eslesme mevcuttur. Burada priority degerinin dusuk olmasi (htop uzerinden gozlemlenen degerler icin) daha yuksek oncelikli oldugunu gostermektedir. Dolayisiyla nice value’da meydana gelen dusme, prioritynin anlamsal olarak artmasi, sayisal olarak azalmasi anlamina gelmektedir.

chrt ve htop priority degerlerinin karsilastirilmasi

bu sonuclar beaglebone black uzerinde kosturulan vanilla kernel’in varsayilan degerleridir.

  • IRQ’lar icin htop, priority degeri olarak (-51) vermektedir.
    chrt ise SCHED_FIFO policy ile birlikte 50 degerini donmektedir.
  • userspace process’ler icin htop, 20 default priority degerini gostermektedir. chrt’de ise SCHED_OTHER policy ile birlikte 0 degerini donmektedir.
  • sched_setscheduler ile policy degeri SCHED_FIFO olarak 80 priority ile ayarlanan processler, htop ile, (-81) priority degerini donmektedir. chrt ise SCHED_FIFO policy ile birlikte 80 degerini donmektedir.
  • cyclictest’in ./cyclictest -p 80 -t5 -n -q &  seklinde calistirilmasiyla, htop cyclictest icin priority 20 gosterirken, 5 adet thread icin bu deger (-81) olarak ayarlanmistir.
    chrt ise cyclictest’in kendisi icin (SCHED_OTHER, 0) seklinde cikti verirken, threadler icin (SCHED_FIFO, 80) ciktisini vermektedir.