İşletim Sistemlerinde Önleyici ve Önleyici Olmayan Programlama Arasındaki Fark

İşlemci Zamanlaması (veya CPU Zamanlama) aşağıdaki işlemlerin zamanlama modellerine göre hangi işlemlerin CPU'ya atandığını ve CPU'dan kaldırıldığını belirler. baraj ve Önleyici Olmayan Programlama (Ayrıca şöyle bilinir Kooperatif Planlaması).

Eski sistemler basit bağımsız modlarda çalışabilir, ancak artan duyarlılık, esnek sistemlerin yanı sıra sanallaştırma ihtiyacı ile, çoklu işlemeyi verimli bir şekilde yönetmek, tüm görev işleme taleplerine hızlı yanıt verir.

Zamanlama birimleri genellikle görev ve gerektiğinde bu görevleri çalıştırmak ve yönetmek Planlayıcı'nın görevidir; Zamanlayıcı, kullanılan zamanlama modeline göre kaldırılacak ve işlenmek üzere CPU'ya atanacak görevi seçer.

Zamanlayıcı hangi görevlerin öncelikli olduğunu nasıl bilir??

Zamanlayıcının, değişken, dinamik işleme isteklerini dikkate alarak ve CPU döngülerinden en iyi şekilde yararlanarak adil ve verimli bir seçim süreci yürütmesi gerekir..

İşlemler yapılırken görevler iki durumda olabilir:

  1. İçinde CPU Patlaması CPU, görevi işlemek için hesaplamalar yapıyorsa (CPU Burst süresi görevden göreve ve programdan programa değişir).
  2. Bir Giriş / Çıkış (G / Ç) Patlaması verilerin sistemden alınmasını veya gönderilmesini beklemek.

CPU boşta kaldığında, Zamanlayıcı Hazır sıra, ve çalıştırılacak bir sonraki görevi seçer. Sonra, hareket memuru Bu, CPU'nun seçilen görev kontrolünü verir, bu yüzden hızlı olması gerekir! Dispatcher tarafından alınan her zaman şu şekilde bilinir: Dağıtım Gecikmesi.

Tanımlamak için farklı yapılar ve özel parametreler vardır Hazır sıra, ve programlama sürecinin karmaşıklıklarını yönetmek için kullanılabilecek çeşitli yöntemler.

Genel olarak, CPU kullanımını, iş akışını vb..

Zamanlayıcı aşağıdaki aşamalardan birinde karar vermek zorundadır:

  1. Görev bir Koşu bir Bekleme Durumu (örneğin, bir G / Ç isteği sırasında bekleme).
  2. Görev, Koşu için hazır (örneğin bir kesintiye yanıt vermek).
  3. Görev, Bekleme için hazır (örneğin bir G / Ç isteği tamamlandı).
  4. Ne zaman Görev

CPU'nun tam olarak kullanılmasını sağlamak için aşama 1 veya 4 gerçekleşirse yeni bir Görev seçilmelidir ve hem aşama 2 hem de 3'te görev çalışmaya devam edebilir veya yeni bir görev seçilir.

Bir görevin nasıl işlendiğini anladıktan sonra, CPU kesintileriyle ilgilenen iki zamanlama modeline bakalım.

Her ikisi de görevler, görev durumları, kuyruklar ve önceliklerle (statik veya dinamik) benzer özelliklere sahiptir:

  • Önleyici Olmayan Programlama bir görevin duruncaya (gönüllü olarak) veya bitene kadar çalışmasıdır. Windows®, Windows 3.x'e kadar Önleyici Olmayan Zamanlama'ya sahipti ve daha sonra Windows 95'ten Önleyici olarak değişti.
  • Önleyici Zamanlama Görevin CPU kontrolünü serbest bırakana kadar çalıştığı Önleyici Olmayan'ın aksine, bir görevin CPU kesintisi ile zorla askıya alınabildiği yerdir..

Önleyici Olmayan Programlama

Önleyici Olmayan bir sistemdeki görevler tamamlanana kadar devam eder.

Zamanlayıcı daha sonra tüm görevlerin durumunu kontrol eder ve bir sonraki en yüksek öncelikli görevi bir hazır durum.

Önleyici Olmayan Zamanlama ile, bir görevin CPU'ya atanması durumunda, kısa görevlerin daha uzun görevlerin tamamlanmasını beklemesi gerekse bile alınamaz.

Tüm görevler arasında zamanlama yönetimi “adil” dir ve yüksek öncelikli görevler bekleyen görevleri kuyrukta daha fazla engelleyemeyeceği için yanıt süreleri tahmin edilebilir.

Zamanlayıcı, her görevin CPU'dan payını almasını sağlar ve herhangi bir görevde herhangi bir gecikmeyi önler. CPU'ya ayrılan 'zaman miktarı', görevin tamamlanması için geçen süreye bağlı olduğu için eşit olmayabilir..

Önleyici Zamanlama

Bu zamanlama modeli, “tamamlamadan çalıştırmaya” yaklaşımı olan Önleyici Olmayan Zamanlama'nın aksine görevlerin kesilmesine izin verir.

Harici aramalardan başlatılabilen kesintiler, Zamanlayıcı'yı daha yüksek öncelikli başka bir görevi yönetmek için çalışan bir görevi duraklatmaya çağırır - böylece CPU kontrolü önlenebilir.

En yüksek öncelikli görev hazır Gerçek zamanlı olaylara hızlı yanıt verilmesine izin veren durum yürütülür.

Önleyici Zamanlama ile ilgili bazı eksiler, kesintileri kullanırken kaynaklardaki genel giderlerin artmasını içerir ve paylaşılan veri yapıları güncellenirken kesintiye uğrayabileceği ve veri bütünlüğünü olumsuz etkileyebileceğinden, veri paylaşımı iki görevle ilgili sorunlar oluşabilir..

Öte yandan, kritik olabilecek başka bir görevi yönetmek için bir görevi duraklatmak pratiktir.

Özetle

Farklı politikalarda birçok farklılık ve bağımlılık tanımlanabilir. “Yuvarlak Robin Politikası [i]” burada her görev (eşit önceliğe sahip) bir kez çalışır ve daha sonra bir sonraki döngü için kuyruğun sonuna yerleştirilir.

Diğer politikalar İlk giren ilk çıkar, En Kısa-İş-Birinci, En Kısa-İş-Sonraki, En Kısa Kalan Süre, vb.

Geçmiş verilerinin analizi, yeni görevlerin gelme oranı, CPU ve G / Ç Patlamaları vb. Konular hakkında bilgi sağlayabilir, böylece olasılık dağılımları görevlerin bekleme sürelerinin özelliklerini hesaplayabilir, böylece yöneticileri zamanlama modellerini tanımlamak için ilgili verilerle donatır..