Kısa cevap
PR öncelik seviyesidir. PR ne kadar düşük olursa işlem önceliği de o kadar yüksek olur.
PR aşağıdaki gibi hesaplanır:
- normal süreçler için: PR = 20 + NI (NI iyidir ve -20 ila 19 arasındadır)
- Gerçek zamanlı işlemler için: PR = - 1 - real_time_priority
(real_time_priority 1 ile 99 arasında değişmektedir)
Uzun cevap
Normal ve gerçek zamanlı olmak üzere 2 tür işlem vardır
Normal olanlar için (ve sadece olanlar için), aşağıdaki gibi güzel uygulanır:
Güzel
"Nezaket" ölçeği -20'den 19'a çıkarken, -20 en yüksek öncelik ve 19 en düşük önceliktir. Öncelik seviyesi aşağıdaki gibi hesaplanır:
PR = 20 + NI
NI güzel seviye ve PR ise öncelik seviyesidir. Gördüğümüz gibi, -20 aslında 0 ile eşlenirken, 19 39 ile eşleşiyor.
Varsayılan olarak, bir program güzel değeri 0'dır, ancak kök kullanıcının aşağıdaki komutu kullanarak belirli bir güzel değere sahip programları başlatması mümkündür:
nice -n <nice_value> ./myProgram
Gerçek zaman
Daha da ileri gidebiliriz. Güzel öncelik aslında kullanıcı programları için kullanılır. UNIX / LINUX genel önceliğinin 140 değer aralığına sahip olmasına rağmen, hoş değer, işlemin aralığın son kısmıyla eşleşmesini sağlar (100 ile 139 arasında). Bu denklem, 0 ila 99 arasında, ulaşılamayan negatif bir PR seviyesine (-100 ila -1) karşılık gelecek şekilde bırakır. Bu değerlere ulaşabilmek için işlem “gerçek zamanlı” olarak belirtilmelidir.
LINUX ortamında aşağıdaki komutla görüntülenebilecek 5 programlama politikası vardır:
chrt -m
Aşağıdaki liste gösterilecektir:
1. SCHED_OTHER the standard round-robin time-sharing policy
2. SCHED_BATCH for "batch" style execution of processes
3. SCHED_IDLE for running very low priority background jobs.
4. SCHED_FIFO a first-in, first-out policy
5. SCHED_RR a round-robin policy
Çizelgeleme işlemleri, normal çizelgeleme politikaları (1 ila 3) ve gerçek zamanlı çizelgeleme politikaları (4 ve 5) olmak üzere 2 gruba ayrılabilir. Gerçek zamanlı süreçler her zaman normal süreçlere göre önceliğe sahip olacaktır. Aşağıdaki komut kullanılarak gerçek zamanlı bir işlem çağrılabilir (örnek, SCHED_RR politikasını nasıl bildireceğinizdir):
chrt --rr <priority between 1-99> ./myProgram
Gerçek zamanlı bir işlem için PR değerini elde etmek için aşağıdaki denklem uygulanır:
PR = -1 - rt_prior
Rt_prior, 1 ile 99 arasında önceliğe karşılık gelir. Bu nedenle, diğer işlemlere göre daha yüksek önceliğe sahip olan süreç, 99 ile adlandırılan işlem olacaktır.
Gerçek zamanlı işlemler için nezaketin kullanılmadığına dikkat etmek önemlidir.
Bir işlemin geçerli "niceliği" ve PR değerini görmek için aşağıdaki komut çalıştırılabilir:
top
Aşağıdaki çıktıyı gösterir:
Şekilde PR ve NI değerleri görüntülenir. Gerçek zaman değerine karşılık gelen PR -51 değerine sahip süreci not etmek iyidir. PR değeri "rt" olarak belirtilen bazı işlemler de vardır. Bu değer aslında -100 değerinde bir PR değerine karşılık gelir.
niceness
negatif bir öncelik vermek için kullanılabilir, böyleceniceness
yüksek öncelikli görevlerin önüne geçmek için görev kullanılabilir mi? (yani,nice
diğer erişim kaynaklarının olması ve izin verilmesi mi? Yoksa bu sadece kafamı karıştırdı mı?