Planlama Algoritmaları

Çoklu programlamanın hedefi; aynı zamanda birkaç prosesi birlikte çalıştırmakla, CPU verimliliğini yükseltmektir. Prosesin çalışmasını ilişkisel koordine etmek için planlama fonksiyonu (scheduling) kullanılır. Bu fonksiyon işletim sisteminin temel fonksiyonlarındandır. Tüm bilgisayar kaynaklarının görevi, çalışma öncesi planlanır. Esas kaynak olan CPU’nun planlanması işletim sisteminin tasarımında başlıca yeri tutmaktadır. Her bir prosesin çalışması, CPU ve Giriş/Çıkış işlemlerinden oluşur. CPU çalışma süresi prosese ve bilgisayarlara göre farklılık sergiler.

CPU planlama kararları prosesin ;

  • Çalışma(run) durumundan bekleme (wait) durumuna geçiş,
  • Çalışma(run) durumundan hazır (ready) durumuna geçiş,
  • Bekleme (wait) durumundan hazır (ready) durumuna geçiş,
  • Sonlandırma (terminate)

aşamalarında alınır. Bekleme ve sonlandırma durumlarında planlama seçeneği yokken, diğer durumlarda planlama yapılır.

Proseslerin planlanması için çeşitli algoritmalar kullanılmaktadır. Bu algoritmaları kıyaslamak için kriterler:

  1. CPU’nun kullanım durumu: Gerçek sistemlerde CPU’nun kullanım oranı %40 ile %90 arasındadır.
  2. Verim: Belirlenmiş zaman diliminde çalışmasını tamamlayan proses sayısı.
  3. Prosesi çalıştırmak için harcanan zaman: Prosesin sisteme sunulmasından bitişine kadar geçen zamandır ve prosesin bellekten okunması, kuyrukta beklemesi, işlemcide çalışması ve G/Ç işlemlerini yapması sürelerinin toplamından oluşur.
  4. Prosesin hazır (ready) kuyruğunda bekleme zamanı
  5. Cevaplama süresi: Değişken zaman paylaşımlı ortamlar için kullanılır ve istek sunulduktan sonra onun cevabının alınmasına kadar geçen zamandır.

Zamanlayıcı algoritmaları preemptive (kesintili) ve nonpreemptive (kesintisiz) olmak üzere 2 farklı gruba ayrılırlar. Bu iki grup arasındaki fark, kesintisiz algoritmalarda CPU aldığı prosesi tamamlayana kadar başka bir prosese geçmez. Kesintili algoritmalarda ise CPU aldığı prosesi yarıda bırakıp yeni bir prosesi işleme koyabilir. Bu iki algoritmaya örnek stratejiler aşağıdaki tabloda verilmiştir.


<< Çok Kuyruklu Algoritma (Multi-level Queues) | FCFS (First Come First Served – İlk Gelen Önce) Algoritması >>

You may also like...