Tavsiye, 2024

Editörün Seçimi

OS'de Önleyici ve Önleyici Olmayan Çizelgeleme Arasındaki Fark

CPU boşta olduğunda, bir işlemcinin bir işlemciye tahsis edilmesi CPU zamanlayıcısının sorumluluğundadır. CPU zamanlayıcısı, hazır kuyruğundan bir işlem seçer ve işlemi CPU'ya tahsis eder. Bir işlem çalışma durumundan hazır durumuna veya bekleme durumundan hazır durumuna geçtiğinde gerçekleşen zamanlamaya Önleyici Zamanlama denir. Ellerde, bir işlem sonlandığında ya da durmadan beklemeye geçişte gerçekleştiği zamanlamaya bu tür CPU zamanlaması denir, Önleyici Olmayan Zamanlama . Önleyici ve önleyici olmayan çizelgeleme arasındaki temel fark, kendi adlarına aittir. Bu bir Preemptif zaman çizelgesi önlenebilir; işlemler planlanabilir. Önleyici olmayan zamanlamada, işlemler zamanlanamaz.

Ö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
TemelKaynaklar 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ıkYü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.

Bu arada, P3 yürütüldü, P1 işlemi 2 zamanında geldi. Şimdi P3 (3 milisaniye) için kalan süre P1 (4 milisaniye) ve P2 (5 milisaniye) işlemlerinin gerektirdiği süreden daha az. Böylece P3 devam etmesine izin verilir. P3 devam ederken P0, 3. sırada gelirken, şimdi P3 (2 milisaniye) için kalan süre P0 (2 milisaniye) tarafından istenen süreye eşittir. Böylece P3 devam eder ve P3 sona erdikten sonra CPU diğerine göre daha az zaman kaybına sahip olduğundan P0'a atanır. P0 sona erdikten sonra, CPU P1'e ve daha sonra P2'ye tahsis edilir.

Ö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.

Yukarıdaki programlama örneğini önleyici olmayan bir şekilde çözelim. Başlangıçta P2 prosesi 0 zamanında geldiğinden, CPU P2 prosesine tahsis edilir ve çalıştırılması 6 milisaniye alır. Tüm süreçler arasında yani P0, P1, P3 hazır kuyruğa giriyor. Ancak P2 prosesi CPU patlama zamanını tamamlayana kadar bekler. Daha sonra P2 yani P3'ten sonra gelen işlem CPU'ya ayrılma zamanını tamamlayana kadar atanır. Benzer şekilde, P1 yürütülür ve daha sonra P0 işlemine CPU verilir.

Önleyici ve Önleyici Olmayan Çizelgeleme Arasındaki Temel Farklılıklar

  1. Ö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.
  2. Ö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.
  3. 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 .
  4. Ö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.
  5. Ö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 .
  6. Ö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.

Top