CPU Zamanlama Algorithms in OperaAyarlama Sistemleri

CPU Planlama nedir?

CPU Zamanlama başka bir işlem beklemedeyken hangi işlemin yürütme için CPU'ya sahip olacağını belirleme sürecidir. CPU planlamasının temel görevi, CPU boşta kaldığında işletim sisteminin en azından yürütme için hazır kuyruğunda bulunan işlemlerden birini seçmesini sağlamaktır. Seçim süreci CPU planlayıcısı tarafından yürütülecektir. Bellekte yürütme için hazır olan işlemlerden birini seçer.

CPU Planlama Türleri

Burada iki tür Planlama yöntemi vardır:

CPU Planlama Türleri

Önleyici Planlama

Önleyici Planlamada görevler çoğunlukla önceliklerine göre atanır. Bazen, daha düşük öncelikli görev hala çalışıyor olsa bile, daha düşük öncelikli bir görevden önce daha yüksek öncelikli bir görevi çalıştırmak önemlidir. Düşük öncelikli görev bir süre bekletilir ve yüksek öncelikli görevin yürütülmesi tamamlandığında devam eder.

Önleyici Olmayan Planlama

Bu tür planlama yönteminde CPU belirli bir sürece tahsis edilmiştir. CPU'yu meşgul eden süreç, bağlamı değiştirerek veya sonlandırarak CPU'yu serbest bırakacaktır. Çeşitli donanım platformları için kullanılabilecek tek yöntemdir. Bunun nedeni, önleyici planlama gibi özel bir donanıma (örneğin bir zamanlayıcı) ihtiyaç duymamasıdır.

Planlama ne zaman Önleyici veya Önleyici Değildir?

Planlamanın önleyici mi yoksa önleyici olmayan mı olduğunu belirlemek için şu dört parametreyi göz önünde bulundurun:

  1. Bir süreç çalışma durumundan bekleme durumuna geçer.
  2. Belirli bir süreç, çalışma durumundan hazır durumuna geçiş yapar.
  3. Belirli bir süreç bekleme durumundan hazır durumuna geçer.
  4. İşlem yürütmeyi tamamladı ve sonlandırıldı.

Yalnızca 1. ve 4. koşullar geçerlidir; planlamaya önleyici olmayan denir.

Diğer tüm planlamalar önleyicidir.

Önemli CPU Planlama Terminolojileri

  • Patlama Süresi/Yürütme Süresi: İşlemin yürütmeyi tamamlaması için gereken süredir. Buna çalışma süresi de denir.
  • Varış zamanı: bir süreç hazır duruma girdiğinde
  • Bitirme zamanı: işlem tamamlandığında ve sistemden çıkıldığında
  • Çoklu programlama: Bellekte aynı anda bulunabilen birden fazla program.
  • Meslekler: Herhangi bir kullanıcı etkileşimi olmayan bir program türüdür.
  • Kullanıcı: Kullanıcı etkileşiminin olduğu bir program türüdür.
  • Proses: Hem iş hem de kullanıcı için kullanılan referanstır.
  • CPU/IO patlama döngüsü: CPU ve G/Ç etkinliği arasında geçiş yapan süreç yürütmeyi karakterize eder. CPU süreleri genellikle G/Ç süresinden daha kısadır.

CPU Planlama Kriterleri

Bir CPU planlama algoritması aşağıdakileri en üst düzeye çıkarmaya ve en aza indirmeye çalışır:

CPU Planlama Kriterleri

Maksimuma çıkarmak

CPU kullanımı:CPU kullanımı, işletim sisteminin CPU'nun mümkün olduğu kadar meşgul kalmasını sağlaması gereken ana görevdir. Yüzde 0 ila 100 arasında değişebilir. Ancak RTOS için bu, düşük seviyeli sistem için yüzde 40 ve yüksek seviyeli sistem için yüzde 90 aralığında olabilir.

Üretilen: Birim zamanda yürütülmesini tamamlayan işlemlerin sayısı Verim olarak bilinir. Yani, CPU işlemi yürütmekle meşgul olduğunda, o anda iş yapılıyor ve birim zamanda tamamlanan işe Verim adı veriliyor.

Azaltmak

Bekleme süresi: Bekleme süresi, belirli bir prosesin hazır kuyruğunda beklemesi gereken miktardır.

Tepki Süresi: Talebin gönderildiği andan ilk yanıt alınana kadar geçen süredir.

Geri Dönüş Süresi: Geri dönüş süresi, belirli bir işlemin yürütülmesi için geçen süredir. Belleğe girmeyi beklerken, kuyrukta beklerken ve CPU üzerinde yürütülürken harcanan toplam sürenin hesaplanmasıdır. İşlemin teslim süresi ile tamamlanma süresi arasında geçen süre, geri dönüş süresidir.

Aralık Zamanlayıcısı

