CPU Zamanlama Algorithms in OperaAyarlama Sistemleri

⚡ Akıllı Özet

CPU zamanlaması, işletim sisteminin bir sonraki çalıştıracağı hazır işlemi belirler.ping İşlemci meşgul ve İlk Gelen İlk Hizmet, En Kısa İş Önce, Öncelik ve Sırayla İşleme gibi algoritmalar aracılığıyla performansı iyileştiriyor.

  • 🔄 Tanım: CPU zamanlama, CPU'nun normalde boşta kalacağı durumlarda hazır kuyruktan bir işlem seçer.
  • 🇧🇷 Türleri: Öncelikli zamanlama, çalışan bir görevi kesintiye uğratabilirken, önceliksiz zamanlama ise görevin işlemciyi serbest bırakmasını bekler.
  • 📊 Kriterleri: İyi algoritmalar, bekleme, yanıt ve işlem sürelerini en aza indirirken, işlemci kullanımını ve verimliliği en üst düzeye çıkarır.
  • 🧮 Algorithms: FCFS, SJF, En Kısa Kalan Süre, Öncelik, Sıra Tabanlı Sıralama ve Çok Seviyeli Kuyruk yöntemlerinin her biri farklı iş yüklerine uygundur.
  • 🚦 Gönderici: Dağıtıcı, seçilen işleme CPU kontrolünü devreden bağlam değiştirme işlemini gerçekleştirir.
  • 🤖 Yapay Zeka Açısı: Makine öğrenimi zamanlama kararlarını optimize ederken, Copilot da zamanlayıcı algoritmalarının kodlanmasına ve test edilmesine yardımcı olur.

CPU Zamanlama Algorithms in OperaAyarlama Sistemleri

CPU Planlama nedir?

CPU Zamanlama CPU zamanlama, bir işlem beklemede iken hangi işlemin CPU'yu kullanacağını belirleme işlemidir. CPU zamanlamasının temel görevi, CPU boşta kaldığında işletim sisteminin, yürütme için hazır kuyrukta bulunan işlemlerden en az birini seçmesini sağlamaktır. Seçim işlemi, bellekte yürütmeye hazır olan işlemlerden birini seçen CPU zamanlayıcısı tarafından gerçekleştirilir.

CPU Planlama Türleri

İşte iki tür planlama yöntemi:

CPU Planlama Türleri

Önleyici Planlama

Öncelikli planlamada, görevler çoğunlukla önceliklerine göre atanır. Bazen, daha düşük öncelikli bir görev hala çalışıyor olsa bile, daha yüksek öncelikli bir görevi daha düşük öncelikli bir görevden önce çalıştırmak önemlidir. Daha düşük öncelikli görev bir süre bekler ve daha yüksek öncelikli görevin yürütülmesi tamamlandığında devam eder.

Önleyici Olmayan Planlama

Bu tür zamanlama yönteminde, CPU belirli bir işleme tahsis edilir. CPU'yu meşgul eden işlem, bağlam değiştirerek veya sonlanarak CPU'yu serbest bırakır. Öncelikli zamanlama gibi özel donanıma (örneğin, zamanlayıcıya) ihtiyaç duymadığı için çeşitli donanım platformlarında kullanılabilen tek yöntemdir.

Planlamada öncelikli (preemptive) veya öncelikli olmayan (nonpreemptive) durumlar ne zaman geçerlidir?

Planlamanın öncelikli mi yoksa önceliksiz mi olduğunu belirlemek için şu dört parametreyi göz önünde bulundurun:

  1. Bir süreç çalışma durumundan bekleme durumuna geçer.
  2. Belirli bir işlem, çalışma durumundan hazır durumuna geçer.
  3. Belirli bir işlem bekleme durumundan hazır durumuna geçer.
  4. Bir işlem yürütmesini tamamlar ve sona erer.

Yalnızca 1 ve 4 numaralı koşullar geçerliyse, planlamaya önceliksiz planlama denir. Diğer tüm planlama durumları öncelikli planlamadır.

