Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
İşletim Sistemleri (Operating Systems)
2
Process Zamanlama (Process Scheduling)
3
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Kısa vadeli process zamanlamada tek düzeyli kuyruk problem oluşturmaktadır. Öncelik değerleri birbirinden farklı process’ler için tek hazır kuyruğu (ready queue) yetersiz kalmaktadır. Bu probleme çözüm olarak çok düzeyli hazır kuyruğu (ready queue) kullanılmaktadır.
4
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Tek ve Çok Düzeyli Hazır (Ready) Kuyruk Yapısı
5
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Çok düzeyli kuyruk yapısında farklı process türleri için (örn, etkileşimli process’ler / arka plan process’leri) ayrı hazır kuyrukları bulunmaktadır. Process’ler, türlerine göre bir kuyruğa atanmaktadır. Process, belirli bir kuyruğa kalıcı olarak atanır.
6
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Farklı process türleri farklı zamanlama gereksinimlerine sahip olabilir. Her kuyruğun kendine ait bir process zamanlama algoritması bulunmaktadır. Ayrıca kuyruklar arasında öncelikli kesintili (preemptive) bir zamanlama algoritması bulunmaktadır.
7
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Her kuyruğun daha alt düzey kuyruğa göre önceliği bulunmaktadır. Bir process işlemciyi kullanırken daha yüksek öncelikli bir process çalışmaya başlayacağında çalışan düşük öncelikli process kesilir ve yeni yüksek öncelikli process çalıştırılır. Yani alt seviyedeki bir process işletilirken üst seviyedeki kuyruğa bir process geldiğinde mevcut process’in işletimi yarıda kesilir ve yeni gelen process işletime alınır.
8
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Çok Düzeyli Kuyruk (Multilevel Queue )
9
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Her kuyruk kendi zamanlama algoritmasına sahiptir. Örneğin ; Etkileşimli process’ler (Interactive processes) , Round Robin (RR) algoritması kullanılarak zamanlanabilir. Arkaplan process’leri (Background processes), First-Come, First- Served (FCFS) algoritması kullanılarak zamanlanabilir.
10
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Kuyruklar arasında işlemci kullanımı zamanlaması için diğer bir yöntem ise kuyruklar arasındaki zaman paylaşımıdır. Her kuyruğa belirli bir zaman dilimi tahsis edilir. Bu zaman içinde kuyruktaki process’ler arasında CPU paylaştırılır.
11
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Burada, her kuyruk CPU zamanının belli bir bölümünü kullanır; Örneğin, Etkileşimli process’ler (Interactive processes) kuyruğuna, RR zamanlaması için CPU süresinin yüzde 80'i verilebilirken, Arkaplan process’leri (Background processes) kuyruğuna FCFS zamanlaması için CPU süresinin yüzde 20'si kalır.
12
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Çok Düzeyli Kuyruk (Multilevel Queue )
13
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Gerçek hayatta bir bankada sıra bekleyen kişiler düşünüldüğünde; Örneğin banka kendi müşterilerine 1. önceliği verirken, kredi işlemi yapan müşterilere ikinci ve diğer müşterilere 3. önceliği verebilir. Burada problem olabilecek nokta, kıtlıktır (starvation). Yani sürekli olarak bankaya kendi müşterisi gelmesi durumunda, diğer müşterilere sıra asla gelmeyebilir. Bunun çözümü olarak, düşük seviyelerden, daha yüksek seviyelere belirli aralıklarla bazı kişilerin geçirilmesi gerekir.
14
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Çok düzeyli kuyruk zamanlama algoritması hazır kuyruğunu (ready queue) birkaç ayrı kuyruğa böler. Processler, genellikle bellek boyutuna, process önceliğine veya process türü gibi process’in bazı özelliklerine dayalı olarak bir kuyruğa atanır. Her kuyruk kendi zamanlama algoritmasına sahiptir. Aşağıda öncelik sırasına göre beş kuyruğa sahip çok düzeyli kuyruk zamanlama algoritmasına bir örnek inceleyelim: 1. System processes 2. Interactive processes 3. Interactive editing processes 4. Batch processes 5. Student processes
15
Çok Düzeyli Kuyruk Zamanlama (Multilevel Queue Scheduling)
Zamanlayıcı, ilk olarak hangi öncelik düzeyinden seçim yapacağına daha sonrada seçimini yaptığı öncelik düzeyinden hangi process’in seçileceğine karar verir. Yüksek öncelikli kuyruk, düşük öncelikli kuyruklar üzerinde mutlak öncelik sahibidir. Örneğin, System processes, Interactive processes ve Interactive editing processes için kuyruklar boş değilse Batch processes kuyruktaki hiçbir işlem çalışmayabilir. Bir Batch process iş süreci sırasında Interactive editing process hazır kuyruğa girdiğinde, Batch process önlenecektir.
16
Çok Düzeyli Geri Beslemeli Kuyruk Zamanlama (Multilevel Feedback Queue Scheduling)
Normalde, çok düzeyli kuyruk zamanlama algoritması kullanıldığında, process’ler, sisteme girdiklerinde bir kuyruğa kalıcı olarak atanır. Örneğin, etkileşimli process’ler (interactive processes) ve arkaplan process’leri (background processes) için ayrı kuyruklar varsa, processler bir kuyruktan diğerine geçmez. Bu durum, düşük zamanlama yükü avantajına sahiptir, ancak esnek değildir.
17
Çok Düzeyli Geri Beslemeli Kuyruk Zamanlama (Multilevel Feedback Queue Scheduling)
Buna karşılık, çok düzeyli geri beslemeli kuyruk zamanlama algoritması, bir process’in kuyruklar arasında hareket etmesine olanak tanır. Buradaki fikir, process’ler CPU kullanım özelliklerine göre ayrı kuyruklara alınmalıdır. Bu yapıda process’ler CPU kullanımlarına göre kuyruklara yerleşirler ve her CPU kullanımında diğer kuyruğa alınırlar. Bir process çok fazla CPU zamanı kullanıyorsa, daha düşük öncelikli bir kuyruğa taşınacaktır.
18
Çok Düzeyli Geri Beslemeli Kuyruk
Çok Düzeyli Geri Beslemeli Kuyruk Zamanlama (Multilevel Feedback Queue Scheduling) Çok Düzeyli Geri Beslemeli Kuyruk
19
Çok Düzeyli Geri Beslemeli Kuyruk Zamanlama (Multilevel Feedback Queue Scheduling)
Bu düzen, G/Ç bağlı ve etkileşimli process’leri yüksek öncelikli kuyruklar içinde bırakır. Buna ek olarak, düşük öncelikli bir kuyrukta çok uzun süre bekleyen bir process, daha yüksek öncelikli bir kuyruğa taşınabilir.
20
Çok Düzeyli Geri Beslemeli Kuyruk
Çok Düzeyli Geri Beslemeli Kuyruk Zamanlama (Multilevel Feedback Queue Scheduling) Çok Düzeyli Geri Beslemeli Kuyruk
21
Çok Düzeyli Geri Beslemeli Kuyruk Zamanlama (Multilevel Feedback Queue Scheduling)
Çok Düzeyli Geri Beslemeli Kuyruk yapısında process’ler ilk olarak zaman dilimi az olan en yüksek öncelikli kuyruğa konur. Bu zaman diliminde process tamamlanmazsa zaman dilimi biraz daha fazla olan bir alt kuyruğa aktarılır.
22
Çok Düzeyli Geri Beslemeli Kuyruklar (Multilevel Feedback Queue)
Üç kuyruk: Q0 – 8 milisaniye zaman kuantumlu Q1 – 16 milisaniye zaman kuantumlu Q2 – FCFS Bir process FCFS ile hizmet veren Q0 kuyruğuna girer. Process CPU’yu ele geçirdiğinde 8 ms süre verilir, bu process 8 ms’de bitmezse process Q1 kuyruğuna gider. Q1 kuyruğunda 16 ms daha hizmet görür. Eğer process bu süre ile hala tamamlanamazsa daha sonra Q2 kuyruğuna gönderilir ve burada FCFS yöntemiyle zamanlanır.
23
Çok Düzeyli Geri Beslemeli Kuyruklar (Multilevel Feedback Queue)
Bazı Kurallar : Kural 1: Eğer Öncelik (A)> Öncelik (B), A çalışır (B değil). Kural 2: Eğer Öncelik (A) = Öncelik (B), A & B Round Robin ile çalışır. Kural 3: Bir process sisteme girdiğinde, en yüksek önceliğe (en üst sıra) yerleştirilir. Kural 4a: Bir process, çalışırken quantum zamanının tamamını kullanmışsa, önceliği azaltılır (diğer bir deyişle bir sıra aşağı iner). Kural 4b: Bir process CPU’da işletime girmezse, aynı öncelik düzeyinde kalır. Kural 5: S zaman geçtikten sonra, sistemdeki tüm process’ler en üst kuyruğa taşınır.
24
Çok Düzeyli Geri Beslemeli Kuyruklar (Multilevel Feedback Queue)
Örnek: Çok kuyruklu geri beslemeli zamanlama algoritmasının kullanıldığı bir sistemde, process’lerin kuyruğa geliş zamanları ve işletim süreleri aşağıdaki gibidir. Process’lerin ne şekilde işletileceğini grafiksel olarak gösteriniz. (Not: Üst iki sevide, process’ler kuyruğa geldikleri sırada işletime alınmaktadır.) Process ID Varış süresi (arrival time) İşletim Süresi (Burst time) A 7 B 2 9 C 5 4 D 8 E
25
Çok Düzeyli Geri Beslemeli Kuyruklar (Multilevel Feedback Queue)
ÇÖZÜM Process ID Varış süresi (arrival time) İşletim Süresi (Burst time) A 7 B 2 9 C 5 4 D 8 E
26
Çok İşlemcili Zamanlama (Multiple-Processor Scheduling)
Çok işlemcili sistem birden fazla işlemciye (veya işlemci çekirdeği) sahiptir ve aynı anda birden fazla process’i gerçek paralel çalıştırabilirler. Birden fazla işlemci mevcut olduğunda işlemci zamanlaması daha karmaşıktır. Çok işlemcili zamanlama (Scheduling) için tek bir 'en iyi' çözüm mevcut değildir. İki tür çok işlemcili zamanlama yaklaşımı mevcuttur: Asimetrik Çoklu İşlem (Asymmetric multiprocessing -AMP) Simetrik Çoklu İşlem (Symmetric multiprocessing -SMP)
27
Çok İşlemcili Zamanlama (Multiple-Processor Scheduling)
Simetrik ve asimetrik çoklu işlem arasındaki en ayırt edilebilir nokta, Simetrik Çoklu İşlemde sistemdeki tüm işlemciler işletim sisteminde process’leri çalıştırabilirler. Ancak, Asimetrik Çoklu İşlemde yalnızca master işlemci işletim sisteminde process yönetimini gerçekleştirebilir. Slave işlemcilerin hangi process’leri çalıştıracağı master işlemci tarafından belirlenir. Simetrik Çoklu İşlem şu anda, çok işlemcili zamanlama için en yaygın kullanılan yaklaşımdır.
28
Çok İşlemcili Zamanlama (Multiple-Processor Scheduling)
Asimetrik Çoklu İşlem (Asymmetric multiprocessing -AMP) Simetrik Çoklu İşlem (Symmetric multiprocessing -SMP)
29
Çok İşlemcili Zamanlama (Multiple-Processor Scheduling)
Asimetrik Çoklu İşlem (Asymmetric multiprocessing - AMP) Simetrik Çoklu İşlem (Symmetric multiprocessing -SMP)
30
Asimetrik Çoklu İşlem (Asymmetric multiprocessing)
Asimetrik Çoklu İşlemde, işlemciler kendi arasında master-slave ilişkiye sahiptir. Slave işlemciyi denetleyen bir master işlemci vardır. Master işlemci, process’leri slave işlemcilere dağıtır. Asimetrik Çoklu İşlemdeki tüm işlemcilerin mimarileri aynı veya farklı olabilir. Bir master işlemci başarısız olursa, çalışmaya devam etmek için bir slave işlemci master işlemci konumuna getirilir. Bir slave işlemci başarısız olursa, görev diğer slave işlemcilere geçirilir.
31
Asimetrik Çoklu İşlem (Asymmetric multiprocessing)
32
Asimetrik Çoklu İşlem (Asymmetric multiprocessing)
G/Ç işlemlerinin ve diğer sistem tabanlı process’lerin tek bir işlemcide, diğer programların ise diğer işlemciler üzerinde çalıştırıldığı yöntemdir. Process’lerin zamanlaması, G / Ç işlemi ve diğer sistem faaliyetleri master işlemci tarafından kontrol edilir. Bu yöntemde, sadece bir işlemci sistem verilerine erişmekte ve verilerin paylaşımını en aza indirmektedir. Asimetrik Çoklu İşlem basittir, çünkü veri yapısını ve sistemdeki tüm faaliyetleri kontrol eden yalnızca bir işlemci bulunur.
33
Simetrik Çoklu İşlem (Symmetric multiprocessing -SMP)
Simetrik Çoklu İşlem, uygun yük dengeleme özelliğine ve daha iyi hata toleransına sahiptir. Bellek, tüm işlemciler arasında paylaşıldığından karmaşıktır. Simetrik Çoklu İşlemde bir işlemci arızası, hesaplama kapasitesinin azalmasına neden olur.
34
Simetrik Çoklu İşlem (Symmetric multiprocessing -SMP)
Bütün process’ler aynı hazır kuyruğunda olabileceği gibi her bir işlemcinin kendine özel hazır kuyruğu da olabilir. Her işlemci hazır kuyruğunu kontrol eder. Simetrik Çoklu İşlemdeki tüm işlemciler aynı mimariye sahiptir. Modern işletim sistemleri simetrik çoklu işlemi destekler.
35
Simetrik Çoklu İşlem (Symmetric multiprocessing -SMP)
Simetrik çoklu işlemde işlemciler paylaşımlı bellek kullandıklarından birbirleriyle iletişim içinde olmalıdırlar. Process’lerin bir işlemciden diğerine alındığı durumlarda işlemci üzerindeki process’e özel bilgiler sorun oluşturmaktadır. Bu nedenle birçok Simetrik çoklu işlem sisteminde process’lerin çalışmaya başladıkları işlemciler değiştirilmez.
36
Simetrik Çoklu İşlem (Symmetric multiprocessing -SMP)
Processlerin çalıştırıldıkları işlemcilerle bir akrabalığı olup, buna işlemci akrabalığı (processor affinity) denir. Zayıf işlemci akrabalığı (Soft affinity): Process’lerin başka işlemciye aktarılmayacağının temel olduğu ancak aktarımın olabileceği durumdur. İşletim sistemi bir process’i aynı işlemcide çalışmaya devam etmeye çalışacaktır, ancak garanti yoktur. Güçlü işlemci akrabalığı (Hard affinity): Kesinlikle aktarımın olmayacağı durumlar. İşletim sistemi, bir process’i aynı işlemci üzerinde çalışmaya devam ettirmeye zorlar. (Linux işletim sistemi, sistem çağrıları ile güçlü işlemci akrabalığı sağlar.)
37
Yük Dengeleme SMP sistemlerinde, mevcut işlemcileri tam olarak kullanmak için iş yükü tüm işlemciler arasında dengeli tutulmalıdır. Genellikle her işlemcinin kendi kuyruğunun bulunduğu sistemlerde gereklidir. Tek kuyruklu sistemlerde, herhangi bir işlemci process’leri ortak bir hazır kuyruğundan çekebilir. Bu durumda işlemcinin boşta kalma durumu pek oluşmamaktadır. Çoğu modern işletim sistemi, her işlemciye özel bir kuyruk atamaktadır.
38
Yük Dengeleme Yükün dengelenmesi iki yöntemle gerçekleştirilir;
Push migration : Özel bir process periyodik olarak her işlemci üzerindeki yükü kontrol eder. Dengesiz bir dağılım oluştuğunda boşta veya daha az yükü olan işlemcilere yükün eşit olarak paylaştırılması yapılır. Pull migration : Boş bir işlemcinin bekleyen process’leri yoğun bir işlemciden alması. Yük dengelemesi, işlemci akrabalığının (processor affinity) avantajlarını olumsuz etkileyebilir.
39
Çok İşlemcili Zamanlama (Multiple-Processor Scheduling)
Son zamanlarda, mimari eğilim, aynı fiziksel çip üzerine birden fazla işlemci çekirdeği yerleştirmektir. SMP sistemleri, çoklu thread yapıların aynı anda birden fazla işlemci üzerinde çalışmalarını sağlar. Intel işlemcilerinde hyperthread teknolojisi olarak bilinen simetrik çoklu thread çalışma ile thread’ler fiziksel işlemcilerin yanısıra mantıksal işlemcilerde de çalışabilmektedir. Böyle yapılarda zamanlayıcılar process’leri mantıksal işlemciler yerine ilk olarak fiziksel işlemciler üzerinde paylaştırmalıdır.
40
ÖDEV Scheduling Multithreaded Multicore Systems
Coarse-grained multithreading Fine-grained multithreading
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.