O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
CPU Scheduling
İşlemci zamanlamak, çoklu işlem yapabilen işletim sistemlerinin temelini oluşturur. Bu işletim
sistemleri, ...
Dispatcher
İşlemleri Ready Queden CPU’ya yükleyen ardından da CPU’daki işlemleri RAM’e kaydeden
yani Context switch‘i gerç...
Scheduling Criteria
• CPU utilization (İşlemci kullanımı) : İşlemciyi olabildiğince meşgul tutmak.
o 100 birimlik bir işle...
Anúncio
Anúncio
Próximos SlideShares
İşletim sistemi
İşletim sistemi
Carregando em…3
×

Confira estes a seguir

1 de 11 Anúncio

CPU Sheduling

Baixar para ler offline

İşlemci zamanlamak, çoklu işlem yapabilen işletim sistemlerinin temelini oluşturur. Bu işletim
sistemleri, CPU kullanımını işlemler arasında değiştirerek bilgisayarlarımızı daha üretken hale getirirler.
Bu yazıda bu işlemlerin nasıl yapıldığı ve hangi kurallara uyulduğu anlatılmıştır.

İşlemci zamanlamak, çoklu işlem yapabilen işletim sistemlerinin temelini oluşturur. Bu işletim
sistemleri, CPU kullanımını işlemler arasında değiştirerek bilgisayarlarımızı daha üretken hale getirirler.
Bu yazıda bu işlemlerin nasıl yapıldığı ve hangi kurallara uyulduğu anlatılmıştır.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Anúncio