CPU Planlamasıyla İlgili Önemli Terminolojiler

  • Patlama Süresi/Yürütme Süresi: Bir işlemin yürütülmesini tamamlaması için gereken süre. Buna çalışma süresi de denir.
  • Varış zamanı: Bir işlemin hazır duruma geçtiği zaman.
  • Bitirme zamanı: Bir işlemin tamamlanıp sistemden çıktığı zaman.
  • Çoklu programlama: Bellekte aynı anda bulunabilecek çok sayıda program.
  • Meslekler: Kullanıcı etkileşimi gerektirmeyen bir program türü.
  • Kullanıcı: Kullanıcı etkileşimi içeren bir program türü.
  • Proses: Hem iş hem de kullanıcı için kullanılan referans.
  • CPU/IO patlama döngüsü: İşlemci ve giriş/çıkış (I/O) faaliyetleri arasında geçiş yapan işlem yürütmesini karakterize eder. İşlemci süreleri genellikle I/O sürelerinden daha kısadır.

CPU Planlama Kriterleri

Bir CPU planlama algoritması aşağıdakileri en üst düzeye çıkarmaya ve en aza indirmeye çalışır:

CPU Planlama Kriterleri

Maksimuma çıkarmak

CPU kullanımı: CPU kullanım oranı, işletim sisteminin CPU'nun mümkün olduğunca meşgul kalmasını sağlaması gereken temel görevdir. Bu oran %0 ile %100 arasında değişebilir. Ancak, gerçek zamanlı işletim sistemleri (RTOS) için bu oran, düşük seviyeli bir sistemde %40'tan yüksek seviyeli bir sistemde %90'a kadar değişebilir.

Üretilen: Birim zamanda tamamlanan işlem sayısı, verimlilik olarak bilinir. Dolayısıyla, CPU bir işlemi yürütmekle meşgul olduğunda, iş yapılıyor demektir ve birim zamanda tamamlanan işe verimlilik denir.

Azaltmak

Bekleme süresi: Bekleme süresi, belirli bir işlemin hazır bekleme kuyruğunda beklemesi gereken süredir.

Tepki Süresi: Bu, talebin gönderildiği andan ilk yanıtın verildiği ana kadar geçen süredir.

Geri Dönüş Süresi: İşlem tamamlama süresi, belirli bir işlemin yürütülmesi için geçen süredir. Belleğe erişmek için bekleme, kuyrukta bekleme ve işlemcide yürütme için harcanan toplam süredir. İşlemin gönderilme zamanı ile tamamlanma zamanı arasındaki süre, işlem tamamlama süresidir.

Aralık Zamanlayıcısı

Zamanlayıcı kesintisi, önleme ile yakından ilgili bir yöntemdir. Belirli bir işlem CPU tahsisini aldığında, bir zamanlayıcı belirli bir aralığa ayarlanabilir. Hem zamanlayıcı kesintisi hem de önleme, bir işlemi CPU patlaması tamamlanmadan CPU'yu geri döndürmeye zorlar.

Çoğu çok programlı işletim sistemi, bir işlemin sistemi sonsuza dek meşgul etmesini önlemek için bir tür zamanlayıcı kullanır.

Dispatcher nedir?

Dağıtıcı, işlemcinin kontrolünü işleme sağlayan bir modüldür. Dağıtıcı hızlı olmalıdır, böylece her bağlam değiştirme işleminde çalışabilir. Dağıtım gecikmesi, işlemci zamanlayıcısının bir işlemi durdurup diğerini başlatması için gereken süredir.

Dağıtımcı tarafından gerçekleştirilen işlevler:

  • Bağlam değiştirme.
  • Kullanıcı moduna geçiliyor.
  • Yeni yüklenen programda doğru konuma taşınma.

CPU Planlama Türleri Algorithms

Esas olarak altı tür vardır süreç planlama algoritmaları:

  1. İlk Gelen İlk Servis (FCFS)
  2. En Kısa İş Öncelikli (SJF) Planlama
  3. Kalan En Kısa Süre
  4. Öncelikli Planlama
  5. Yuvarlak Robin Planlama
  6. Çok Düzeyli Kuyruk Planlama

Çizelgeleme Algorithms

Çizelgeleme Algorithms

Önce gelen alır

