Her sürecin bir mutlak önceliği vardır ve bir sayı ile ifade edilir. Daha yüksek sayı daha yüksek mutlak öncelik demektir.
Geçmişteki bazı sistemlerde ve günümüzde çoğu sistemde, tüm süreçlerin mutlak önceliği 0'dır ve bu bölümün konusu dışındadır. Bu durumla ilgili olarak,
Geleneksel Zamanlama bölümüne bakınız. Mutlak öncelikler, belli süreçlerin dış olaylara yanıt vermesinin hayati önemde olduğu gerçek zamanlı sistemler için tasarlanmıştır. Bu sistemlerde çalışmak
isteyen süreçler işlemciyi tutarken çalışması
gereken süreçleri bekletmemesi amaçlanmıştır.
İşlemciyi herhangi bir anda kullanmaya çalışacak iki süreçten daha yüksek önceliği olan onu alır. Bunlardan biri işlemciyi zaten kullanmaktaysa ve önceliği düşükse önceliği yüksek olan işlemciyi yine alacaktır (yani, zamanlama ayrıcalıklıdır). Şüphesiz, burada bahsettiğimiz süreçler zaten başlatılmış yani çalışabilir olan ya da o an komutlarını çalıştırmaya hazır olmak anlamında "çalışmaya hazır" süreçlerdir. Bir süreç G/Ç işlemi gibi bir işlem nedeniyle beklemedeyse, onun önceliği konumuzun dışındadır.
| Not |
---|
"çalışabilir olmak" ile "çalışmaya hazır olmak" aynı anlamda kullanılmıştır. |
İki süreç de çalışabilir durumdaysa ya da çalışmaya hazırsa ve ikisinin de mutlak önceliği aynıysa, bu daha ilginçtir. Bu durumda işlemciyi hangisinin alacağını zamanlama kuralları belirler. Eğer süreçlerin mutlak öncelikleri 0 ise,
Geleneksel Zamanlama bölümünde anlatılan geleneksel zamanlama kurallarına göre bu saptanır. Aksi takdirde
Anlık Zamanlama bölümünde anlatılan kurallar uygulanır..
Normalde 0'ın üstünde bir mutlak önceliği, işlemciyi etkisiz bırakmayacağından emin olduğunuz bir sürece verirsiniz. Böyle süreçler kısa bir işlemci kullanımından sonra beklemeye geçmek ya da sonlanmak üzere tasarlanır.
Bir süreç, kendini başlatan süreç ile aynı mutlak öncelikle oluşturulur. Bu durumu değiştirebilen işlevler
Temel Zamanlama İşlevleri bölümünde açıklanmıştır.
Sadece ayrıcalıklı bir süreç kendi mutlak önceliğini 0'dan farklı bir değere ayarlayabilir. Sadece ayrıcalıklı bir süreç ya da hedef sürecin sahibi mutlak önceliği değiştirebilir.
POSIX, gerçekzamanlı zamanlama kuralları ile kullanılan mutlak öncelik değerlerinin 32'den başlayan ve ardışık sıralanan değerler olmasını gerektirir. Linux'ta 1 ile 99 arasındadır. Taşınabilirlik açısından, sched_get_priority_max ve sched_set_priority_min işlevleri belli bir sistem üzerinde geçerli aralığın ne olduğunu söyler.