CPU Planlama nedir?
CPU Zamanlama , başka bir işlem beklemedeyken hangi işlemin yürütmek için CPU'ya sahip olacağını belirleme işlemidir. CPU planlamasının ana görevi, CPU boşta kaldığında, işletim sisteminin yürütme için hazır kuyruğundaki mevcut işlemlerden en az birini seçmesini sağlamaktır. Seçim süreci CPU zamanlayıcı tarafından yürütülecektir. Hafızadaki yürütmeye hazır olan işlemlerden birini seçer.
Bu CPU planlama eğitiminde şunları öğreneceksiniz:
- CPU planlaması nedir?
- CPU Planlama Türleri
- Önemli CPU planlama terminolojileri
- CPU Zamanlama Kriterleri
- Aralık Zamanlayıcısı
- Dispatcher nedir?
- CPU planlama algoritması türleri
- Önce gelen alır
- Kalan En Kısa Süre
- Öncelik Tabanlı Planlama
- Round-Robin Planlama
- Önce En Kısa İş
- Çok Seviyeli Kuyruk Planlama
- Bir Zamanlama Algoritmasının Amacı
CPU Planlama Türleri
İşte iki tür Planlama yöntemi:
Önleyici Planlama
Önleyici Çizelgelemede, görevler çoğunlukla öncelikleriyle atanır. Bazen, düşük öncelikli görev hala çalışıyor olsa bile, daha düşük öncelikli bir görevden önce daha yüksek önceliğe sahip bir görevi çalıştırmak önemlidir. Daha düşük öncelikli görev bir süre tutulur ve daha yüksek öncelikli görev yürütmeyi bitirdiğinde devam eder.
Önleme Amaçlı Olmayan Planlama
Bu tür planlama yönteminde, CPU belirli bir sürece tahsis edilmiştir. CPU'yu meşgul tutan süreç ya bağlamı değiştirerek ya da sonlandırarak CPU'yu serbest bırakacaktır. Çeşitli donanım platformları için kullanılabilen tek yöntemdir. Bunun nedeni, önleyici zamanlama gibi özel bir donanıma (örneğin, bir zamanlayıcı) ihtiyaç duymamasıdır.
Planlama Önleme Amaçlı mı yoksa Önleme Amaçlı Değil mi?
Planlamanın önleyici olup olmadığını belirlemek için şu dört parametreyi göz önünde bulundurun:
- Bir işlem, çalışma durumundan bekleme durumuna geçer.
- Belirli süreç, çalışma durumundan hazır duruma geçer.
- Belirli süreç bekleme durumundan hazır duruma geçer.
- Süreç yürütmeyi bitirdi ve sona erdirildi.
Yalnızca 1 ve 4 koşulları geçerlidir, planlamaya önceliksiz denir.
Diğer tüm planlamalar önceliklidir.
Önemli CPU planlama terminolojileri
- Burst Süresi / Yürütme Süresi: İşlemin yürütmeyi tamamlaması için gereken süredir. Aynı zamanda çalışma süresi olarak da adlandırılır.
- Varış Saati: bir işlem hazır duruma girdiğinde
- Bitiş Zamanı: İşlem tamamlandığında ve bir sistemden çıktığında
- Çoklu programlama: Hafızada aynı anda bulunabilen bir dizi program.
- Jobs: Herhangi bir kullanıcı etkileşimi olmayan bir program türüdür.
- Kullanıcı: Kullanıcı etkileşimi olan bir tür programdır.
- İşlem: Hem iş hem de kullanıcı için kullanılan referanstır.
- CPU / IO burst döngüsü: CPU ve I / O etkinliği arasında değişen işlem yürütmeyi karakterize eder. CPU süreleri genellikle G / Ç süresinden daha kısadır.
CPU Zamanlama Kriterleri
Bir CPU planlama algoritması, aşağıdakileri en üst düzeye çıkarmaya ve en aza indirmeye çalışır:
Büyüt:
CPU kullanımı: CPU kullanımı, işletim sisteminin CPU'nun mümkün olduğunca meşgul kalmasını sağlamak için ihtiyaç duyduğu ana görevdir. Yüzde 0 ile 100 arasında değişebilir. Bununla birlikte, RTOS için, düşük seviyeli sistem için yüzde 40 ve yüksek seviyeli sistem için yüzde 90 aralığında olabilir.
Çıktı: Birim zamanda yürütmeyi bitiren işlemlerin sayısı, Performans olarak bilinir. Bu nedenle, CPU işlemi yürütmekle meşgul olduğunda, o sırada iş yapılır ve birim zamanda tamamlanan işe Throughput denir.
Küçültmek:
Bekleme süresi: Bekleme süresi, belirli bir işlemin hazır kuyruğunda beklemesi gereken miktardır.
Yanıt süresi: Talebin sunulduğu, ilk yanıtın üretildiği zamandır.
Geri Dönüş Süresi: Geri dönüş süresi, belirli bir işlemi yürütmek için geçen süredir. Belleğe girmek için, kuyrukta beklemek ve CPU üzerinde çalışmak için harcanan toplam sürenin hesaplanmasıdır. Sürecin gönderilmesi ile tamamlanma süresi arasındaki süre geri dönüş süresidir.
Aralık Zamanlayıcısı
Zamanlayıcı kesintisi, ön alımla yakından ilgili bir yöntemdir. Belirli bir işlem CPU tahsisini aldığında, belirli bir aralığa bir zamanlayıcı ayarlanabilir. Hem zamanlayıcı kesintisi hem de önleme, bir işlemi CPU patlaması tamamlanmadan önce CPU'yu geri döndürmeye zorlar.
Çoklu programlanmış işletim sistemlerinin çoğu, bir sürecin sistemi sonsuza kadar bağlamasını önlemek için bir çeşit zamanlayıcı kullanır.
Dispatcher nedir?
İşlemcinin sürece kontrolünü sağlayan modüldür. Dağıtıcı, her bağlam anahtarında çalışabilmesi için hızlı olmalıdır. Gönderim gecikmesi, CPU planlayıcısının bir işlemi durdurmak ve diğerini başlatmak için ihtiyaç duyduğu süredir.
Dispatcher tarafından gerçekleştirilen işlevler:
- Bağlam Değiştirme
- Kullanıcı moduna geçiliyor
- Yeni yüklenen programda doğru konuma gitme.
CPU planlama algoritması türleri
Başlıca altı tür işlem planlama algoritması vardır
- İlk Gelen İlk Servis (FCFS)
- En Kısa İş İlk (SJF) Planlama
- Kalan En Kısa Süre
- Öncelikli Planlama
- Round Robin Zamanlama
- Çok Düzeyli Sıra Planlama
Önce gelen alır
İlk Gelen İlk Hizmet, FCFS'nin tam biçimidir. En kolay ve en basit CPU planlama algoritmasıdır. Bu tür bir algoritmada, CPU'dan talep eden süreç önce CPU tahsisini alır. Bu planlama yöntemi bir FIFO kuyruğu ile yönetilebilir.
Proses hazır kuyruğa girdiğinde, PCB'si (Proses Kontrol Bloğu) kuyruğun kuyruğuna bağlanır. Dolayısıyla, CPU serbest kaldığında, kuyruğun başında sürece atanmalıdır.
FCFS yönteminin özellikleri:
- Önleyici olmayan ve önleyici zamanlama algoritması sunar.
- İşler her zaman ilk gelen, ilk hizmet esasına göre yürütülür
- Uygulaması ve kullanımı kolaydır.
- Bununla birlikte, bu yöntemin performansı zayıftır ve genel bekleme süresi oldukça yüksektir.
Kalan En Kısa Süre
SRT'nin tam biçimi En kısa kalan süredir. Aynı zamanda SJF önleyici zamanlama olarak da bilinir. Bu yöntemde süreç, tamamlanmasına en yakın olan göreve tahsis edilecektir. Bu yöntem, daha yeni bir hazır durum işleminin daha eski bir işlemin tamamlanmasını bekletmesini engeller.
SRT planlama yönteminin özellikleri:
- Bu yöntem çoğunlukla kısa işlerin tercih edilmesinin gerekli olduğu toplu ortamlarda uygulanır.
- Bu, gerekli CPU zamanının bilinmediği paylaşılan bir sistemde uygulamak için ideal bir yöntem değildir.
- Her işlemle, bir sonraki CPU patlamasının uzunluğu olarak ilişkilendirin. Böylece işletim sistemi bu uzunlukları kullanır ve bu da sürecin mümkün olan en kısa sürede planlanmasına yardımcı olur.
Öncelik Tabanlı Planlama
Öncelikli planlama, önceliğe dayalı süreçleri programlama yöntemidir. Bu yöntemde, zamanlayıcı önceliğe göre çalışacak görevleri seçer.
Öncelikli zamanlama, işletim sisteminin öncelik atamalarını dahil etmesine de yardımcı olur. Daha yüksek önceliğe sahip süreçler önce gerçekleştirilmelidir, oysa eşit önceliklere sahip işler round-robin veya FCFS temelinde gerçekleştirilir. Önceliğe bellek gereksinimleri, zaman gereksinimleri vb. Göre karar verilebilir.
Round-Robin Planlama
Round robin, en eski, en basit zamanlama algoritmasıdır. Bu algoritmanın adı, her bir kişinin sırayla bir şeyden eşit pay aldığı round-robin ilkesinden gelir. Çoğunlukla çoklu görevde zamanlama algoritmaları için kullanılır. Bu algoritma yöntemi, süreçlerin açlıktan ölmeden yürütülmesine yardımcı olur.
Round Robin Zamanlamasının Özellikleri
- Round robin, saat odaklı karma bir modeldir
- İşlenecek belirli bir görev için atanan zaman dilimi minimum olmalıdır. Ancak farklı süreçler için değişiklik gösterebilir.
- Olaya belirli bir zaman sınırı içinde cevap veren gerçek zamanlı bir sistemdir.
Önce En Kısa İş
SJF, (Önce en kısa iş) tam bir biçimidir, bir sonraki yürütme için en kısa yürütme süresine sahip sürecin seçilmesi gereken bir programlama algoritmasıdır. Bu planlama yöntemi önleyici olabilir veya olmayabilir. Yürütülmeyi bekleyen diğer işlemler için ortalama bekleme süresini önemli ölçüde azaltır.
SJF Çizelgelemesinin Özellikleri
- Tamamlanması gereken bir zaman birimi olarak her işle ilişkilendirilir.
- Bu yöntemde, CPU mevcut olduğunda, en kısa tamamlanma süresine sahip bir sonraki işlem veya iş ilk olarak yürütülecektir.
- Preemptif olmayan politika ile uygulanır.
- Bu algoritma yöntemi, işlerin tamamlanmasını beklemenin kritik olmadığı toplu iş tipi işleme için kullanışlıdır.
- Çoğunlukla daha kısa bir geri dönüş süresine sahip olan, önce gerçekleştirilmesi gereken daha kısa işler sunarak iş çıktısını iyileştirir.
Çok Seviyeli Kuyruk Planlama
Bu algoritma, hazır kuyruğu çeşitli ayrı kuyruklara ayırır. Bu yöntemde, işlemler, işlem önceliği, bellek boyutu vb. Gibi işlemin belirli bir özelliğine dayalı olarak bir kuyruğa atanır.
Ancak, işleri planlamak için diğer algoritma türlerini kullanması gerektiğinden, bu bağımsız bir planlama işletim sistemi algoritması değildir.
Çok Seviyeli Kuyruk Planlamasının Karakteristiği:
- Bazı özelliklere sahip işlemler için birden çok kuyruk tutulmalıdır.
- Her kuyruğun ayrı programlama algoritmaları olabilir.
- Her sıra için öncelikler verilmiştir.
Bir Zamanlama Algoritmasının Amacı
Planlama algoritması kullanmanın nedenleri şunlardır:
- CPU, verimliliğini artırmak için zamanlama kullanır.
- Rakip süreçler arasında kaynak ayırmanıza yardımcı olur.
- Çoklu programlama ile maksimum CPU kullanımı elde edilebilir.
- Yürütülecek işlemler hazır sırada.
Özet:
- CPU planlama, başka bir işlem beklemedeyken hangi işlemin yürütmek için CPU'ya sahip olacağını belirleme işlemidir.
- Önleyici Çizelgelemede, görevler çoğunlukla öncelikleriyle atanır.
- Önleme amaçlı olmayan zamanlama yönteminde, CPU belirli bir sürece tahsis edilmiştir.
- Patlama süresi, işlemin yürütmeyi tamamlaması için gereken süredir. Aynı zamanda çalışma süresi olarak da adlandırılır.
- CPU kullanımı, işletim sisteminin CPU'nun mümkün olduğunca meşgul kalmasını sağlaması gereken ana görevdir.
- Birim zamanda yürütülmesini bitiren işlemlerin sayısı, Performans olarak bilinir.
- Bekleme süresi, belirli bir işlemin hazır kuyruğunda beklemesi gereken bir miktardır.
- İlk yanıtın üretilmesine kadar talebin sunulduğu süredir.
- Geri dönüş süresi, belirli bir işlemi yürütmek için geçen süredir.
- Zamanlayıcı kesintisi, ön alımla yakından ilgili bir yöntemdir,
- Bir dağıtıcı, işlem için CPU'nun kontrolünü sağlayan bir modüldür.
- Altı tür işlem planlama algoritması şunlardır:
- İlk Gelen İlk Servis (FCFS), 2) En Kısa İş İlk (SJF) Çizelgeleme 3) Kalan En Kısa Süre 4) Öncelik Çizelgeleme 5) Round Robin Zamanlama 6) Çok Düzeyli Kuyruk Planlama
- First Come First Serve yönteminde, CPU'yu talep eden işlem önce CPU tahsisini alır.
- Kalan En Kısa zamanda, süreç, tamamlanmasına en yakın olan göreve tahsis edilecektir.
- Öncelik Çizelgeleme'de zamanlayıcı, önceliğe göre çalışacak görevleri seçer.
- Bu Round robin programlaması, her bir kişinin sırayla bir şeyden eşit pay aldığı ilkesel olarak çalışır
- En kısa görevde, ilk olarak en kısa yürütme süresi, bir sonraki yürütme için seçilmelidir.
- Çok düzeyli planlamada yöntem, hazır kuyruğu çeşitli ayrı kuyruklara ayırır. Bu yöntemde, işlemler belirli bir özelliğe göre bir kuyruğa atanır.
- CPU, verimliliğini artırmak için zamanlama kullanır.