Zamanlayıcı kesintisi, önleme ile yakından ilgili bir yöntemdir. Belirli bir işlem CPU tahsisini aldığında, bir zamanlayıcı belirli bir aralığa ayarlanabilir. Hem zamanlayıcı kesintisi hem de önleme, bir işlemi CPU patlaması tamamlanmadan CPU'yu geri döndürmeye zorlar.

Çok programlı işletim sistemlerinin çoğu, bir işlemin sistemi sonsuza kadar bağlamasını önlemek için bir tür zamanlayıcı kullanır.

Dispatcher nedir?

CPU'nun prosese kontrolünü sağlayan modüldür. Dispatcher'ın her bağlam anahtarında çalışabilmesi için hızlı olması gerekir. Dağıtım gecikmesi, CPU zamanlayıcının bir işlemi durdurup diğerini başlatmak için ihtiyaç duyduğu süredir.

Dispatcher tarafından gerçekleştirilen işlevler:

  • Bağlam Değiştirme
  • Kullanıcı moduna geçiş
  • Yeni yüklenen programda doğru konuma taşınma.

CPU planlama algoritması türleri

Esas olarak altı tür vardır süreç planlama algoritmaları

  1. İlk Gelen İlk Servis (FCFS)
  2. En Kısa İş Öncelikli (SJF) Planlama
  3. Kalan En Kısa Süre
  4. Öncelikli Planlama
  5. Yuvarlak Robin Planlama
  6. Çok Düzeyli Kuyruk Planlama
Çizelgeleme Algorithms
Çizelgeleme Algorithms

Önce gelen alır

İlk Gelen İlk Hizmet, FCFS'nin tam biçimidir. En kolay ve en basit CPU planlama algoritmasıdır. Bu tür algoritmada, CPU'yu talep eden süreç önce CPU tahsisini alır. Bu planlama yöntemi bir FIFO kuyruğu ile yönetilebilir.

Proses hazır kuyruğuna girdiğinde PCB'si (Proses Kontrol Bloğu) kuyruğun kuyruğuna bağlanır. Yani CPU serbest kaldığında kuyruğun başındaki prosese atanmalıdır.

FCFS yönteminin özellikleri

  • Önleyici olmayan ve önleyici planlama algoritması sunar.
  • İşler her zaman ilk gelene ilk hizmet esasına göre gerçekleştirilir
  • Uygulaması ve kullanımı kolaydır.
  • Ancak bu yöntemin performansı zayıftır ve genel bekleme süresi oldukça yüksektir.

Kalan En Kısa Süre

SRT'nin tam şekli Kalan en kısa süre'dir. Aynı zamanda SJF önleyici planlama olarak da bilinir. Bu yöntemde süreç, tamamlanmaya en yakın olan göreve tahsis edilecektir. Bu yöntem, daha yeni bir hazır durum işleminin eski bir işlemin tamamlanmasını geciktirmesini önler.

SRT planlama yönteminin özellikleri

  • Bu yöntem çoğunlukla kısa işlerin tercih edilmesinin gerekli olduğu toplu ortamlarda uygulanır.
  • Bu, gerekli CPU süresinin bilinmediği paylaşımlı bir sistemde bunu uygulamak için ideal bir yöntem değildir.
  • Her işlemi bir sonraki CPU patlamasının uzunluğu olarak ilişkilendirin. Böylece işletim sistemi bu uzunlukları kullanır ve bu da işlemin mümkün olan en kısa sürede planlanmasına yardımcı olur.

Önceliğe Dayalı Planlama

Öncelikli Planlama Önceliğe dayalı olarak süreçlerin planlanması yöntemidir. Bu yöntemde zamanlayıcı, öncelik sırasına göre çalışacak görevleri seçer.

Öncelik planlaması aynı zamanda işletim sisteminin öncelik atamalarını içermesine de yardımcı olur. Daha yüksek önceliğe sahip süreçler ilk önce yürütülmeli, eşit önceliğe sahip işler ise dönüşümlü veya FCFS esasına göre gerçekleştirilir. Öncelik, bellek gereksinimleri, zaman gereksinimleri vb. temel alınarak belirlenebilir.

Round-Robin Planlama

Round robin en eski ve en basit planlama algoritmasıdır. Bu algoritmanın adı, her kişinin sırayla bir şeyden eşit pay aldığı yuvarlak-robin ilkesinden gelir. Çoğunlukla çoklu görevlerde algoritmaları planlamak için kullanılır. Bu algoritma yöntemi, süreçlerin aç kalmadan yürütülmesine yardımcı olur.

Round-Robin Planlamanın Özellikleri

  • Round robin, saat odaklı hibrit bir modeldir.
  • İşlenecek belirli bir görev için atanan zaman dilimi minimum olmalıdır. Ancak farklı işlemlere göre değişiklik gösterebilir.
  • Olaya belirli bir zaman sınırı içinde yanıt veren gerçek zamanlı bir sistemdir.

