ScholarGate
Asistan

CPU Zamanlaması

CPU zamanlaması, duyarlılık, verimlilik (throughput), adalet ve son teslim tarihlerine uyma gibi hedefleri dengeleyerek, bir işlemci üzerinde hangi hazır sürecin veya iş parçacığının (thread) çalışacağını belirleyen işletim sistemi işlevidir.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

CPU zamanlaması, bir işletim sisteminin, çalıştırılabilir süreçler veya iş parçacıkları arasından, belirlenen performans ve adalet hedeflerini optimize etmek amacıyla işlemciyi hangisine ve ne kadar süreyle tahsis edeceğini seçtiği politika ve mekanizmadır.

Kapsam

Bu konu, ilk gelen ilk hizmet alır, en kısa iş önce, sıra tabanlı (round-robin), öncelikli ve çok seviyeli geri beslemeli kuyruklar gibi zamanlama politikalarını ve bunların değerlendirmesini; öncelikli (preemptive) ve önceliksiz (non-preemptive) zamanlamayı; CPU kullanımı, verimlilik, tamamlanma süresi (turnaround time), bekleme süresi ve yanıt süresi kriterlerini; çok işlemcili sistemlerde ve gerçek zamanlı sistemlerde zamanlamayı kapsar. Zamanlanan görevlerin temsilini (süreç ve iş parçacığı yönetimi) ve senkronizasyonu (eşzamanlılık) kapsamaz.

Temel sorular

  • Zamanlama kalitesi hangi kriterlere göre ölçülür?
  • Yaygın zamanlama algoritmaları adalet ve verimlilik açısından nasıl farklılık gösterir?
  • Zamanlayıcı çalışan bir görevi ne zaman öncelikli olarak kesintiye uğratmalıdır?
  • Zamanlama, çok işlemcili sistemler ve gerçek zamanlı son teslim tarihleri için nasıl uyarlanır?

Anahtar kavramlar

  • ilk gelen ilk hizmet alır
  • en kısa iş önce
  • sıra tabanlı (round-robin) ve zaman dilimi (time quantum)
  • öncelikli zamanlama
  • çok seviyeli geri beslemeli kuyruklar
  • öncelikli (preemptive) ve önceliksiz (non-preemptive)
  • tamamlanma, bekleme ve yanıt süresi
  • açlık (starvation) ve yaşlandırma (aging)
  • gerçek zamanlı zamanlama

Temel kuramlar

Zamanlama hedefleri ve ödünleşimler
Hiçbir tek politika tüm hedefleri optimize etmez: en kısa iş önce, ortalama bekleme süresini minimize eder ancak uzun işleri aç bırakabilir; sıra tabanlı (round-robin) zamanlama, belirli bir verimlilik maliyetiyle yanıt süresini sınırlar; ve öncelikli şemalar açlık riskini taşır; bu nedenle zamanlayıcılar, iş yükleri için verimlilik, adalet ve duyarlılığı dengeler.

Mekanizmalar

Zamanlayıcı, bir süreç engellendiğinde, işlemciyi bıraktığında veya zaman dilimi (time quantum) dolduğunda çalışır ve politikasına göre hazır kuyruktan bir sonraki görevi seçer. Sıra tabanlı (round-robin) zamanlama her göreve sırayla bir zaman dilimi (time slice) verir; öncelikli ve çok seviyeli geri beslemeli kuyruklar, açlığı (starvation) önlemek için yaşlandırma (aging) kullanarak görevleri önem ve gözlemlenen davranışlarına göre sıralar. Öncelikli (preemptive) zamanlayıcılar, çalışan bir görevi kesintiye uğratarak daha yüksek öncelikli bir göreve geçebilir; bu, etkileşimlilik ve gerçek zamanlı son teslim tarihleri için esastır.

Klinik önem

Zamanlama, kullanıcı deneyimini ve sistem verimliliğini doğrudan şekillendirir: etkileşimli uygulamaların duyarlı hissettirip hissettirmediğini, toplu iş yüklerinin hızlı tamamlanıp tamamlanmadığını ve gerçek zamanlı görevlerin son teslim tarihlerine uyup uymadığını belirler. Linux gibi üretim sistemlerindeki zamanlayıcılar, bu rekabet eden hedefleri birçok çekirdek ve çeşitli iş yükleri arasında dengeler.

Tarihçe

Zamanlama sorunları, 1960'larda çoklu programlama (multiprogramming) ve zaman paylaşımı (time-sharing) ile ortaya çıkmış, bu dönemde işlemcileri paylaşmak için sıra tabanlı (round-robin) ve öncelikli şemalar geliştirilmiştir. Oran-monotonik (rate-monotonic) ve en erken son teslim tarihi önce (earliest-deadline-first) analizlerini içeren gerçek zamanlı zamanlama kuramı, 1970'lerde resmileştirilmiş ve modern çok çekirdekli zamanlayıcılar bu fikirleri birçok işlemciye genişletmiştir.

Tartışmalar

Adalet ile verimlilik ve öncelik arasındaki denge
Zamanlayıcılar, görevler arasındaki adaleti, verimliliği maksimize etme ve önceliklere saygı gösterme ile uzlaştırmalıdır; agresif önceliklendirme önemli görevleri iyileştirir ancak diğerlerini aç bırakma riskini taşır, katı adalet ise sistemi yetersiz kullanıma yol açabilir; bu nedenle pratik zamanlayıcılar dengeyi ayarlar.

Öne çıkan isimler

  • Edsger W. Dijkstra
  • Abraham Silberschatz
  • Andrew S. Tanenbaum
  • C. L. Liu
  • James W. Layland

İlgili konular

Temel eserler

  • silberschatz2018
  • tanenbaum2014os

Sıkça sorulan sorular

Öncelikli (preemptive) ve önceliksiz (non-preemptive) zamanlama arasındaki fark nedir?
Önceliksiz (non-preemptive) zamanlama, çalışan bir görevin işlemciyi engellenene veya bitene kadar elinde tutmasına izin verir. Öncelikli (preemptive) zamanlama ise, örneğin zaman dilimi dolduğunda veya daha yüksek öncelikli bir görev hazır hale geldiğinde, işlemciyi zorla geri alabilir; bu da duyarlılığı artırır ve gerçek zamanlı garantiler için gereklidir.
Açlık (starvation) nedir ve nasıl önlenir?
Açlık, daha yüksek öncelikli görevlerin sürekli öncelik alması nedeniyle bir görevin asla zamanlanmaması durumunda ortaya çıkar. Genellikle, uzun süre bekleyen görevlerin önceliğini kademeli olarak artıran yaşlandırma (aging) ile önlenir, böylece bu görevler sonunda çalışır.

Bu kavram için yöntemler

İlgili kavramlar