Kesintili Zamanlama (Preemptive Scheduling)

Yazan : Şadi Evren ŞEKER İşletim sistemi tasarımında önemli bir konu olan işlemci zamanlama algoritmalarına (CPU scheduling algorithms) göre de sırası gelen işlem bu bekleme sırasından alınarak görevlendirici (dispatcher) ismi verilen bir işlem tarafından CPU’ya gönderilir. CPU’da yine işlemci zamanlama algoritmasının izin verdiği kadar (ya bitene ya da belirli bir zaman geçene kadar) çalışan program ya biter ve hafızadan kaldırılır ya da tekrar bekleme sırasına bir sonraki çalışma için yerleştirilir. Yukarıda basitçe birden çok işlemin tek işlemcide nasıl çalıştığı anlatıldı şimdi bu bekleme sırası ile işlemci arasında zamanlama ilişkisini kuran işlemci zamanlama algoritmalarını (cpu scheduling algorithms) tanımaya çalışalım. Temel olarak 2 grupta incelenebilen bu algoritmalar:

Bu algoritmalar arasındaki temel fark işlemcinin bir işleme başladıktan sonra o işlemi bitirmeden başka işleme başlayıp başlamamasıdır. Örneğin işlemci sıradaki işlemi aldı ve bu işlem her ne olursa olsun 3ms sonra bekleme sırasına geri konulup yeni bir işlem alınacak dersek bu algoritmamız kesintili algoritma olmuş olur. Tersine işlemci bir işi aldıktan sonra ne olursa olsun işi bitirip öyle bir sonraki işlemi alacak (işlem yarım kalmayacak, kesilmeyecek) dersek o zaman algoritmamız kesmeyen algoritmaya örnek olmuş olur. Kesintili algoritmalara en meşhur örnek Round Robin algoritmasıdır. İşlemci zamanlama konusunda çok meşhur En kısa iş ilk (shortest job first, sjf), ilk gelen ilk çıkar (first in first out), ilk gelen son çıkar (first in last out) gibi algoritmalar ise kesmeyen algoritmalara örnektir.

Bu yazıyı beğendiyseniz, başkalarının da ilgisini çekebilirsiniz:


359 views

6 responses to “Kesintili Zamanlama (Preemptive Scheduling)”
  1. Zeynep Şadoglu says:

    Örnegin sırasıyla 4,3,2 birimlik A,B,C işleri var. Bu işlerden önce A nın 2 birimlik işi yapiılıyor.Sonra B nin işi yapılıp bitiriliyur. dAha sonra Anın 2 birimlik Cnin de 2 birimlik işi kalmış oluyor .SJF algoritmasına göre önce A mı yoksa C mi işlem görür. biraz acele olursa sevinirim. Teşekkürler..

  2. viensdans says:

    ahahaha cok acele olmus aradan bi sene gecmis hala cevap veren olmamis

  3. viensdans says:

    benim sorumun acele olmasina gerek yok.
    Explain the difference between preemptive and non-preemptive scheduling. Explain why the use of non-preemptive scheduling is less truly to be used in an centralized environment with a lot of processes.

  4. Şadi Evren ŞEKER says:

    Aslında soruya vakitlice cevap vermiştim ama Zeynep Hanım iki farklı yerde (diğer sorusu ve cevapı SJF başlığındadır) sorduğu için buradaki cevapsız kalmış gibi olmuş.

    Cevabınızı vermeden önce, site Türkçe olduğu ve bu yazıyı okuyan kişilerin daha iyi yararlanabilmesi için soruyu alıntılayım. Ardından cevabınız yazarım.

    Soru kısaca, preemptive ve non-preemptive scheduleing arasındaki farkı sormuş ki sorunun bu kısmının cevabı yukarıdaki yazıda var. Ayrıca soruda, merkezi olarak çok fazla işlemin çalıştığı ortamlarda neden non-preemptive (kesmeyen ) zamanlamanın kullanılmadığı sorulmuş.

    Bu soruya cevap olarak, işlemlerin, işlemciye erişimleri sırasında çok fazla bekliyor olmaları ve örneğin kısa bir işin çok uzun işi beklemek zorunda olması gösterilebilir.

    Örneğin 100 adet 1 birimlik iş ve 1 adet 100 birimlik iş olduğunu düşünelim, bu örnekte şayet 100 birimlik iş önce çalıştırılırsa, 100 adet iş bu işin bitmesini bekler.

    Şayet model kesintili olursa (preemptive) bu durumda, işlerin bitiş süreleri çok daha kısalacaktır.

    Bu anlamda, yukarıdaki Zeynep Hn.’ın sorusu ve bir örnek için http://www.bilgisayarkavramlari.com/2008/11/19/en-kisa-is-ilk-shortest-job-first/ adresindeki yazıyı okuyabilirsiniz.

  5. viensdans says:

    yazilar, algoritmalari anlamama cok yardimci oldu ve cevap icin ayrica cok tesekkur ederim. super ötesi.

  6. Cem says:

    Böyle bir çalışma yaptığınız için çok teşekkürler…

Leave a Reply


- 1 = yedi

Benzer Yazılar:

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Kesintili Zamanlama (Preemptive Scheduling)' isimli yazı 19 Nov 2008 tarihinde, saat: 14:19 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam359 defa okunmuştur.

Benzer yazıları işletim sistemleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Category: işletim sistemleri