İşLetim Sistemlerinde Preemptive Preemptive and Preemptive Scheduleing arasındaki fark
İşlemci Zamanlama (veya CPU Zamanlama ), Önleme ve Olmayan gibi zamanlama modellerine dayalı olarak CPU'dan atanan ve CPU'dan kaldırılan süreçleri belirler. ( Kooperatif Planlama olarak da bilinir).
Eski sistemler basit bağımsız modlarda çalışabilir ancak artan Zamanlama birimleri sık sık bir
görev olarak anılır ve bu Zamanlayıcı'nın işi Gerektiğinde bu görevleri yönetmek ve yönetmek; Zamanlayıcı, kaldırılacak ve CPU'ya atanacak görevi kullanılan çizelgeleme modeline dönüştürür.
Zamanlayıcı, değişken, dinamik işleme istekleri ve CPU döngülerinden en iyi şekilde yararlanarak, adil ve verimli bir seçim süreci yürütmelidir.
Görevler, işlem sırasında iki durumda olabilir:
CPU'nun görevi işlemek için hesaplamaları gerçekleştirdiği
- CPU Burst ortamında (bir CPU Burst'unun süresi görevden göreve değişir ve programı programlayın). Sistemden veri alınmasını veya gönderilmesini bekleyen bir
- Giriş / Çıkış (G / Ç) Burst .
Hazır sıra 'ı okur ve çalıştırılacak bir sonraki görevi seçer. Daha sonra, CPU'nun seçilen görev kontrolünü veren Dispatcher 'dır, böylece hızlı olması gerekir! Dispatcher tarafından alınan zaman Sevkiyat Gecikmesi olarak bilinir.
Hazır kuyruk 'ı tanımlamak için farklı yapılar ve özel parametrelerin yanı sıra zamanlama sürecinin karmaşıklığını yönetmek için kullanılabilecek çeşitli yöntemler de vardır. Genel olarak, CPU kullanımını, verimini vb. Optimize etmek ve maksimize etmek için kullanılır.
Zamanlayıcı, aşağıdaki aşamalardan birinde bir karar vermelidir:
Görev bir
- Koşu Bekleme Durumu 'a (örneğin, bir G / Ç isteğinde beklemek). Görev,
- Çalışıyor 'dan Hazır (örneğin, bir kesmeye yanıt verme) olarak değiştiğinde. Görev,
- Bekleme 'dan Hazır (örneğin bir G / Ç isteği tamamlandı) olarak değiştiğinde.
- Görev CPU'nun tam olarak kullanılmasını sağlamak için 1. veya 4. evre gerçekleşirse ve 2. ve 3. evrenin her ikisinde de görev devam edebilir veya yeni bir Görev seçilmelidir seçilen.
Bir görevin nasıl işlendiğini anladıktan sonra, CPU kesmeleriyle ilgilenen iki zamanlama modeline bakalım.
Her ikisi de görevler, görev durumu, sıralar ve önceliklerle (statik veya dinamik) benzer özelliklere sahiptir:
Preemptive Scheduling
- , bir görev durana kadar (gönüllü olarak) veya tamamlanıncaya kadar çalışır. Windows® Windows 3. x'e kadar Preemptive Olmayan Zamanlama özelliğine sahipti ve daha sonra Windows 95'ten Preemptive olarak değişti. Preemptive Scheduling
- , bir görevin bir CPU kesintisiyle zorla askıya alınabildiği yerdir; Non-Preemptive Görev, CPU'nun kontrolünü bırakana kadar çalışır. Preemptit Olmayan Zamanlama
Preemptive olmayan bir sistem içindeki görevler tamamlanıncaya kadar çalışacaktır.
Sonra Zamanlayıcı, tüm görevlerin durumlarını denetler ve bir sonraki en yüksek öncelikli görevi
Hazır durumuyla zamanlar. Preemptive Olmayan Zamanlama ile, kısa görevlerin daha uzun görevlerin tamamlanmasını beklemesi gerekse bile, bir görevi CPU'ya atadığında, uzaklaşılamaz.
Tüm görevlerdeki zamanlama yönetimi "adil" ve tepki süreleri öngörülebilir; çünkü yüksek önceliğe sahip görevler bekleyen görevleri sıranın altına itemez.
Zamanlayıcı, her görevi, herhangi bir görevle ilgili herhangi bir gecikmeden kaçınarak CPU'nun payını alır. Görevin ne kadar sürede tamamlanacağına bağlı olarak, CPU'ya tahsis edilen 'zaman miktarı' eşit olmayabilir.
Preemptive Scheduling
Bu çizelgeleme modeli, "tamamlanmaya" başlama yöntemi olan Preemptive Scheduling'in aksine görevlerin kesilmesini sağlar.
Harici aramalardan başlatılabilen kesmeler, Zamanlayıcı'yı, başka bir yüksek öncelikli görevi yönetmek için çalışan bir görevin duraklatılması için çağırır; böylece CPU'nun denetimi önlenebilir.
Hazır durumundaki en yüksek öncelikli görev gerçek zamanlı olaylara hızlı tepki vermek için yürütülür. Preemptive Scheduling ile eksilerini bazı kesmeler kullanırken kaynakları üzerinde ek masraf artışını içerir ve paylaşılan veri yapılarını güncellerken kesintiye uğrayabilir ve veri bütünlüğünü olumsuz etkileyebilir gibi iki görev paylaşımı verileri ile oluşabilir.
Öte yandan, kritik olabilecek başka bir görevi durdurmak için bir görevi durdurmak pratiktir.
Özet
Her görevin (eşit önceliğe sahip) bir kez çalıştırıldığı bir
"Round Robin Policy [i]" gibi farklı politikalardaki birçok varyans ve bağımlılık tanımlanabilir; bir sonraki döngü için sıranın sonuna yerleştirilir. Diğer politikalar şunlardır:
İlk giren ilk , En kısa iş ilk , En kısa iş sonrasındaki , En kısa kalan süre , vb. Tarihsel verilerin analizi, yeni görevlerin gelme hızı, CPU ve G / Ç Patlamaları gibi yönler hakkında bilgi sağlayabilir, böylece olasılık dağılımları görevlerin bekleme sürelerinin özelliklerini hesaplayabilir, böylece kurma çizelgeleme modellerini tanımlamak için ilgili verilere sahip yöneticiler.