Önce En Kısa İş

SJF, (Önce en kısa iş) ifadesinin tam biçimidir ve bir sonraki yürütme için en kısa yürütme süresine sahip işlemin seçilmesi gereken bir zamanlama algoritmasıdır. Bu planlama yöntemi önleyici veya önleyici olmayabilir. Yürütülmeyi bekleyen diğer işlemlerin ortalama bekleme süresini önemli ölçüde azaltır.

SJF Planlamanın Özellikleri

  • Tamamlanacak zaman birimi olarak her iş ile ilişkilendirilir.
  • Bu yöntemde, CPU mevcut olduğunda, tamamlanma süresi en kısa olan bir sonraki işlem veya iş ilk önce yürütülecektir.
  • Önleyici olmayan bir politika ile uygulanır.
  • Bu algoritma yöntemi, işlerin tamamlanmasını beklemenin kritik olmadığı toplu tip işleme için kullanışlıdır.
  • İlk önce yapılması gereken ve çoğunlukla daha kısa geri dönüş süresine sahip olan daha kısa işler sunarak iş çıktısını artırır.

Çok Seviyeli Kuyruk Planlama

Bu algoritma hazır kuyruğunu çeşitli ayrı kuyruklara ayırır. Bu yöntemde işlemler, işlem önceliği, bellek boyutu vb. gibi işlemin belirli bir özelliğine dayalı olarak bir kuyruğa atanır.

Ancak bu, işleri zamanlamak için diğer algoritma türlerini kullanması gerektiğinden bağımsız bir zamanlama işletim sistemi algoritması değildir.

Çok Seviyeli Kuyruk Planlamanın Özelliği

  • Bazı özelliklere sahip işlemler için birden fazla kuyruk tutulmalıdır.
  • Her kuyruğun ayrı planlama algoritmaları olabilir.
  • Her kuyruk için öncelikler verilmiştir.

Zamanlama Algoritmasının Amacı

Zamanlama algoritması kullanmanın nedenleri şunlardır:

  • CPU verimliliğini artırmak için zamanlamayı kullanır.
  • Kaynakları rakip süreçler arasında tahsis etmenize yardımcı olur.
  • Çoklu programlama ile CPU'nun maksimum kullanımı elde edilebilir.
  • Yürütülecek işlemler hazır kuyruğundadır.

ÖZET

  • CPU planlaması, başka bir işlem beklemedeyken hangi işlemin yürütülmek üzere CPU'ya sahip olacağını belirleme sürecidir.
  • Önleyici Planlamada görevler çoğunlukla önceliklerine göre atanır.
  • Önleyici olmayan planlama yönteminde CPU belirli bir sürece tahsis edilmiştir.
  • Patlama süresi, işlemin yürütmeyi tamamlaması için gereken süredir. Buna çalışma süresi de denir.
  • CPU kullanımı, işletim sisteminin CPU'nun mümkün olduğu kadar meşgul kalmasını sağlaması gereken ana görevdir.
  • Birim zamanda yürütülmesini tamamlayan işlemlerin sayısı Verim olarak bilinir.
  • Bekleme süresi, belirli bir işlemin hazır kuyruğunda beklemesi gereken miktardır.
  • Talebin gönderildiği andan ilk yanıt alınana kadar geçen süredir.
  • Geri dönüş süresi, belirli bir işlemin yürütülmesi için geçen süredir.
  • Zamanlayıcı kesintisi, önleme ile yakından ilgili bir yöntemdir.
  • Dağıtıcı, CPU'nun sürece kontrolünü sağlayan bir modüldür.
  • Altı tür süreç planlama algoritması şunlardır: İlk Gelen İlk Hizmet (FCFS), 2) En Kısa İş İlk (SJF) Planlama, 3) En Kısa Kalan Süre, 4) Öncelik Planlama, 5) Döngüsel Robin Planlama, 6) Çok Düzeyli Kuyruk Planlama .
  • içinde İlk Gelen İlk Hizmet Yöntemi, CPU'yu talep eden süreç önce CPU tahsisini alır.
  • Kalan En Kısa Sürede süreç, tamamlanmasına en yakın göreve tahsis edilecektir.
  • Öncelikli Planlama'da, zamanlayıcı önceliğe göre çalışacak görevleri seçer.
  • Yuvarlak sıralama zamanlaması herkesin sırayla bir şeyden eşit pay alması prensibiyle çalışır.
  • Önce En kısa iş'te, bir sonraki yürütme için en kısa yürütme süresi seçilmelidir.
  • Çok seviyeli planlama yöntemi hazır kuyruğunu çeşitli ayrı kuyruklara ayırır. Bu yöntemde işlemler belirli bir özelliğe göre bir kuyruğa atanır.
  • CPU verimliliğini artırmak için zamanlamayı kullanır.