Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
İşletim Sistemleri (Operating Systems)
2
Process Zamanlama (Process Scheduling)
3
Ardışık Process Yürütümü (Sequential Execution)
Bir process temel olarak çalıştırılmakta olan bir programdır. Tek process’li işletim sistemlerinde process’ler ardışık yürütüm ile sırayla bir birleri ardından çalışırlar. Ana bellekte, sadece çalışmakta olan process ile ilgili bilgiler tutulur.
4
Eşzamanlı Process Yürütümü (Concurrent Execution)
Bir bilgisayar sisteminde paylaşılan kaynaklar arasında en önemli kaynak CPU’dur. Çok kullanıcılı (multi-user) ve çok programlı (multiprogramming) sistemlerde, aynı anda birden çok process işletilmesi zorunluluğu, CPU’nun bu processler arasında paylaştırılmasını gerektirir. Çoklu programlamada bellekte birden fazla process çalışmaya hazır beklerken, bu process’ler hangi sırayla çalıştırılacak?
5
Eşzamanlı Process Yürütümü (Concurrent Execution)
Eğer bir bilgisayar çok programlı (multi programming) ise, sıklıkla birçok process aynı anda işlemciyi kullanmak için birbirleri ile yarışırlar. Bu durum aynı anda birden fazla process’in hazır(ready) durumunda gerçekleşir. İşletim sisteminde, birden fazla hazır durumda bulunan bu process’lerden hangisinin işlemciyi kullanacağına karar veren process yer alır: zamanlayıcı/iş sıralayıcı (=scheduler) ve kullanılan algoritmaya da zamanlama algoritması (scheduling algorithm) denilir.
6
Process Zamanlama (Process Scheduling)
Çok programlı sistemlerin amacı aynı anda yürütülen process sayısını artırarak CPU’yu maksimum etkinliğe ve üretkenliğe kavuşturmaktır. Tek işlemcili sistemlerde aynı anda sadece bir process yürütülebilir. Birden fazla process olduğunda, bunlar CPU’nun işinin bitmesi için bekleyeceklerdir. Process’lerin görüntüde eşzamanlı olarak CPU üzerinde çalışabilmeleri için zamanlamalarının sağlanması gerekir. İşlemci zamanlama algoritmalarına göre sırası gelen process bekleme sırasından(Hazır Kuyruk) alınarak görevlendirici (dispatcher) ismi verilen bir işlem tarafından CPU’ya gönderilir.
7
Process Zamanlama (Process Scheduling)
CPU’nun bir process işletimini, devam etmek üzere bırakıp diğer bir process işletimine geçmesi anahtarlanma (switching) olarak adlandırılır. Process’lerin hangi sıra ve kurallar çerçevesinde anahtarlanacağını process yönetimi (process management) düzenler. CPU’nun, görüntüde eşzamanlı işletimi sağlamak üzere bir process işletimini bırakıp diğer bir process işletimine geçmesi belirli önlemler alınmadan yapılamaz, işletimin yarım bırakıldığı andaki process durum bilgilerinin saklanması gerekir (contex switching). Bu nedenle, her process için işletim sistemi tarafından bir veri yapısı tutulur (process control block). Process’ler arasında geçiş işlemi son derece maliyetli bir işlemdir.
8
Process Zamanlama (Scheduling)
Zamanlayıcı (Scheduler), bir process’i çalışması için seçer ve böylece process’in durumu hazırdan çalışıyor’a geçer. Zamanlayıcı (Scheduler), hazır durumda bulunan başka bir process’i seçer ve işlemcide çalışmasını sağlar. Zamanlayıcı işlemciyi çok iyi kullanmalıdır ve işlemciden maksimum performans alınmasını sağlamalıdır. Bu yüzden İşlemci mümkün olduğunca meşgul tutulmalıdır. Birim zamanda çalıştırılan process sayısını arttırmak önemlidir. Bir process’in başlatılmasından bitirilmesine kadar geçen toplam bitirilme zamanı asgari sürede tutulmalıdır.
9
Process Zamanlama (Process Scheduling)
10
Process Zamanlama (Scheduling)
Process zamanlama açısından, proseslerin çalışma zamanındaki davranışlarını iki farklı kip ile modellenebilir : i. Merkezi İşlem Birimini yoğun olarak kullanan process’ler ii. Yoğun Giriş/Çıkış işleminde bulunan process’ler Genel olarak, bir process’in çalışma zamanındaki davranışı bu iki kip arasında gidip gelecektir.
11
Process Zamanlama (Scheduling)
Process’lerin çalışma zamanındaki işlemciyi ve G/Ç sistemini kullanım davranışı
12
Process Zamanlama (Scheduling)
Bazı problemlerin çözümü yoğun olarak işlemciyi kullanmayı gerektirir. Örneğin bilimsel hesaplama gerektiren bir problemin çözümünü yapan process işlemci bağımlı olarak çalışır. Web sunucusu (örneğin, Apache web sunucusu) ise ağırlıklı olarak G/Ç sistemini (hem dosya sistemini hem de bilgisayar ağını) yoğun olarak kullanır. Bu nedenle G/Ç bağımlı bir process’tir. Zamanlayıcı, G/Ç bağımlı process’leri eğer G/Ç işlemleri disk üzerinde gerçekleşiyorsa, diski sürekli meşgul tutacak şekilde sıralamalıdır. Eğer G/Ç işlemleri bilgisayar ağı üzerinde gerçekleşiyorsa, zamanlayıcı process’leri bant genişliğinin tamamını kullanacak şekilde sıralamalıdır.
13
Zamanlama Kriterleri Zamanlama algoritmaları aşağıdaki kriterlere dikkat etmektedirler: CPU yararı (CPU utilizitation): İşlemcinin verimli kullanımı. CPU mümkün olduğu kadar meşgul edilmeye çalışılır. CPU yararı 0’dan 100’e kadar değişebilmektedir. (Normal sistem-40, yoğun sistem-90) Yapılan İş (Throughput): Birim sürede sonlandırılan process sayısı. Birim sürede tamamlanan toplam process sayısı sistem başarısını gösteren bir kriterdir.
14
Zamanlama Kriterleri Dönüş Süresi (Turn-around time):
Bir process’in yürütülmesi sırasında geçen süredir. Process’in dönüş süresi; belleğe yüklenirken, kuyrukta beklerken, CPU’da yürütülürken ve giriş/çıkış aygıtları tarafından tamamlanırken geçen sürelerin tamamıdır. Kısaca işletim ve bekleme sürelerinin toplamıdır. Bekleme Süresi (Waiting time): Process’in CPU tarafından yürütülene kadar, hazır durumdaki sırada geçirdiği süre bekleme süresi olarak adlandırılır. Bekleme süreci, process’lerin, ana işlem birimi (CPU) kullanımı dışındayken kaynak bekleyerek geçirdikleri sürenin toplamıdır.
15
Zamanlama Kriterleri Cevaplama Zamanı (Response time):
Process’lerin, ana işlem birimi (CPU) kullanımı için process kuyruğuna geldikten sonra, işlemciyi ilk olarak kullanmaya başladığı zamana kadar geçen süredir. Örneğin; P1 process’i sisteme 0. zamanda ulaşmış ve 0. zamanda işlemcide ilk kez çalıştırılmaya başlamıştır. Bu durumda cevap süresi (response time) 0. birimdir. P2 process’i sisteme 0. zamanda ulaşmış ve 2. zamanda işlemcide ilk kez çalıştırılmaya başlamıştır. Bu durumda cevap süresi (response time) 2. birimdir.
16
Özetle : Zamanlama Kriterleri
CPU kullanımı : CPU’yu mümkün olduğu kadar meşgul tutma, Verim : Bir zaman diliminde çalışması tamamlan process sayısı, Dönüş süresi : Bir process’in oluşturulmasından çalışmasının sonlanmasına kadar geçen süre, Bekleme süresi : Process’in hazır kuyruğundaki bekleme süresi, Cevap süresi : Process’in, kuyruğuna geldikten sonra, işlemciyi ilk olarak kullanmaya başladığı zamana kadar geçen süre.
17
Zamanlama Algoritma Türleri
Zamanlama algoritmalarını dört farklı gruba ayırmak mümkündür: 1. Kısa vadeli zamanlama (short-term scheduler) 2. Orta vadeli zamanlama (medium-term schedular) 3. Uzun vadeli zamanlama (long-term scheduler) 4. G/Ç zamanlama (I/O scheduler) Hazır sırası ile işlemci arasında zamanlama ilişkisini kuran işlemci zamanlama algoritmaları (CPU scheduling algorithms) çalışma türlerine göre 2 grupta incelenebilir: a) Kesintisiz (non-preemptive) b) Kesintili (preemptive)
18
Preemptive and Non-Preemptive Multitasking
Kesintisiz (Non Pre-emptive) çalışma : İşlemci bir process’e verildiğinde bu process’in işi tamamen bitinceye kadar işlemci başka bir process’e verilemez. Process kendi kodunda bulunan bir G/Ç isteği ile bloklanıncaya kadar ya da kendi isteği ile işlemciden çıkıncaya kadar çalışır. Kesintili (Pre-emptive) çalışma : Yürütülen process’in işlemciden kaldırılması ve istenilen başka bir process’in işlemcide yürütülmesi sağlanabilir.
19
Zamanlama Algoritma Türleri
Kesintisiz (non-preemptive) : Bu türdeki bir zamanlama algoritmasında bir process, işlemciyi kullanması için seçildikten sonra ancak kendi isteğiyle işlemciden çıkabilir. Process, bittiğinde veya kendi kodunda bulunan bir G/Ç isteği ile bloklanıncaya kadar işlemcide kalabilir. CPU’nun, process’in kendi isteği dışında başka bir process’e atanmadığı işletim şeklidir. Şayet çalışan process hiçbir kaynak talebi yapmadan sonsuz döngüye girerse, CPU’yu hiçbir zaman bırakmayacaktır. Ancak çalışan process’lerin kesmelere açık olması şartıyla bu durumun üstesinden gelinir.
20
Zamanlama Algoritma Türleri
Kesintili (preemptive) : Bir process’in, kendi isteğinin dışında CPU’yu bırakmak durumunda kalabildiği durumdur. Bir process işlemcide çalışmaya başladıktan sonra belirli bir süreye kadar çalıştırılır. Bu süre bittiğinde, process halen işlemcide çalışıyorsa askıya alınır ve zamanlayıcı başka bir process’i çalışması için seçer. yürütülen process’in CPU’dan kaldırılması ve istenilen başka bir process’in CPU’da yürütülmesi sağlanabilir.
21
Farklı İşletim Sistemleri için Zamanlama
CPU’yu kullanmak için birbiriyle yarışan process’lerin CPU’ya tahsisi, herbir process’e eşit zaman dilimleri verilerek yada process’lere öncelik düzeyi atanarak yapılabilir. Gerçek zamanlı (Real-time) sistemlerde bir işin belli bir zaman içerisinde gerçekleştirilmesi önemlidir, bu yüzden sürelerin iyi ayarlandığı kesintili (preemptive) zamanlama algoritmaları kullanılmalıdır. Son teslim süresine riayet etme: Veri kaybından sakınmalıdır. Çoklu ortam sistemlerinde nitelik bozulmasından sakınmalıdır.
22
Farklı İşletim Sistemleri için Zamanlama
Zaman paylaşımlı (Time-sharing) sistemlerde CPU’nun process’lere veya kullanıcılara eşit olarak paylaştırılması, Her process işlemciyi adil kullanmalıdır. İnteraktif sistemler (Interactive systems) kullanıcının sürekli veri alıp verdiği sistemlerdir. Bu yüzden kullanıcının verdiği komutlara alınan cevap süresi önemlidir. Kesintili (preemptive) zamanlama zorunludur. Cevap Süresi: İsteklere hızlı şekilde cevap verilmelidir. Orantılı Olma: Kullanıcının beklentilerini karşılamalıdır.
23
Farklı İşletim Sistemleri için Zamanlama
Toplu işlemler (Batch) ise bir işin tamamlanma süresi (çünkü kullanıcı ancak bu süre sonunda cevap alır) ön plandadır. Kullanıcılar acil olarak cevap beklemedikleri için uzun süreli kesintili (preemptive) ya da kesintisiz (non-preemptive) zamanlama algoritmaları kullanılabilir. Process değişimi az olduğu için performans artar. Üretilen İş: Saat başına üretilen iş maksimum olmalıdır. Dönüş Süresi: Sürecin sunumu ve sonlanması arasındaki sürenin minumum olmasıdır. İşlemci Kullanımı: İşlemci her zaman meşgul olmalıdır.
24
1. Kısa vadeli zamanlama algoritmaları
Koşabilir durumdaki process’lerden hangisinin seçileceği kısa vadeli zamanlamada karar verilir. Kısa vadeli zamanlayıcıya aşağıdaki durumlarda baş vurulur: İşlemciyi kullanmakta olan proses sona erdiğinde, işlemciyi bir sonra kullanacak process’in seçilmesi gerekir. İşlemciyi kullanmakta olan process G/Ç için beklemesini gerektirecek bir işlem yürütmesi durumunda işlemciyi terk etmesi ve işlemciyi bir sonra kullanacak process’in seçilmesi gerekir. İşlemciyi kullanmakta olan process, başka bir process tarafından alınmış bir kaynağa (semafor) erişmeye çalıştığında, kaynak bırakılıncaya kadar işlemciyi terk etmesi ve işlemciyi bir sonra kullanacak prosesin seçilmesi gerekir.
25
Zamanlama Algoritmaları (Scheduling Algorithms)
İlk Gelen Önce (First Come First Served-FCFS) Zaman Dilimli (Round Robin-RR) En Kısa İş (Shortest Job First-SJF) En Kısa İşletim Süresi Kalan (Shortest Remaining Time-SRT) Öncelik Tabanlı (Priority)
26
İlk Gelen Önce (First Come First Served FCFS)
Diğer bir adı ile de FIFO (First in- First out). En basit zamanlama algoritmasıdır. Bu sistemde CPU’ya ilk gelen process CPU’ya yerleştirilir. Process’ler geliş sıralarına göre bir sıra oluştururlar. Bir process, geldiğinde hazır durumdaki process sırasının en sonuna yerleştirilir. Kesintisiz (non-preemptive) türdeki bir zamanlama algoritmasıdır.
27
İlk Gelen Önce (First Come First Served FCFS)
Process’ler hazır kuyruğuna (ready queue) geliş sırasına göre işletilir. Kuyruktaki process’ler sırayla çalıştırılırlar. Çalışan process bloklanınca bekler. Bloklanmış process tekrar hazır durumuna geçtiğinde yeni bir process gibi davranılarak kuyruğun sonuna eklenir. Kısa süreli işler ve çoğunlukla veri alışverişi yapan process’ler için performansı çok kötüdür.
28
İlk Gelen Önce (First Come First Served FCFS)
Uzun processler yüzünden kısa process’ler gereksiz beklerler. Etkileşimli process’ler varsa etkin bir yöntem değildir, uzun cevap süreleri oluşabilir. I/O yoğun process’ler için uygun değildir. İlk Gelen Önce algoritması genelde diğer yöntemlerle birlikte kullanılır. Bu algoritma aynı öncelikli process’lerin kendi aralarında sıralaması için kullanılabilir.
29
İlk Gelen Önce (First Come First Served-FCFS)
Örnek: t=0’da hazır kuyruğuna P1,P2,P3,P4 ve P5 sırasında gelen 5 process olsun ve bu process’lerin işletim süreleri T ile gösterilsin. Her bir process’in bekleme ve tamamlanma sürelerini İlk Gelen Önce (First Come First Served FCFS) algoritmasına göre hesaplayınız. Process P1 P2 P3 P4 P5 İşletim Süresi (Burst Time) T(Pi) 200 110 300 150 50
30
Ek Bilgi Bekleme Süresi (waiting time):
Process’in işlemci tarafından yürütülene kadar, hazır durumdaki kuyrukta geçirdiği süre bekleme süresi olarak adlandırılır. Bekleme süresi = process başlangıç zamanı – kuyruğa varış zamanı waitingTime = startTime - arrivalTime Tamamlanma süresi (turnaround time) : Bir process’in oluşturulmasından çalışmasının sonlanmasına kadar geçen süre. Tamamlanma süresi aslında bir process’i yürütmek için gereken toplam zamanı ölçer. Tamamlanma süresi = işletim süresi + bekleme süresi = sonlanma zamanı – kuyruğa varış zamanı turnaroundTime = burstTime + waitingTime = finishTime- arrivalTime
31
Ek Bilgi-Gantt Şeması Gantt şeması, Henry Gantt tarafından proje bilgilerini ve ilerleyişini gösterme aracı olarak, 1915 yılında geliştirilmiştir. Gantt şeması, iş yada operasyonların başlangıcını, bitişini ve süresini gösterir. İşlerden bitmiş olan kısmı gölgelendirilerek gösterilir. İşlerin planın gerisinde mi ilerisinde mi olduğunu gösterir. Daha önceleri Gantt şeması, işler arasındaki ilişkileri gösteremediği için, kritik yolu çıkartamıyordu. Bilgisayar kullanımı ile beraber, bu zorluk aşılmıştır.
32
Çözüm Process P1 P2 P3 P4 P5 işletim Süresi (burst time) T(Pi) 200 110
Herbir process’in bekleme süresi; Tbekleme(P1)=0 Tbekleme(P2)= Ttoplam(P1)=200 Tbekleme(P3)= Ttoplam(P2)=310 Tbekleme(P4)= Ttoplam(P3)=610 Tbekleme(P5)= Ttoplam(P4)=760 Ortalama bekleme süresi =Σ(Tbekleme(Pi))/5 = ( )/5=376 Her bir process’in tamamlanma süresi; Ttoplam(P1)=T(P0)=200 Ttoplam(P2)= Ttoplam(P1)+T(P2)= =310 Ttoplam(P3)= Ttoplam(P2)+T(P3)= =610 Ttoplam(P4)= Ttoplam(P3)+T(P4)= =760 Ttoplam(P5)= Ttoplam(P4)+T(P5)=760+50=810 Ortalama bitiş süresi =Σ(Ttoplam(Pi))/5 = ( )/5=538 Process P1 P2 P3 P4 P5 işletim Süresi (burst time) T(Pi) 200 110 300 150 50 200 310 610 760 810 P1 P2 P3 P4 P5 Service time Gantt Şeması
33
İlk Gelen Önce (First Come First Served FCFS)
Örnek: Process’lerin, aşağıdaki tabloda verilen varış sürelerine göre hazır kuyruğuna katılacakları kabul edilirse, ilk gelen önce (First Come First Served-FCFS) algoritmasına göre process’lerin bekleme süreleri ve ortalama bekleme süresi ne olur? Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 1 ms 3 ms P3 2 ms 5 ms
34
Çözüm Bekleme süreleri (başlangıç zamanı – kuyruğa varış zamanı):
P1: 0-0= 0ms P2: 16-1= 15ms P3: 19-2= 17ms Ortalama bekleme süresi (toplam bekleme zamanı/process sayısı): Ortalama = ( )/3 = 10.7ms Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 1 ms 3 ms P3 2 ms 5 ms Gantt Şeması
35
Zaman Dilimli (Round Robin)
Kesintili (preemptive) türdeki bir zamanlama algoritmasıdır. Zaman Dilimli (Round Robin) algoritmasında process’ler eşit uzunluktaki zaman dilimlerinde işlemciye (CPU) sırayla anahtarlanırlar. İlk gelen önce algoritmasına göre process’ler kuyrukta dizilir. Çalışacak her process için quantum süresi (q) denilen sabit bir process süresi ayrılır ve CPU’ya gelen her process en çok bu süre kadar çalıştırılır.
36
Zaman Dilimli (Round Robin)
Bir process’den başka bir process’e geçiş işlemide (contex switching) sistemde belirli bir süre almaktadır. Örneğin; Process’ler arası değişim işleminin (contex switching) 1ms aldığını varsayalım. Quantum süresi 4ms seçilirse, contex switching 1ms alır. Dolaysıyla İşlemcinin %20 si yönetimsel ek yük işlemleri için harcanır. İşlemci etkinliğini arttırmak için, quantum süresi 100ms seçilirse, yönetimsel ek yük %1 olacaktır.
37
Zaman Dilimli (Round Robin)
Zaman Dilimli (Round Robin) algoritmada en önemli konu quantum süresidir. Quantum süresini çok kısa tutmak contex switching işlemi için çok zaman kaybı olacağından işlemci etkinliğini azaltır Quantum süresini çok uzun tutmak ise isteklere verilen cevabı azaltır ve İlk Gelen Önce (First Come First Served FCFS) algoritmasından bir farkı kalmaz process sonlanır boş zaman kalması bile söz konusu olur.
38
Zaman Dilimli (Round Robin)
Eğer process, quantum süresinin sonunda hala bitmezse CPU’daki işletimi durdurularak tekrar kuyruğun sonuna eklenir ve başka bir process’e geçilir. Process’in quantum süresi bitmeden process bloklanırsa ya da çalışması sonlanırsa başka bir process’e geçilir. Bu algoritmada yeni gelen process aynı anda işlem gören process’e göre kuyruklamada önceliklidir. Yeni gelen process hiç hizmet görmediği için hizmet gören process’e göre kuyrukta daha önceliklidir.
39
Zaman Dilimli (Round Robin-RR)
Örnek: Process’lerin, aşağıdaki tabloda verilen varış sürelerine göre hazır kuyruğuna katılacakları kabul edilirse, quantum süresi 4ms (q=4) olan bir Zaman Dilimli (Round Robin) zamanlama algoritmasına göre process’lerin bekleme süreleri ve ortalama bekleme süresi ne olur? Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 1 ms 3 ms P3 2 ms 5 ms
40
Zaman Dilimli (Round Robin-RR)
Bekleme süreleri (başlangıç zamanı – kuyruğa varış zamanı): P1: 0-0= 0ms P2: 4-1= 3ms P3: 7-2= 5ms Ortalama bekleme süresi (toplam bekleme zamanı/process sayısı): Ortalama = ( )/3 = 2.7 ms Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 1 ms 3 ms P3 2 ms 5 ms Gantt Şeması
41
En Kısa İş İlk Önce (Shortest Job First-SJF)
Kesintisiz (non-preemptive) türdeki bir zamanlama algoritmasıdır. Her bir proses, bir sonraki CPU kullanım süresinin uzunluğu ile ilişkilendirilir. Bu uzunluklar kullanılarak sonlanmak için en kısa süreye ihtiyaç duyan process ilk hizmet görür. Process’lerin toplam çalışma sürelerinin belirli olduğu düşünülür. Zamanlayıcı, kuyrukta bulunan process’lerden en kısa sürede tamamlanacak olan process’i seçer.
42
En Kısa İş İlk Önce (Shortest Job First-SJF)
Ortalama bekleme süresi düşünüldüğünde SJF optimumdur. Verilmiş bir process serisi için en düşük bekleme sürelerini elde etmiştir. Kısa işlere iyi hizmet verir. Etkileşimli ortamlara uygun değildir. Bu yöntemin problemi process’in sonlanması için ne kdar süre CPU kullanması gerektiğinin tahmin edilmesi gerekir.
43
En Kısa İş İlk Önce (Shortest Job First-SJF)
Örnek: t=0’da hazır kuyruğuna P1,P2,P3,P4 ve P5 sırasında gelen 5 process olsun ve bu process’lerin servis süreleri T ile gösterilsin. Her bir process’in bekleme ve tamamlanma sürelerini En Kısa İş (Shortest Job First) algoritmasına göre hesaplayınız. Process P1 P2 P3 P4 P5 işletim süresi (burst time) T(Pi) 200 110 300 150 50
44
işletim süresi (burst time)
Çözüm : Her bir process’in bekleme süresi; Tbekleme(P1)= 310 Tbekleme(P2)= 50 Tbekleme(P3)= 510 Tbekleme(P4)= 160 Tbekleme(P5)= 0 Ortalama bekleme süresi = Σ(Tbekleme(Pi))/5 = ( )/5=206 Her bir process’in tamamalanma süresi; Ttoplam(P1)=T(P1)+ T(P5)+ T(P2)+ T(P4)= =510 Ttoplam(P2)= T(P2)+ T(P5)=110+50=160 Ttoplam(P3)= T(P3)+ T(P5)+ T(P2)+ T(P4)+ T(P1)= =810 Ttoplam(P4)= T(P4)+ T(P5)+ T(P2)= =310 Ttoplam(P5)= T(P5)=50 Ortalama bitiş süresi =Σ(Ttoplam(Pi))/5 = ( )/5=368 Process 1 2 3 4 işletim süresi (burst time) T(Pi) 200 110 300 150 50 50 160 310 510 810 P5 P2 P4 P1 P3 Gantt Şeması
45
Kalan süresi en kısa olan ilk önce (Shortest-Remaining-Time-First –SRTF)
En Kısa İş ilk önce (Shortest Job First) algoritmasının kesintili (preemptive) bir uyarlamasıdır. Yeni gelen process’lerde göz önüne alınarak, sonlanmasına en az süre kalan process önce çalıştırılır. Yeni bir process geldiğinde, mevcut işlem gören process’in kalan süresi ile yeni process’in kalan süresi karşılaştırılır ve küçük olan tercih edilir. Çalışan process yeni gelen kısa bir process yüzünden kesintiye uğrayabilir.
46
Kalan süresi en kısa olan ilk önce (Shortest-Remaining-Time-First –SRTF)
En kısa işletim süresi kalan process’e öncelik sağlanarak biran önce sistemden çıkması ve bu yolla en kısa ortalama bekleme süresinin elde edilmesi amaçlanır. Kısa process’ler çabucak hizmet görebilir fakat uzun processler çok bekleyebilir. Zaman kaybı fazladır, çünkü kullanılan ve kalan süre hesabı yapılır ve kesintide contex switching vakit kaybettirir. Process’lerin sonlanma süreleri bilinmelidir. Kalan işletim süresi tam olarak ölçülebilen bir değer değildir!
47
Kalan süresi en kısa olan ilk önce (Shortest-Remaining-Time-First –SRTF)
Örnek: Process’lerin, aşağıdaki tabloda verilen varış sürelerine göre hazır kuyruğuna katılacakları kabul edilirse, Kalan süresi en kısa olan ilk önce (Shortest-Remaining-Time-First –SRTF) zamanlama algoritmasına göre process’lerin bekleme süreleri ve ortalama bekleme süresi ne olur? Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 3 ms P3 5 ms
48
Kalan süresi en kısa olan ilk önce (Shortest-Remaining-Time-First –SRTF)
Bekleme süreleri (başlangıç zamanı – kuyruğa varış zamanı): P1: 8-0= 8ms P2: 0-0= 0ms P3: 3-0= 3ms Ortalama bekleme süresi (toplam bekleme zamanı/process sayısı): Ortalama = ( )/3 = 3.7ms Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 3 ms P3 5 ms Gantt Şeması
49
En Kısa İşletim Süresi Kalan (Shortest Remaining Time)
Örnek: Process’lerin, aşağıdaki tabloda verilen varış sürelerine göre hazır kuyruğuna katılacakları kabul edilirse, Kalan süresi en kısa olan ilk önce (Shortest-Remaining-Time-First –SRTF) zamanlama algoritmasına göre process’lerin bekleme süreleri ve ortalama bekleme süresi ne olur? Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 1 ms 3 ms P3 2 ms 5 ms
50
En Kısa İşletim Süresi Kalan (Shortest Remaining Time)
Bekleme süreleri (başlangıç zamanı – kuyruğa varış zamanı): P1: 0-0= 0ms P2: 1-1= 0ms P3: 4-2= 2ms Ortalama bekleme süresi (toplam bekleme zamanı/process sayısı): Ortalama = ( )/3 = 0.7ms Process Varış süresi (arrival time) işletim süresi (burst time) P1 0 ms 16 ms P2 1 ms 3 ms P3 2 ms 5 ms Gantt Şeması
51
Öncelik Zamanlama (Priority Scheduling)
Kesintisiz (non pre-emptive) ve kesintili (preemptive) olarak uygulanabilir. Her process’e bir öncelik (priority) değeri atanır. Yeni bir process işlemcide çalışması için seçileceği zaman, en yüksek önceliğe sahip process’in çalışmasına izin verilir. Öncelik değeri Process Control Block içinde öncelik (priority) alt alanında tutulur. Düşük öncelik rakamı daha büyük önceliği ifade eder.
52
Öncelik Zamanlama (Priority Scheduling) Kesintisiz (non pre-emptive)
Örnek: 5 process’e ait işletim süreleri ve öncelik düzeyleri aşağıdaki gibi olsun. Herbir process’in bekleme ve tamamlanma sürelerini hesaplayınız (Tüm proseslerin t=0’da hazır kuyruğuna geldiği farzedilecektir). Process Varış süresi (arrival time) işletim süresi (burst time) Öncelik P1 200 4 P2 110 1 P3 300 3 P4 150 5 P5 50 2
53
Çözüm : P2 P5 P3 P1 P4 Gantt Şeması
P1 process’i en yüksek öncelikli olduğundan ilk önce işletilecektir. Daha sonra da sırasıyla P4,P2,P0 ve P3 işletilecektir. Her bir process’in tamamlanma süresi; Ttoplam(P1)=T(P1)+ T(P2)+ T(P5)+ T(P3)= =660 Ttoplam(P2)=T(P2)=110 Ttoplam(P3)=T(P3)+ T(P2)+ T(P5)= =460 Ttoplam(P4)=T(P4)+ T(P2)+ T(P5)+ T(P3)+ T(P1)= =810 Ttoplam(P5)=T(P5)+ T(P2)=50+110=160 Ortalama bitiş süresi = Σ(Ttoplam(Pi))/5 = ( )/5= 440 Herbir process’in bekleme süresi; Tbekleme(P1)= 460 Tbekleme(P2)= 0 Tbekleme(P3)= 160 Tbekleme(P4)= 660 Tbekleme(P5)= 110 Ortalama bekleme süresi = Σ(Tbekleme(Pi))/5 = ( )/5=278 110 160 460 660 810 P2 P5 P3 P1 P4 Gantt Şeması
54
Öncelik Zamanlama (Priority Scheduling) Kesintisiz (non pre-emptive)
Örnek: Process’lerin, aşağıdaki tabloda verilen varış sürelerine göre hazır kuyruğuna katılacakları kabul edilirse, öncelik zamanlama algoritmasına göre process’lerin bekleme süreleri ve ortalama bekleme süresi ne olur? Process Varış süresi (arrival time) işletim süresi (burst time) Öncelik P1 7 3 P2 10 1 P3 6 4 P4 15 2 P5
55
işletim süresi (burst time)
Çözüm Bekleme süreleri (başlangıç zamanı – varış zamanı): P1: 31-0= 31ms P2: 6-0= 6ms P3: 38-0= 38ms P4: 16-0= 16ms P5: 0-0= 0ms Ortalama bekleme süresi (toplam bekleme zamanı/process sayısı): Ortalama = ( )/5 = 18.2ms Process Varış süresi (arrival time) işletim süresi (burst time) Öncelik P1 7 3 P2 10 1 P3 6 4 P4 15 2 P5 Gantt Şeması
56
Öncelik Zamanlama (Priority Scheduling)
Örnek: Process’lerin, aşağıdaki tabloda verilen varış sürelerine göre hazır kuyruğuna katılacakları kabul edilirse, Kesintisiz (non pre-emptive) ve kesintili (preemptive) öncelik zamanlama (priority) algoritmasına göre process’lerin Gantt grafiklerini gerçekleştiriniz. Process ID Kuyruğa varış Zamanı (Arrival Time) İşletim süresi (Burst time) Öncelik (Priority) P1 2 7 9 P2 3 5 P3 4 P4 6 1 10
57
Çözüm Priority (Preemptive) Priority (Non Preemptive) Process ID
Kuyruğa varış Zamanı (Arrival Time) İşletim süresi (Burst time) Öncelik (Priority) P1 2 7 9 P2 3 5 P3 4 P4 6 1 10 Priority (Preemptive) P1 P2 P3 P4 2 3 4 6 10 16 17 Priority (Non Preemptive) P1 P3 P2 P4 2 9 11 16 17
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.