SCHEDULING ALGORİTMALARI (BİL461-ÖDEV3)
ÖDEV-3
SCHEDULING ALGORİTMALARI
Önceleri
geliştirilmiş olan ve belirli bir zamanda yalnızca bir işlemi
gerçekleştirebilen tek görevli işletim sistemleri yerine, günümüzde bunun
aksine aynı anda birden çok işlemi gerçekleştirebilen çok görevli işletim
sistemleri bulunmaktadır. Ancak işletim sistemlerinin sağladığı bu özellik için
düşünülmesi gereken belirli noktalar vardır. Aynı anda işlemler çalışmaya
kalktığında bu işlemlerin her biri için işlemcinin hangi sırayla ve ne kadar
süreyle kullanılacağı konusunda problemler ortaya çıkmaktadır. Bunları düzenleyebilmek
için zamanlama algoritmaları(scheduling algorithms) tasarlanmıştır.
Zamanlama
algoritmaları:
1.
First-Come,
First-Served (FCFS) Scheduling
2.
Shortest-Job-First
(SJR) Scheduling
3. Priority Scheduling
4. Round Robin(RR) Scheduling
5. Multilevel Queue Scheduling
Windows NT’ye
geçildiğinden beri Windows process scheduling için Multilevel Queue Scheduling
ve Round Robin Scheduling algoritmalarını bir arada kullanarak çalışan
Multilevel Feedback Queue algoritması kullanılmaktadır.
Multilevel Feedback
Queue Algoritması:
Bu algoritmada kendi
aralarında öncelik sırası bulunan ayrı kuyruklar bulunmaktadır. Gerçekleştirilen
işlemler bulunması gereken kuyrukta yerini alınca öncelik sırasına göre
işlenmeye başlanır. Yüksek önceliğe sahip olan iş daha önce yapılır. Herhangi bir
iş kuyruk için belirlenen işlem zamanında(quantum time) tamamlanamazsa öncelik
olarak bir alt sırada yer olan kuyruğa geçer. Bu durum işlem bitene kadar ya da
temel kuyruğa ulaşana kadar devam eder. Temel kuyruk öncelik sırasında en düşük
seviyede bulunan kuyruktur. Temel kuyruk içindeki işlemler arasında ise öncelik
sırası kullanılmaz bu nedenle bu kuyruktaki işlerin yapılması için Round Robin
Scheduling algoritması kullanılır.
Eğer aynı anda
yapılacak işlerin önceliğine bakıldığında aynı önceliğe sahip oldukları
görülürse bu durumda bunların işlenmesi Round Robin Scheduling algoritmasına
göre ayarlanır. Round Robin Scheduling algoritmasına göre her işlem sırasıyla, belirlenen
zaman diliminde çalışır. Bu süre içinde işi bitmese bile işlemciyi terk etmek
zorundadır(preemptive yapı). Bütün işlemlere, sırayla çalışma süresi verildikten
sonra ise tekrar ilk işleme dönülerek tamamlanmamış işlemlere aynı süre tekrar
verilir. Bu şekilde işlemler bitene kadar tekrar tekrar belirlenen süre kadar
işlemciyi kullanabilirler.
Multilevel Feedback
Queue Algoritması ile belirli kriterlere göre belirlenen öncelikler verilen
işlerin daha önce tamamlanması sağlanmıştır. Kuyruklar için belirlenen quantum
time ile çok uzun sürecek işlemlerin diğer işleri engellemesi önlenmiştir. Eğer
bu yapılmasaydı uzun süren işlemin bitmesi bekleneceği için yapılacak diğer
işlemlerde gecikme yaşanmış olurdu. Zaman kısıtlaması Round Robin Scheduling
algoritmasında da bulunduğu için aynı önceliğe sahip olan işler için de
birbirini bekleyerek gecikme yaşanması durumu söz konusu olmamaktadır. Her iş sırayla
belirli süre işlemciyi kullanarak adım adım tamamlanmaktadır. Yani Multilevel Feedback Queue Algoritması, işlemcinin,
aynı anda çalışan işlemler için daha az gecikmeye neden olacak ve işlemler
arasında adaleti sağlayacak şekilde kullanılmasına olanak vermektedir.