FCFS'nin açılımı şudur: Önce gelen alırBu, en kolay ve en basit CPU zamanlama algoritmasıdır. Bu algoritma türünde, CPU'yu talep eden işlem, CPU tahsisini ilk önce alır. Bu zamanlama yöntemi, FIFO kuyruğu ile yönetilebilir.

Bir işlem hazır kuyruğuna girdiğinde, PCB'si (İşlem Kontrol Bloğu) kuyruğun sonuna bağlanır. Bu nedenle, CPU boşaldığında, kuyruğun başındaki işleme atanmalıdır.

FCFS Yönteminin Özellikleri

  • Bu, önceliklendirme gerektirmeyen bir zamanlama algoritmasıdır.
  • İşler her zaman ilk gelene ilk hizmet esasına göre gerçekleştirilir.
  • Uygulaması ve kullanımı kolaydır.
  • Ancak bu yöntemin performansı zayıftır ve genel bekleme süresi oldukça yüksektir.

Kalan En Kısa Süre

SRT'nin açılımı En Kısa Kalan Süre'dir. Ayrıca SJF (öncelikli planlama) olarak da bilinir. Bu yöntemde, işlem, tamamlanmasına en yakın olan göreve atanır. Bu yöntem, daha yeni hazır durumdaki bir işlemin daha eski bir işlemin tamamlanmasını geciktirmesini önler.

SRT Planlama Yönteminin Özellikleri

  • Bu yöntem çoğunlukla kısa süreli işlere öncelik verilmesi gereken toplu işlem ortamlarında uygulanır.
  • Gerekli işlemci süresinin bilinmediği paylaşımlı bir sistemde bu yöntemi uygulamak ideal değildir.
  • Her işlem, bir sonraki CPU patlamasının süresiyle ilişkilidir; bu nedenle işletim sistemi, işlemi mümkün olan en kısa sürede planlamak için bu süreleri kullanır.

Önceliğe Dayalı Planlama

Öncelikli Planlama Bu, önceliklere dayalı olarak süreçleri planlama yöntemidir. Bu yöntemde, planlayıcı, üzerinde çalışılacak görevleri önceliklerine göre seçer.

Önceliklendirme planlaması, işletim sisteminin öncelik atamalarını gerçekleştirmesine de yardımcı olur. Daha yüksek önceliğe sahip işlemler önce yürütülürken, eşit önceliğe sahip işler sırayla veya ilk gelen ilk çıkar (FCFS) esasına göre yürütülür. Öncelik, bellek gereksinimlerine, zaman gereksinimlerine ve diğer faktörlere göre belirlenebilir.

Round-Robin Planlama

Yuvarlak robin En eski ve en basit zamanlama algoritmalarından biridir. Bu algoritmanın adı, her kişinin sırayla bir şeyden eşit pay aldığı "dönüşümlü dağıtım" ilkesinden gelir. Çoğunlukla çoklu görev sistemlerinde zamanlama için kullanılır. Bu yöntem, süreçlerin açlık olmadan yürütülmesini sağlamaya yardımcı olur.

Round-Robin Planlamanın Özellikleri

  • Round robin, zamanlama prensibine dayalı hibrit bir modeldir.
  • Bir görevin işlenmesi için ayrılan zaman dilimi minimum düzeyde olmalıdır. Ancak, bu süre farklı süreçler için değişiklik gösterebilir.
  • Belirli bir zaman sınırı içinde her işleme yanıt veren, zaman paylaşımlı bir sistem gibi davranır.

Önce En Kısa İş

SJF (Shortest Job First), en kısa yürütme süresine sahip işlemin bir sonraki işlem olarak seçildiği bir zamanlama algoritmasıdır. Bu zamanlama yöntemi öncelikli veya önceliksiz olabilir. Yürütülmeyi bekleyen diğer işlemlerin ortalama bekleme süresini önemli ölçüde azaltır.

SJF Planlamanın Özellikleri

  • Her iş, tamamlanması gereken belirli bir süre birimiyle ilişkilendirilmiştir.
  • Bu yöntemde, işlemci müsait olduğunda, tamamlanma süresi en kısa olan bir sonraki işlem veya görev önce yürütülür.
  • Bu, önleyici olmayan bir politika ile uygulanmaktadır.
  • Bu algoritma, işlerin tamamlanmasını beklemenin kritik olmadığı toplu işlem türleri için kullanışlıdır.
  • Önce daha kısa süren ve genellikle daha kısa işlem süresine sahip işleri yürüterek iş verimliliğini artırır.

