Zamanlama (Scheduling)

tarafından
67
Zamanlama (Scheduling)

Zamanlama (Scheduling)Eğer bir bilgisayar çok programlı(multi programming) ise, sıklıkla birçok süreç aynı anda işlemciyi kullanmak için birbirleri ile yarışırlar.Bu durum aynı anda birden fazla sürecin hazır(ready) durumuna gerçekleşir.İşletim sisteminde, birden fazla hazır durumda bulunan bu süreçlerden hangisinin işlemciyi kullanacağına karar veren mekanizmaya zamanlayıcı(scheduler) denilir ve kullanılan algoritmaya da zamanlama algoritması (scheduling algorithm) denilir.Zamanlayıcı işlemciyi çok iyi kullanmalıdır ve işlemciden maksimum performans alınmasını sağlamalıdır.Süreçler arasında geçiş işlemi son derece pahalı bir işlemdir.*Yeni sürece geçiş işleminde, kullanıcı kipinden çekirdek kipine geçiş gerçekleşir.*Diğer sürece atlanmadan önce, mevcut sürecin tüm bilgisi saklanmalıdır.*Yeni sürecin bellek haritası bellek yönetim birimi (MMU) tarafından yüklenmelidir.*Sonunda yeni süreç çalıştırılmalıdır.*Ayrıca süreçler arası geçişte tüm önbellek(cache) verisi geçersiz hale gelir.*İşlemci tarafından yapılan her istek bir kaçırma(miss) olur ve bellek ten önbelleğe yüklenme gerektirir.Süreçlerin DavranışlarıNeredeyse tüm süreçler disk(I/O) işlemleri ile doludur. İşlemci bir süre çalışır, sonra bir dosya okumak ya da yazmak için bir sistem çağrısı yapılır.1İşlemciler hızlandıkça, süreçler daha fazla I/O istekli hale gelirler.

Zamanlamada temel fikir, I/O istekli süreçlere hemen bir şanş verilmeli ve kısa sürede I/O isteklerini yapmalarıdır.

a.daki duruma, işlem istekli(compute-bound)

b.deki duruma, girdi/çıktı istekli(I/O-cound)

Zamanlama (SCHEDULING) Ne zaman yapılmalıdır?

Zamanlamanın yapılmasına ihtiyaç duyulan zamanlar:

  1. Yeni bir süreç oluşturulduğunda, ana sürecin ya da çocuk sürecin çalıştırılmasının kararı verilmelidir. Bu iki süreçte hazır durumuna gelir.
  • Bir sürecin çalışması bittiğinde ve işlemciyi kullanmayı bıraktığında karar
  • Bir süreç I/O işlemi için bloklandığında başka bir süreç seçilmelidir.
  • Bir I/O kesmesi geldiğinde bir zamanlama kararı yapılmalıdır. Eğer kesme bir I/O cihazından geliyorsa, bu I/O cihazından gelecek olan veriyi bekleyen süreç çalıştırılmalıdır.

Bilgisayarlarda genelde bir donanım saati(clock) bulunur. Bu saat periyodik olarak işlemciye kesmeler gönderir.Bu kesmeler ile işlemci zamanlama işlemlerini gerçekleştirir.Zamanlama işlemi her saat kesmesinde ya da belirli sayıda olduğunda gerçekleştirilmelidir.Zamanlama algoritmaları, saat kesmelerini nasıl kullandıklarına göre ikiye ayrılır;a)Kesintisiz (non-preemptive) b)Kesintili (preemptive)

  1. Kesintisiz (non-preemptive): Bir süreç çalışması için seçilir. Kendi kodunda bulunan bir I/O isteği ile bloklanıncaya kadar ya da kendi isteği ile işlemciden çıkıncaya kadar çalışır.
  1. Kesintili (preemptive): Bir süreç seçilir ve sabit, belirli bir maksimum süreye kadar çalıştırılır. Bu süre bittiğinde, süreç hala işlemcide çalışıyorsa askıya alınır ve zamanlayıcı(scheduler) başka bir süreci çalışması için seçer.Algoritmalarının Kategorileri
    1. Toplu İş (batch): Kullanıcılar acil olarak cevap beklemedikleri için uzun süreli kesintili ya da kesintisiz zamanlama algoritmaları kullanılabilir. Süreç değişimi az olduğu için performans artar.
    1. Etkileşimli sistemlerde: Kullanıcının sürekli veri alıp verdiği sistemlerdir. Kesintili zamanlama zorunludur.
    1. Gerçek zaman sistemlerinde: Belirli bir amaç için kullanılan programlar olduğu için, sürelerin iyi ayarlandığı kesintili zamanlama algoritmaları kullanılmalıdır.Tüm sistemlerde;
      • Adil olma: Her süreç işlemciyi adil kullanmalıdır.
      • Politika Zorlama: Belirtilen politika kullanılmalıdır.
      • Denge: Sistein tüm parçaları meşgul olmalıdır.

      Toplu İş Sistemlerinde;*Üretilen İş: Saat başına üretilen iş maksimum olmalıdır.*Dönüş Süresi:Sürecin sunumu ve sonlanması arasındaki sürenin minumum olmasıdır.*İşlemci Kullanımı: İşlemci her zaman meşgul olmalıdır.Algoritmalarının amaçlarıEtkileşimli Sistemlerde;*Cevap Süresi: İsteklere hızlı şekilde cevap verilmelidir.*Oratılı Olma: Kullanıcının beklentilerini karşılamalıdır.Gerçek Zaman Sistemleri;*Son teslim süresine riayet etme: Veri kaybından sakınmalıdır.*Tahmin Edilebilirlik:Çoklu ortam sistemlerinde nitelikbozulmasından sakınmalıdır.