CPU Sheduling

  1. 1. CPU Scheduling İşlemci zamanlamak, çoklu işlem yapabilen işletim sistemlerinin temelini oluşturur. Bu işletim sistemleri, CPU kullanımını işlemler arasında değiştirerek bilgisayarlarımızı daha üretken hale getirirler. Tek çekirdekli sistemlerde birim zamanda sadece bir işlem çalışabilir. Diğer işlemlerin çalışabilmesi için işlemci çekirdeklerinin boşalması ve tekrar zamanlanabilir hale gelmesi gerekir. Çoklu programlamanın amacı ise işlemci kullanımını en üst düzeye çıkartmaktır. Basit bilgisayar sistemlerinde bir işlemin başlayabilmesi için diğer işlemin bitmesi gerekir. Örnek olarak işlemciye gelen bir I/O işlemi aslında o dakikadan itibaren bir bir başka cihazın işlem biriminde çalışıyor olsa da henüz o cihazdan cevap gelmeyip işlem tamamlanmadığından cevap gelene kadar CPU boşa çalışmış olur. Fakat çoklu programlama ile birlikte zamanı daha verimli kullanmaya başlarız. Birkaç işlem aynı anda bellekte barınabilir ve bu sayede bir işlem beklerken işletim sistemi CPU’yu bu işlemden uzaklaştırıp CPU’ya yeni bir işlem verebilir. Böylece işlem gücü boşa harcanmamış olur. Kaynakların zamanlanması verimlik bakımından çok önemlidir. Özellikle de en temel bilgisayar kaynağı olan işlemcinin zamanlanması bize büyük ölçüde verim sağlayacaktır. Tekrar Eden CPU ve I/O İşlem Döngüsü CPU zamanlamasının başarısı, gözlenen süreç özelliklerine bağlıdır. İşlem yürütme CPU yürütme döngüsünden ve I/O beklemesinden oluşur. İşlemler bu iki durum arasında değişmektedir. İşlemler yürümeye CPU burst ile başlarlar sonrasında bunu bir I/O burst takip eder ve bunu da bir başka CPU burst ve sonra tekrar I/O burst ve en son sistemin istemesiyle bir CPU burst ile çalışma durdurulur.
  2. 2. Dispatcher İşlemleri Ready Queden CPU’ya yükleyen ardından da CPU’daki işlemleri RAM’e kaydeden yani Context switch‘i gerçekleştiren birimdir. Process’leri taşırken kaldığı yerleri kaydedip tekrar çalışma durumunda kaldığı yerden devam etmesini sağlar.(Register’ları, program counter’ları kaldığı yerden devam ettirir.) Dispatch latency, dispatcher’ların bir programı sonlandırıp diğerini başlatması için gereken süre.(gecikme süresi) CPU Scheduler Bellekte(RAM) çalışmaya hazır halde bekleyen işlemlerden birini seçerek işlemciyi ona ayırır. CPU Scheduler kararlarını işlem; 1. Çalışma(running) durumundan bekleme(waiting) durumuna geçerken, 2. Çalışma(running) durumundan hazır(ready) durumuna geçişte 3. Bekleme(waiting) durumundan hazır(ready) durumuna geçişte 4. Sonlandığında(terminates) verir. • 1 ve 4 durumlarında yapılan zamanlama nonpreemptive(kesmeyen) • Diğer durumlar ise preemptive(kesen) o Tüm modern işletim sistemleri preemptive zamanlama algoritmalarını kullanırlar. Preemptive : SRTF, RR NonPreemptive : FCFS ,SJF, Priority
  3. 3. Scheduling Criteria • CPU utilization (İşlemci kullanımı) : İşlemciyi olabildiğince meşgul tutmak. o 100 birimlik bir işlem vaktinde CPU’ya bindirebildiğimiz işlem yükü. o Örneğin 100 birimlik bir işlem vaktinde CPU’ya 80 birim iş yaptırmışsak %80’lik bir CPU kullanımımız mevcuttur. • Throughput (Üretilen iş) : Birim zamanda bitirdiğimiz işlem sayısı. • Turnaraound time (Devir zamanı) : Bir işlemin sonlanana kadar geçirdiği toplam zaman. o Bir işlemin scheduler tarafından ready kuyruğundan seçilip işleminin bitmesine kadar geçen süre. o Başlangıcı ile bitişi arasındaki toplam zaman. • Waiting time (Bekleme zamanı) : Bir işlemin ready kuyruğunda geçirdiği toplam süre. Bekleme süresi. • Response time (Yanıt süresi) : Bir isteğin gönderilmesi ile bu isteğine verilen yanıt arasında geçen süre.
  4. 4. 1 - First-Come, First-Served Scheduling, "FCFS" CPU’nun, işlemleri gelme sırasına göre işleme aldığı zamanlama algoritmasıdır. FCFS’da ilk gelen işlem ilk yapılır, o bittikten sonra sıradaki işlem CPU’ya alınır ve bu düzen böyle devam eder. • İşlem önceliği, işlemlerin sıraya girme sıralarına göre belirlenir. • İşlem sırasının “Process 2, Process 3, Process 1” olması durumunda sonuç nasıl değişirdi?
  5. 5. Convoy effect : FCFS algoritması non-preemptive bir algoritmadır.,Yani bir işleme CPU zamanı tahsis edildiğinde, diğer işlemler yalnızca mevcut işlem bittikten sonra CPU zamanını alabilir. FCFS planlamasının bu özelliği, Konvoy Etkisi olarak adlandırılan duruma yol açar. Konvoy Etkisi'nde, yavaş bir süreç, tüm süreç kümesinin performansını yavaşlatır ve CPU zamanının ve diğer cihazların israfına yol açar. Konvoy Etkisinden kaçınmak için, Round Robin Scheduling gibi önleyici zamanlama algoritmaları kullanılabilir. Daha küçük işlemler CPU zamanı için fazla beklemek zorunda kalmaz .
  6. 6. 2. Shortest-Job-First Scheduling, "SJF" İşlemleri burst time’ı en küçük olan ilk sırada olacak şekilde sıralar ve bu sırada işleme koyar. SJF en optimal zamanlama algoritmasıdır. Verilen bir iş kümesi için minimum ortalama bekleme süresini(average waiting time) sağlar. Bu algoritmada dezvantaj işlemci kullanım sürelerini(burst time) tahmin etmektir. Not: Bu algortimanın çok verimli çalışmasına karşın sorunu bir işlemin çalışmadan önce burst time’ını bilemeyecek olmamızdır. İşlemlerin ancak çalıştıktan sonra ne kadar süre çalıştığını görebiliriz. Ama bunu anlamak için bazı analiz yöntemleri mevcut. Örneğin önceki verilere göre değerlendirimeler yapılabiliyor. Böylece bir sonraki işlemin ne kadar süreceği tahmin edilmeye çalışılıyor. Bir sonraki işlem üssel ortalama(exponential averaging) yöntemiyle sadece tahmin edilebilir. • Bu algoritmanın Preemptive versiyonuna “shortest-remaining-time-first” denir.
  7. 7. Shortest-remaining-time-first örneği: Yukarıda çözdüğümüz soruya bir de ready kuyruğuna gelme zamanını(arrival time) eklersek bu sorunun çözümü nasıl değişir? = ProcessStart - ArrivalTime ProcessFinish - ArrivalTime
  8. 8. 3.Priority Scheduling Her bir işleme öncelik sayısı (tamsayı) atanır. CPU en öncelikli olan işleme tahsis edilir. • En yüksek öncelik; en küçük tam sayıya aittir., (kabul bu yöndedir) Bu algoritmanın yanında getirdiği bir problem vardır. Bu da Starvation problemidir(açlık). Düşük öncelikli bir işlem üzerine ondan daha öncelikli işlemlerin çokça gelmesi durumunda az öncelikli işlemimiz asla CPU’yu kullanamaz. Bu sorunu gidermek için bir çözüm de vardır. Aging yöntemi(yaşlandırma) önüne aldığı her işlemde bu önceliği az olan işlemimizin önceliğini yavaş yavaş artırırız. Böylece bu önceliksiz işlem de sistem kaynaklarından yararlanabilir.
  9. 9. 4. Round Robin Scheduling, "RR" İşlemlerin belirlenen bir süreye göre sıra sıra işleme sokulmasıdır. İşlemlerin CPU’da kalabileceği maksimum süreye time quantum denir. İşlemler time quantum’a göre sıra sıra işleme girer ve çıkarlar. Sırası gelen işlem ready queue’den alınıp CPU’da işleme konur time quantum süresi bitmesi ardından ready queue’nın sonuna koyulur, ready queue’da hazır bekleyen işlem de CPU’ya verilir. Bir işlemin time quantum’dan önce tamamlanması halinde ise bir sonraki işleme geçilir. Time quantum’un artması ve azalmasıyla ortaya çıkan bazı problemler var. Bunlar; Çok yüksek time quantum belirlersek örneğin; Time quantum’a 1 yıl dersek; bu bir yılda sadece bir işlem çalışacak demek oluyor yani başka bir proses çalışmayacak. Tabi bu durumda işlem bir yıldan önce biteceği için. İşlem bittikten sonra öbür işlem gelecek … , Bir noktadan sonra aslında iş FCFS’a dönmüş oluyor. Time quantum’u çok düşük belirlememiz halinde de CPU’daki context switchlerin maliyeti artamaya başlıyor. Çünkü time quantum’u küçük belirlememiz çok sık process değişikliği yapmamıza sebep oluyor.
  10. 10. Round Robin Scheduling örneği: ---------------------------------------------------------------------------------------------------------------------- Time quantum değişirse ------------------------------
  11. 11. Multilevel Queue Şu ana kadar konuştuğumuz priority ve round-robin scheduling alogritmalarında tek bir kuyruk(queue) kullanılıyordu. Ve işlemler önceliklerine göre değerlendirip işleme konuyorlardı. Multilevel Queue yönteminde ise ready queue bölünerek başka queue’ler oluşturuyor. Bu aşamadan sonra öncelik sıraları işlem bazında değil de kuyruk bazında değerlendirilmeye başlanıyor. Kuyruklardan birinde çok yoğun işlerin görüldüğü işlemler barındırılırken, bir diğer kuyrukta ise işlem yükü pek de ağır olamayan hafif işler tutulmaya başlanıyor. İşlemleri öncelik sıralarına göre organize ettikten sonra da her bir kuyruk için başka bir zamanlama algoritması kullanabilir oluyoruz. Mesela işlem gücüne çok ihtiyaç duyduğumuz kuyruklarda (CPU yoğun işlemlerde) response time önemli olduğundan buna uygun olan Roud robin algoritmasını tercih ediyoruz. Öte yandan işlem önceliği çok olmayan düşük öncelikli işlemlerin tutulduğu kuyruklarda ise FCFS gibi bir algoritmayı kullanabiliriz. foreground (interactive), cpu yoğun işlemlerin bulunduğu queue’ler background (batch), CPU’nun nispeten daha az kullanıldığı arkaplan işleri

×