Örnekle Round Robin Planlama Algoritması
⚡ Akıllı Özet
Dairesel planlama (Round-Robin Scheduling), her hazır işlemin döngüsel bir kuyrukta sabit bir zaman dilimi boyunca çalıştığı, böylece çoklu görev yürütme için adil ve kaynak yetersizliğinden arınmış bir çalışma sağlayan en eski ve en basit öncelikli CPU algoritmasıdır.
Round-Robin Planlama Nedir?
Bu algoritmanın adı, her kişinin sırayla bir şeyden eşit pay aldığı yuvarlak-robin ilkesinden gelir. Çoğunlukla çoklu görev için kullanılan en eski, en basit planlama algoritmasıdır.
Dairesel sıralama yönteminde, her hazır görev sınırlı bir zaman dilimi için döngüsel bir kuyrukta sırayla çalışır. Bu algoritma ayrıca süreçlerin açlık sorunu olmadan yürütülmesini de sağlar.
Round-Robin Planlamanın Özellikleri
Round-Robin Planlamanın önemli özellikleri şunlardır:
- Round robin, önleyici bir algoritmadır.
- CPU, zaman dilimi/zaman kuantumu olarak adlandırılan sabit bir zaman aralığından sonra bir sonraki işleme geçer.
- Önlenen işlem kuyruğun sonuna eklenir.
- Round robin, zamanlama mekanizmasıyla çalışan hibrit bir modeldir.
- Zaman dilimi, işlenmesi gereken belirli bir görev için ayrılan minimum süre olmalıdır. Ancak bu, işletim sistemine göre farklılık gösterebilir.
- Bu, belirli bir zaman sınırı içinde olaya yanıt veren gerçek zamanlı bir algoritmadır.
- Round robin, en eski, en adil ve en kolay algoritmalardan biridir.
- Geleneksel işletim sistemlerinde yaygın olarak kullanılan bir zamanlama yöntemidir.
Round-robin Planlama Örneği
Aşağıdaki üç süreci ele alalım:
| İşlem Kuyruğu | Patlama zamanı |
|---|---|
| P1 | 4 |
| P2 | 3 |
| P3 | 5 |
) 1 Adım Yürütme, patlama süresi 1 olan P4 işlemiyle başlar. Burada her işlem 2 saniye boyunca yürütülür. P2 ve P3 hala bekleme kuyruğunda.
) 2 Adım Zaman = 2'de, P1 kuyruğun sonuna eklenir ve P2 çalışmaya başlar.
) 3 Adım Zaman = 4'te, P2 önceliklendirilerek kuyruğun sonuna eklenir. P3 çalışmaya başlar.
) 4 Adım Zaman = 6'te, P3 önceliklendirilerek kuyruğun sonuna eklenir. P1 çalışmaya başlar.
) 5 Adım Zaman = 8'de, P1'in çalışma süresi 4'tür. Çalışmasını tamamlamıştır. P2 çalışmaya başlar.
) 6 Adım P2'nin çalışma süresi 3'tür. Zaten 2 aralık boyunca çalışmıştır. Zaman = 9'da P2'nin çalışması tamamlanır. Ardından, P3 çalışmaya başlar ve tamamlanana kadar devam eder.
) 7 Adım Yukarıdaki örnek için ortalama bekleme süresini hesaplayalım.
Wait time P1 = 0 + 4 = 4 P2 = 2 + 4 = 6 P3 = 4 + 3 = 7
Dairesel Planlamanın Avantajları
İşte dönüşümlü planlama yönteminin avantajları/faydaları:
- Açlık veya konvoy etkisi sorunlarıyla karşılaşmaz.
- Tüm işler adil bir CPU tahsisi alır.
- Öncelik gözetmeksizin tüm süreçleri ele alır.
- Çalıştırma kuyruğundaki toplam işlem sayısını biliyorsanız aynı işlem için en kötü durum yanıt süresini de varsayabilirsiniz.
- Bu zamanlama yöntemi, işlem süresine bağlı değildir. Bu nedenle sistemde kolayca uygulanabilir.
- Belirli bir süre boyunca bir işlem yürütüldüğünde, işlem iptal edilir ve belirli bir süre boyunca başka bir işlem yürütülür.
- İşletim sisteminin, önceliklendirilmiş işlemlerin durumlarını kaydetmek için bağlam değiştirme yöntemini kullanmasına olanak tanır.
- Ortalama yanıt süresi açısından en iyi performansı verir.
Round-robin Planlamanın Dezavantajları
Sıra tabanlı planlama yönteminin dezavantajları/olumsuz yönleri şunlardır:
- İşletim sisteminin dilimleme süresi düşükse, işlemci çıktısı da azalacaktır.
- Bu yöntem, bağlam değiştirme işlemine daha fazla zaman ayırır.
- Performansı büyük ölçüde zaman kuantumuna bağlıdır.
- Süreçler için öncelikler belirlenemez.
- Sıra tabanlı planlama, daha önemli görevlere özel bir öncelik tanımaz.
- Bu, kavrama yeteneğini azaltır.
- Daha düşük zaman dilimi, sistemde daha yüksek bağlam değiştirme yüküne neden olur.
- Bu sistemde doğru zaman dilimini bulmak oldukça zor bir iştir.
En Kötü Durumda Gecikme
Bu terim, tüm görevlerin yerine getirilmesi için harcanan maksimum süre için kullanılır.
- dt = Bir görevin listeye eklendiği algılama süresini ifade eder.
- st = Bir görevden diğerine geçiş süresini ifade eder.
- et = Görevin yürütülme süresini ifade eder.
formül:
Tworst = {(dti+ sti + eti ), + (dti+ sti + eti )2 +...+ (dti+ sti + eti )N., + (dti+ sti + eti + eti) N} + tISR
tISR = sum of all execution times








