WINDOWS XP SCHEDULING ALGORITHMS & WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN
WIN 32 Win 32 de süreçler oluştuğu bir sınıf önceliği üzerine verilmiştir. >>Idle(tembel),below,below normal,normal,above normal,high,ve real-time gibi öncelik seviyeleri vardır. >>Süreçlerde bu öncelikler task manager(görev yöneticisi) tarafından değiştirilebilir.
>>Tek(individual) threadli süreçler kendi sınıfı içinde bir önceliğe sahiptir. **Bunlar idle,lowest,below normal,above normal,highest,ve critical-time öncelik seviyelerine sahiptir.
Windows xp tek kullanıcılı olabilme, Ortak kullanılabilme, Sunucu olarak kullanılabilme kapasitesine Sahip olarak dizayn edilmiştir. Windows xp de quantum-based ve preemptive(kesintili) priority algoritmalar kullanılmıştır.
Quantum based(quantum ne?) Windows xp de her sürece çalışabileceği belli bir süre verilmiştir.(bu zaman aralığına quantum denir. )Diyelim ki bir sürecimiz var ve bu sürecimizin quantumu doldu fakat süreç bitmedi o zaman süreç askıya alınır. Başka bir sürece geçilir.bu bloklanma için de geçerlidir.ayrıca süreç quantumu doldurduğunda kuyruğa eklenir ve sırasını bekler.
XP de Quantum XP de threadler varsayılan bir quantum değeri alırlar. >>windows xp home/professional de varsayılan quantum değeri 6 dır.(2 ticks) >>Xp server(sunucu) da varsayılan quantum değeri 36 dır(12 ticks) >>XP server ın uygulamaları diğerlerine göre daha avantajlıdır.
Quantum Devam Her zaman kesilen clock için rutin olarak quantum threadinden belirli sabit bir değer çıkarılır.(yönetimsel ek yük işlemleri gibi RR de) Tek işlemcili sistemlerde zaman aralığı en çok 10ms dir. Çok işlemcili sistemlerde bu 15ms olur.
Controlling Quantum(Quantum kontrolü) Bu kontrol belli sayılarla(0-3)ifade edilir. 1:Ön plandaki sürecin Quantumunu değiştirmek 2:Quantum değerleri ön plandaki süreç için değişmez. 0,3:default(varsayılan) Bu değerler proessional için Değişken xp server için sabittir.
Possible Quantum Values short Variable(değişken) 6 12 18 xp pro. Fixed(sabit) 18 18 18 long Variable(değişken) 12 24 36 Fixed(sabit) 36 36 36 xp server
Preemptive(kesinti) ne demek? Bir süreç seçilip kendisine sabit bir süre verilir.süreç bu sabit süreyi bitirdiği halde işlemcide işi bitmemişse zamanlayıcı tarafından başka bir sürece geçilir ve bu süreç işlemcide askıya alınır.buna preemptive denir. Pekala neden kesintiler oluşur?
Preemption(kesinti) şu sebeplerden dolayı olabilir.. 1.Yüksek öncelikli thread hazır hale gelince 2.Thread sonlanınca 3.Quantum zamanı tükenirse 4. Thread bir sistem çağrısı yaparsa(mesela sürecimiz hazır halden bekleme haline geçerse)
Windows xp de öncelik(priority) seviyeleri(levels) XP de 32 lik öncelik sevisi kullanılır ki bunların en yüksek önceliklisi 31 en düşük önceliklisi ise 0 dır. Bu öncelik aralıklarının bulunduğu yerler şunlardır: 1.Memory Managemet Thread; 2.Variable class; 3.Real-Time class;
1.MEMORY MANAGEMENT THREAD(bellek yönetim threadi) Bunun önceliği 0 dır.
2.VARIABLE CLASS(Değişken Sınıfları) 1.16 öncelik seviyesi vardır. 2.Öncelik aralığı 15-0 dır. 3.FCFS algoritması kullanılır.(??) 4.Süreçlerin öncelikleri yükselip düşebilir ama 15 i asla geçmez. 5.Thread taban önceliği süreç seviyesinin iki altı veya üstü olabilir.
6.kesilen threadlerin değiştirilmiş öncekleri olabilir **Eğer quantum süresi tükenmişse düşük öncelikli olur.(işlemci sınırlı threadler) **Eğer I/O olayı tarafından interrupt(kesme) olursa öncelik artar.
FCFS(First Come First Served) Kısa süreli zamanlamada süreçler geliş sırasına göre çalışır. Eğer süreç bitmişse veya blok lanmış ise işlemciden kaldırılır. Eğer kısa süreçler uzun süreçlerin ardından işleme girerse iyi bir yöntem değildir. Fakat uzun süreçler işlemciye en son girdiğinde mükemmel algoritmadır.
FCFS Devam. >>Tipik olarak kesintisizdir.(non-preemptive)?? Bir süreç çalışması için seçilir ve kendi kodunda bulunan I/O isteği ile bloklanıncaya kadar veya kendi isteği ile işlemciden çıkıncaya kadar sürecin çalışmasıdır.
>>İşler eşit olarak işleme alınır.(verilen süre kadar)yani beklemekte olan süreç sonsuza kadar beklemez.
P 2 P 3 P 1 30 27 24 0 Burada p1=24; p2=3; p3=3; ortalama süresi=(0+24+27)/3=17 p1den başlarsa tam tersten başlarsak (0+3+6)/3= 3 sonuç:bu da gösteriyor ki kısa süreçler uzun süreçlerin önünde ise bu alg. avantajlıdır.
REAL-TIME CLASS PRIORITIES 1.16 öncelik seviyesinden oluşmuştur. 2.Öncelik aralığı 31-16 arasındadır. 3.Variable classın tüm önceliğine sahiptir. 4.Round Robin algoritması kullanılır.
ROUND ROBIN ALGORITHM (Dönüşümlü Zamanlama Algort.) **Bu algoritmada süreçler quantum adı verilen zaman aralıklarına ayrılmışlardır. **Her süreç quantumu, işini sırayla yapar. Bir sürecin quantumu bitmeden işi biterse başka bir süreç gelir ve kendisine verilen quantum süresi kadar durur. **Fakat bazı uygulamalarda gelecek olan süreç quntumun bir kısmını kullanabilir.(bekleme halinden hazır hale geçme)
RR devamı. Her sürece verilen zamanlama dilimleri 10ms-100ms arasındadır. Kesintilidir.(preemptive)
THREADLER 1.Gerçek zamanlı sınıflarda threadlerin sabit bir önceliği vardır. 2.Çalışan threadler daima en yüksek öncelikli seviyeye sahiptir. 3.Eğer hazırda thread yoksa idle(tembel) thread çalışır.
4.Bir threadin quantumu dolduğu zaman onun önceliği en düşük seviyede olur.
Multi level Queue scheduling Bir sistemde 2 tip süreç vardır. 1.İnteractive jobs(etkileşimli işler) Kısa olmaya eğilimlidir.kesinti ZORUNLU 2.Butch jobs(toplu işler) Uzun olmaya eğilimlidir. ** diğer süreçlerin ihtiyacını karşılamak için farklı kuyruklar oluşturur. Her kuyruk kendi zamanlama algoritmasını kullanabilir.
Arka plandaki kuyruklar genel olarak FCFS algoritmasını, Etkileşimli kuyruklar ise RR algoritmasını kullanırlar. Zamanlayıcı(scheduler) hangi kuyruğun çalışacağına karar verir.
Bu 2 ana metodla sağlanır. *Düşük öncelikli kuyruklar çalıştırılmadan yüksek öncelikli kuyruklar boşalana kadar(seviye düşene kadar)işleme tabi tutulur. *Her bir kuyruğa işlemcinin kesin bir miktarı verilir.
********* SON******** ************
WINDOWS XP SCHEDULING ALGORITHMS & WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN