CPU zamanlama (scheduling) algoritmaları nelerdir? FCFS, SJF, Round Robin ve priority scheduling'i karşılaştırın.

Cevap

CPU scheduler, hazır kuyruğundaki (ready queue) process/thread'lerden hangisinin CPU'yu ne kadar süre kullanacağına karar verir. Hedefler birbiriyle çatışır: yüksek throughput, düşük bekleme süresi, düşük yanıt süresi (response time) ve adalet (fairness).

AlgoritmaPreemptive mi?AvantajDezavantaj
FCFS (First Come First Served)HayırBasit, adil sıraConvoy effect: uzun iş kısa işleri bekletir
SJF / SRTFSJF hayır, SRTF evetOrtalama bekleme süresi optimalİş süresi önceden bilinmez; uzun işler aç kalabilir (starvation)
Round RobinEvet (time quantum)İnteraktif sistemler için iyi yanıt süresiQuantum çok küçükse context switch maliyeti, çok büyükse FCFS'e döner
Priorityİkisi de olabilirKritik işler önceStarvation; çözümü aging (bekledikçe öncelik artar)
Multilevel Feedback QueueEvetDavranışa göre öncelik ayarlarAyarlaması karmaşık

Örnek: bekleme süresi hesabı

P1 = 24 ms, P2 = 3 ms, P3 = 3 ms aynı anda geliyor.

  • FCFS (P1, P2, P3): bekleme süreleri 0, 24, 27 -> ortalama 17 ms.
  • SJF (P2, P3, P1): bekleme süreleri 0, 3, 6 -> ortalama 3 ms.

Gerçek işletim sistemleri

  • Linux: 2.6.23'ten beri CFS (Completely Fair Scheduler) kullanıyordu; kernel 6.6 (2023) ile yerini EEVDF (Earliest Eligible Virtual Deadline First) aldı. Her iki yaklaşım da thread'lere "sanal çalışma süresi" üzerinden adil pay vermeye çalışır. Gerçek zamanlı işler için ayrıca SCHED_FIFO ve SCHED_RR sınıfları vardır.
  • Windows: öncelik tabanlı, preemptive ve dinamik öncelik artırma (priority boost) kullanan bir zamanlayıcıdır.

Kavramlar

  • Turnaround time: bitiş - geliş zamanı.
  • Waiting time: turnaround - çalışma süresi.
  • Response time: ilk kez CPU'ya alınana kadar geçen süre (interaktif sistemlerde en kritik metrik).
  1. Concurrency ile parallelism arasındaki fark nedir?Kolayİşletim SistemleriYazılım Müh.
  2. Race condition nedir? Bir örnekle nasıl önleneceğini gösterin.Ortaİşletim SistemleriYazılım Müh.
  3. Context switch nedir? Neden maliyetlidir?Ortaİşletim SistemleriYazılım Müh.
  4. Virtual memory ve paging nasıl çalışır? Page fault nedir?Zorİşletim SistemleriYazılım Müh.
  5. Mutex ile semaphore arasındaki fark nedir?Ortaİşletim SistemleriYazılım Müh.
  6. Deadlock nedir? Oluşması için gereken dört koşul nelerdir ve nasıl önlenir?Zorİşletim SistemleriYazılım Müh.

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle