
Önleyici ve Önleyici Olmayan Çizelgeleme arasındaki farkları kısaca aşağıda gösterilen karşılaştırma tablosunun yardımıyla tartışalım.
Karşılaştırma Tablosu
Karşılaştırma için temel | Önleyici Programlama | Önleyici Olmayan Çizelgeleme |
---|---|---|
Temel | Kaynaklar sınırlı bir süre için bir sürece tahsis edilir. | Kaynaklar bir sürece tahsis edildikten sonra, işlem, patlama süresini tamamlayana ya da bekleme durumuna geçene kadar devam eder. |
Kesmek | İşlem, arayla yarıda kesilebilir. | İşlem sonlandırılana veya bekleme durumuna geçene kadar kesintiye uğramaz. |
Açlık | Yüksek öncelikli bir işlem sık sık hazır kuyruğa gelirse, düşük öncelikli işlem aç kalabilir. | Uzun zaman kaybedilen bir işlem CPU kullanıyorsa, daha az CPU kayma süresine sahip başka bir işlem aç bırakılabilir. |
havai | Önleyici zamanlama, süreçleri planlamanın genel giderlerine sahiptir. | Önleyici olmayan zamanlamanın genel giderleri yoktur. |
Esneklik | Önleyici zamanlama esnektir. | Önleyici olmayan programlama katıdır. |
Maliyet | Önleyici zamanlama maliyetle ilişkilidir. | Önleyici olmayan zamanlama maliyet ilişkilendirici değildir. |
Önleyici Çizelgelemenin Tanımı
Önleyici programlama, bir işlemin çalışma durumundan hazır duruma veya bekleme durumundan hazır duruma geçmesi durumunda yapılabilecek olandır . Burada, kaynaklar (CPU döngüleri) sürece sınırlı bir süre için işleme ayrılır ve daha sonra geri alınır ve yine de CPU veri bloğu süresi kalmışsa, işlem tekrar hazır sıraya alınır. İşlem, bir sonraki yürütme şansını yakalayana kadar hazır durumda kalır.
Önceliği yüksek bir işlem hazır sırada gelirse, geçerli işlemin patlama süresini tamamlamasını beklemek zorunda değildir. Bunun yerine, mevcut işlem yürütmenin ortasında kesilir ve yüksek önceliğe sahip işlem CPU döngülerini kullanana kadar hazır sıraya yerleştirilir. Bu şekilde, hazırdaki her işlem CPU'yu çalıştırmak için biraz zaman alır. Önleyici zamanlamayı esnek hale getirir, ancak sürecin çalışma durumundan hazır duruma ve mengeneye geçme ek yükünü arttırır.
Önleyici zamanlamaya göre çalışan algoritmalar Round Robin'tir. Önce En Kısa İş (SJF) ve Öncelikli zamanlama öncelikli zamanlama altında olabilir veya olmayabilir.
Bir Preemptive Scheduleing örneğini ele alalım, aşağıdaki resme bakın. Dört işlemimiz P0, P1, P2, P3. Bunlardan, P2 0 zamanında gelir. Böylece CPU, P2 işlemine atanır, çünkü sırada başka bir işlem yoktur. Bu arada, P2 yürütüldü, P3, P3'ün (4 mili-san) gerektirdiği zamandan daha büyük olan P2 prosesi için kalan süre (5 milisaniye) 1 zamanında geldi. Böylece CPU P3 işlemcisine tahsis edilmiştir.

Önleyici Olmayan Çizelgelemenin Tanımı
Önleyici Olmayan Çizelgeleme, bir işlemin sonlandırıldığı durumlarda veya bir işlemin çalışmasından bekleme durumuna geçmesi durumunda uygulanabilecek olandır . Önleyici Olmayan Çizelgeleme'de, kaynaklar (CPU) bir sürece tahsis edildikten sonra, işlem CPU'yu sonlandırılana veya bekleme durumuna ulaşana kadar tutar.
Önleyici zamanlamanın aksine, önleyici olmayan zamanlama, işlemin ortasında CPU çalıştıran bir işlemi kesintiye uğratmaz. Bunun yerine, işlemin CPU veri bloğu zamanını tamamlamasını bekler ve ardından işlemciyi başka bir işleme tahsis edebilir.
Önleyici olmayan zamanlamada, uzun CPU veri bloğu süresi olan bir işlem yürütülüyorsa, diğer işlem uzun süre beklemek zorunda kalacak ve bu da işlemlerin sıradaki ortalama bekleme süresini artıracaktır. Bununla birlikte, preemptif olmayan zamanlama, süreçleri hazır sıradan CPU'ya geçirme ek yüküne sahip değildir, ancak yürütmedeki işlem daha yüksek önceliğe sahip bir işlem için önceden planlanmadığından, zamanlamayı katı hale getirir.

Önleyici ve Önleyici Olmayan Çizelgeleme Arasındaki Temel Farklılıklar
- Önleyici ve önleyici olmayan programlama arasındaki temel fark, önleyici programlamadaki CPU'nun sınırlı bir süre için işlemlere tahsis edilmesidir. Önleyici olmayan zamanlamada, CPU sona erene ya da bekleme durumuna geçene kadar işleme tahsis edilir.
- Önleyici zamanlamadaki yürütme işlemi yürütmenin ortasında kesilirken, önleyici olmayan zamanlamadaki yürütme işlemi yürütmenin ortasında kesintiye uğramaz.
- Preemptive Scheduling, sürecin hazır durumdan çalışma durumuna geçmesi, münasebet ve hazır kuyruğun sürdürülmesi için ek yüke sahiptir. Diğer yandan, önleyici olmayan zamanlamanın, süreci çalışma durumundan hazır duruma geçirme yönünden hiçbir ek yükü yoktur .
- Önleyici zamanlamada, yüksek önceliğe sahip bir işlem sık sık hazır kuyruğa gelirse, düşük önceliğe sahip işlem uzun süre beklemek zorunda kalır ve aç kalması gerekebilir. Diğer yandan, önleyici olmayan zamanlamada, eğer CPU daha büyük patlama süresi olan prosese tahsis edilmişse, küçük patlama süresi olan proseslerin aç kalması gerekebilir.
- Önleyici zamanlama oldukça esnektir, çünkü kritik işlemlerin hazır sıraya girerken CPU'ya erişmesine izin verilir, şu anda hangi işlem yürütülürse gerçekleştirilsin. Önleyici olmayan programlama, kritik bir işlem hazır kuyruğa girse bile CPU çalıştıran işlemin rahatsız edilmemesi gibi katıdır .
- Önleyici Zamanlama, Önleyici Olmayan Zamanlama ile ilgili olmayan paylaşılan verilerin bütünlüğünü korumak zorunda olduğu için maliyetle ilişkilidir.
Sonuç:
Önleyici zamanlamanın, önleyici olmayan zamanlamadan veya mengeneden daha iyi olması değildir. Hepsi bir zamanlamanın süreçlerin ortalama bekleme süresini nasıl en aza indirdiğine ve CPU kullanımını en üst düzeye nasıl getirdiğine bağlıdır.