SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
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.
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
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.
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?
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 .
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.
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
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.
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.
Round Robin Scheduling örneği:
----------------------------------------------------------------------------------------------------------------------
Time quantum
değişirse
------------------------------
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

Contenu connexe

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

CPU Sheduling

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Round Robin Scheduling örneği: ---------------------------------------------------------------------------------------------------------------------- Time quantum değişirse ------------------------------
  • 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