Çok Seviyeli Kuyruk Planlama

Bu algoritma, hazır kuyruğu birkaç ayrı kuyruğa ayırır. Bu yöntemde, işlemler, işlem önceliği, bellek boyutu vb. gibi belirli bir özelliğine göre bir kuyruğa atanır.

Ancak bu, bağımsız bir zamanlama algoritması değildir; işleri zamanlamak için başka algoritma türlerini kullanması gerekir.

Çok Seviyeli Kuyruk Planlamasının Özellikleri

  • Benzer özelliklere sahip süreçler için birden fazla kuyruk tutulmalıdır.
  • Her kuyruğun kendine ait ayrı bir zamanlama algoritması olabilir.
  • Her kuyruğa öncelik atanır.

Zamanlama Algoritmasının Amacı

Zamanlama algoritması kullanmanın nedenleri şunlardır:

  • CPU verimliliğini artırmak için zamanlamayı kullanır.
  • Rekabet eden süreçler arasında kaynakları dağıtmanıza yardımcı olur.
  • Çoklu programlama ile işlemcinin maksimum verimliliğine ulaşılabilir.
  • Gerçekleştirilecek işlemler hazır bekleme kuyruğunda tutulur.

SSS

Tek bir en iyi algoritma yoktur. En kısa işi bitirme algoritması en düşük ortalama bekleme süresini verir ve kanıtlanabilir şekilde en iyisidir, ancak bilinen işlem sürelerine ihtiyaç duyar ve uzun süren işleri beklemeye alabilir. Sıra tabanlı algoritma ise zaman paylaşımlı sistemler için daha adildir.

Açlık durumu, daha yüksek öncelikli veya daha kısa süreli işlerin sürekli olarak işlemciyi önce kullanması nedeniyle bir işlemin süresiz olarak beklemesi durumudur. Bu durum, uzun veya düşük öncelikli işlemlerin asla çalışmayabileceği Öncelikli ve En Kısa İşlem Önceliği planlama yöntemlerinde yaygındır.

Yaşlandırma, uzun süre bekleyen süreçlerin önceliğini kademeli olarak artıran bir tekniktir. Bu, öncelik tabanlı planlamada kaynak kıtlığını önler, çünkü düşük öncelikli bir süreç bile sonunda çalıştırılabilecek kadar yüksek bir önceliğe ulaşır.

Bağlam değiştirme, mevcut sürecin durumunu kaydeder ve başka bir sürecin durumunu PCB'sinden yükler, böylece yürütme daha sonra devam edebilir. Bu, süreçler arasındaki her geçişte dağıtıcı tarafından ele alınan tamamen zamanlama yüküdür.

Uzun vadeli (iş) zamanlayıcı, hazır kuyruğuna kaç işlemin gireceğini kontrol eder ve çoklu programlama derecesini belirler. Kısa vadeli (CPU) zamanlayıcı ise hangi hazır işlemin bir sonraki çalışacağını seçer ve çok daha sık çalışır.

Linux, 6.6 çekirdeğinde Tamamen Adil Zamanlayıcı (CFS) yerine geçen EEVDF zamanlayıcısını kullanır. Windows Öncelik tabanlı, önleyici bir zamanlayıcı kullanır ve her öncelik seviyesinde sırayla zaman dilimlemesi yapar.

Makine öğrenimi modelleri, işlem patlama sürelerini tahmin eder ve bekleme süresini ve enerji kullanımını azaltmak için zamanlama politikalarını ayarlar veya seçer. Bu yapay zeka destekli zamanlayıcılar, veri merkezleri, bulut sunucuları ve gerçek zamanlı sistemler için incelenmektedir.

Evet. GitHub Copilot, Gantt şeması ve bekleme süresi hesaplamalarının yanı sıra FCFS, SJF, Öncelik ve Round Robin kodları da üretebilir. Çıktıya güvenmeden önce her zaman uç durumları, eşitlik bozma kurallarını ve ortalama süre formüllerini doğrulayın.

Bu yazıyı şu şekilde özetleyin: