hafta 09: cpu planlama mİb planlama (mİb İü sıralama … · 2013. 4. 18. · algoritma...
TRANSCRIPT
1
HAFTA 09: CPU Planlama (MİB İş Sıralama-Scheduling)
MİB Planlama
Temel Kavramlar
Planlama Kriteri
Planlama Algoritmaları
Çoklu-İşlemci Planlama
Gerçek-Zamanlı Planlama
Algoritma Değerlendirmesi
İşlemci Planlamasında
Çoklu programlamada bellekte birden fazla proses çalışmaya hazır beklerken......
Bu prosesleri hangi sırayla çalıştırılacak? Kriterler • Adil
– Kaynaklara tüm proseslerce eşit ve adil erişim • Ayrımcı
– Farklı öncelikleri olan proseslerin desteklenmesi • Verim
– İşlemciyi mümkün olduğunca meşgul tutması
– Birim zamanda bitirilen iş sayısını arttırılması
– Bir prosesin başlatılmasından bitirilmesine kadar geçen toplam bitirilme zamanını asgariye indirmesi
Temel İçerik Çok programlı sistemlerin amacı aynı anda yürütülen işlem sayısını artırarak MİByi maksimum etkinliğe ve üretkenliğe kavuşturmaktır. Tek işlemcili sistemlerde aynı anda sadece bir işlem yürütülebilir. Birden fazla işlem olduğunda, bunlar MİBnin işinin bitmesi için bekleyeceklerdir.
Çok programlı sistemlerde birden fazla işlem bellekte tutulabilmektedir. İşlemci zamanlama algoritmalarına göre de sırası gelen işlem bekleme sırasından(Hazır Kuyruk) alınarak görevlendirici (dispatcher) ismi verilen bir işlem tarafından MİB’ya gönderilir.
Gönderici-Dispatcher İşte görevlendirici (dispatcher) bu işlemlerden sırası gelenin bekleme sırasından (ready queue) alınarak işlemciye gönderilmesi işlemini yerine getirir.
Bu fonksiyon şunları kapsamaktadır:
İçerik değişimi
Kullanıcı moduna geçiş
Programı tekrar başlatmak için kullanıcı programında uygun bölgeye geçişin sağlanması
Gönderici zamanı göndericinin bir işlemi bitirip diğerine geçişi arasındaki süredir. Gönderici mümkün olduğu karar hızlı olmalıdır.
Genel Anımsatma-Görev Yönetimi
Bilgisayar sistemlerinin verimli kullanımı, ana işlem birimi (MİB), ana bellek ve giriş/çıkış birimleri gibi kaynakların, programlar arasında paylaşılmasını gerektirir. Bir bilgisayar sisteminde paylaşılan kaynaklar arasında en önemli kaynak MİB dur. GÖREV bir programın işletimi sırasında aldığı addır. Her program için en az bir görev tanımlanır. MİBnin yönetimine, Görev Yönetimi de denir
2
Görev Yönetimi
MİB’nun bir programın işletimini, devam etmek üzere bırakıp diğer bir programın işletimine geçmesi anahtarlanma olarak adlandırılır. Programların hangi sıra ve kurallar çerçevesinde anahtarlanacağını görev yönetimi düzenler. Program durgun komut satırlarıdır. Görev ise bu komut satırlarının işletimidir.
Programların, ana belleğe yüklenebilmeleri, Giriş/çıkış birimlerinden okuma-yazma yapabilmeleri, Ek bellek alanlarını elde edebilmeleri,
Görevlerin ana işlem birimine anahtarlanarak çalıştırılmaları sonucu gerçekleşebilir.
Görev Yönetimi MİBnin, paralel işletimi sağlamak üzere bir işletimi bırakıp diğer bir işletime geçmesi belirli önlemler alınmadan yapılamaz. işletimin yarım bırakıldığı andaki durum bilgilerinin saklanması gerekir. Bu nedenle, her görev için işletim sistemi tarafından bir veri yapısı tutulur. Bu yapı, görev denetim öbeği, görev iskeleti gibi adlarla anılır.
8
Görev Durum Çizeneği
Sunuş Bitiş
Çalışır
Bekler
Hazır
İşlem çalışmaya alınıyor
İşlem kesiliyor
Bir program, işletimi sonlanana değin değişik işletim evrelerinden geçer.
(1) İşler, sisteme çalıştırılmak üzere sunulduklarında, iskeletleri çatılarak görev yada görevlere dönüştürülürler. Tanımları yapılan bu görevler, “hazır” görev sınıfına girerler
(2) Hazır görevlerden biri, bazı kıstaslara dayanılarak, ana işlem birimine yönlendirir ve “çalışır” göreve dönüşür.
11
(3) Çalışmakta olan bir görev değişik nedenlerle bu özelliğini yitirebilir. İşlem tümüyle sonlanmadan işletimine devam edemeyeceğinden “bekler” görev durumuna geçer ve ana işlem birimini bırakır.
(4) Çalışmakta olan bir görev, işletiminin bitmesi durumunda ana işlem biriminin yanı sıra genelde sistem içindeki tanımını ve varlığını da yitirir.
(5) Görevler ana işlem birimini kendilerinden kaynaklanmayan nedenlerle de bırakmak zorunda kalabilirler.
(6) Giriş/çıkış istemi, zaman uyumlama gibi nedenlerle bekler duruma geçen görevler, istemin yerine gelmesi halinde yeniden çalışmaya “hazır “ görev durumuna dönerler
3
MİB ve I/O Çalışma Sırasının Değişimi
İşlemci Planlama(CPU Scheduling) Programlama ve plan işletim sistemi fonksiyonunun temelini oluşturur.
Tabii ki, MİB’de bilgisayarın en önemli parçası olduğu için onun nasıl çalışacağına dair bir programın yapılması işletim sistemi tasarımının da merkezini oluşturur.
MİB boş kaldığında işletim sistemi sırada hazır bekleyen işlemlerden birini seçerek MİBye yerleştirmektedir.
Bu seçme işlemi kısa-dönem programlayıcı tarafından yapılmaktadır.
MİBye yerleştirilecek işlemin ilk gelen işlem olması şart değildir.
İşlemlerin sıralanması hiç sıralama kriteri düşünülmeden yapılabileceği gibi geliş sıralarına göre de sıralama yapılabilir.
Sıralama işinin yapılması için farklı programlama algoritmaları mevcuttur.
Kesintili(preemptive) ve Kesmeyen(non-preemptive) Kavramı
Hazır sırası ile işlemci arasında zamanlama ilişkisini kuran işlemci zamanlama algoritmalarını (cpu scheduling algorithms) temel olarak 2 grupta incelenebilir:
Kesintili algoritmalar (preemptive): yürütülen işlemin MİBden kaldırılması ve istenilen başka bir işlemin MİBde yürütülmesi sağlanabilir.
Kesmeyen algoritmalar (nonpreemptive): işlem MİBye yerleştikten sonra; işlem tamamlanıncaya veya durana kadar MİByi kullanır.
Kendi kodunda bulunan bir I/O isteği ile bloklanıncaya kadar ya da kendi isteği ile işlemciden çıkıncaya kadar çalışır.
MİB planlama
MİB planlaması aşağıdaki durumlardan biri olduğunda yapılmaktadır. 1. İşlemin yürütmeden bekleme duruma geçme
2. İşlemin yürütmeden hazır duruma geçme
3. İşlemin beklemeden hazır duruma geçme
4. İşlemin Durması
1. ve 4. durumlardaki planlama kesintisiz (nonpreemptive) planlama
Diğer tüm durumlar kesintili (preemptive) planlamadır.
Planlama Kriterleri -Scheduling
Criteria MİBi planlama algoritmasında MİBleri kıyaslamak için bir çok kriter bulunmaktadır. Kullanılan kriterler şunlardır:
MİB yararı (CPU utilizitation):MİB mümkün olduğu kadar meşgul edilmeye çalışılır. MİB yararı 0’dan 100’e kadar değişebilmektedir. (Normal sistem-40, yoğun sistem-90)
Yapılan İş(Throughput): Birim zamanda yapılan işlem sayısı miktarı yapılan iş olarak adlandırılır. (saniyede, saatte yapılan işlem)
Dönüş Süresi( Turnaround time): Bir işlemin yürütülmesi sırasında geçen süredir. İşlemin dönüş süresi; belleğe yüklenirken, işlem sırasında beklerken, MİBde yürütülürken ve giriş/çıkış aygıtları tarafından tamamlanırken geçen sürelerin tamamıdır.
Planlama Kriterleri -Scheduling
Criteria Bekleme Süresi( Waiting time): İşlemin MİB 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.
Cevaplama Zamanı(Response time): İşlemin MİB idaresine bırakılışından, sistemin ilk cevabı gelişine kadar geçen süre yanıtlama zamanı olarak adlandırılır. Bu süre sistemin cevap vermeye başladığı ana kadar geçen süredir. Bu zaman, çıkış aygıtlarının sisteme cevap verme süresi ile karıştırılmamalıdır.
4
Özetle-Planlama Kriterleri
MİB kullanımı – MİB’yu mümkün olduğu kadar meşgul tutma, Verim – Bir zaman diliminde çalışması tamamlan proses sayısı, Dönüş süresi– Bir prosesin oluşturulmasından çalışmasının sonlanmasına kadar geçen süre Bekleme süresi– Prosesin hazır kuyruğundaki bekleme süresi Yanıt süresi– Bir prosese bir talep iletildiğinde ilk cevabın gelmesine kadar geçen süre
Ara Soru
Yanıtlama süresi ve dönüş süresi arasındaki farkı açıklayınız? Bu iki kere zamanlama programlarının etkinliğini ölçmek için kullanılır. Gerekli mi?
Yanıt : Gerçekleştirme süresi, MİB yürütme, hazır kuyrukta bekleyen, ve I
/ O yapan, bir süreç belleğe almak için beklenen ve harcanan tüm dönemlerin toplamıdır. Gerçekleştirme süresi aslında bir işlemi yürütmek için gereken toplam zamanı ölçer.
Yanıtlama süresi, diğer taraftan, bir istek ve üretilen ilk tepki arasında geçen zaman ölçüsüdür.
MİB-Çalışma Zaman Diyagramı
Görev Dağıtıcı Görev dağıtıcı, kısa-dönem planlayıcı tarafından seçilen prosese MİB’nun kontrolünü verir. Bu işlem aşağıdaki adımları takip eder:
Bağlam değişimi Kullanıcı moduna geçiş Programı yeniden başlatmak için kullanıcı programında uygun konuma atlama
Dağıtım gecikmesi– Görev dağıtıcısının bir prosesi durdurup, başka bir prosesi çalıştırmasına kadar geçen süredir.
KISA DÖNEMLİ PLANLAMA Hazır görev durumundan çalışır duruma geçişler hazır görevler kuyruğundan merkezi işlem birimine anahtarlanma işlemleri görev yönetimince kısa dönemli planlama olarak ele alınır. Hazır görevler kuyruğunda bir görevin eksilmesi, yada kuyruğa yeni bir görevin eklenmesi, durumlarında GÖREV YÖNETİCİ ana işlem birine anahtarlanarak kendisinden sonra işletilecek görevin belirlenmesini sağlar.
ORTA DÖNEMLİ PLANLAMA
Çalışan bir görevin bitmesi sonucu ana bellekte yer açılması yada hazır görevler kuyruğunda bekleyen görev sayısının azalması durumlarında; Orta dönemli planlama kesimi, dönem dönem işletime girerek bellekte yer bekler kuyruğundan hazır görevler kuyruğuna girdi sağlayan bir kesim olarak düşünülür
5
UZUN DÖNEMLİ PLANLAMA Sisteme toplu işlem düzeninde sunulan işler, toplu işlem kuyruğuna bağlanırlar. Bu kuyrukta bekleyen işlerin hazır görevler kuyruğuna bağlanmaları İŞ YÖNETİMİ kapsamında ele alınır. Bazen işler, toplu işlemin yanı sıra etkileşimli işlem bağlamında da sunulurlar. Ancak etkileşimli işlem düzeninde sunulan işler beklemeksizin doğrudan görevlere dönüştürülüp, hazır görevler kuyruğuna eklenirler.
26
Yönetim Algoritmaları
Sistem başarısını gözeten görev yönetimi Ana işlem biriminin verimli kullanımı
Birim sürede sonlandırılan iş sayısı
Ortalama iş tamamlanma süresi
Bekleme süresi
Yanıt süresi
gibi kıstasları gözeten algoritmalar kullanır.
Optimizasyonu
Maksimum MİB kullanımı
Maksimum verim
Minimum çevrim süresi
Minimum bekleme süresi
Minimum cevap süresi
Yönetim Algoritmaları İlk gelen önce: Görevlerin eş öncelikli olarak ele alındığı ve görevlerin, hazır görevler kuyruğuna geliş sırasında işletildiği, çok yalın bir yönetim algoritmasıdır. En kısa işletim süresi kalan önce: En kısa işletim süresi kalan göreve öncelik sağlanarak bir an önce sistemden çıkması ve bu yolla en kısa ortalama bekleme süresinin elde edilmesi amaçlanır. Diğer algoritmalar içinde, kuramsal olarak, ortalama bekleme süresi yönünden en iyi sonucu veren algoritmadır. Ancak kalan işletim süresi ölçülebilen bir değer değildir.
Yönetim Algoritmaları
Öncelik tabanlı: Her görevin bir önceliği bulunur. Bu öncelik değeri görev iskeleti içinde, öncelik alt alanında tutulur. Çok yüklü sistemlerde, yüksek öncelikli işlerin, sistemde hiç eksik olmaması yüzünden düşük öncelikli işlerin işletimleri, aşırı boyutlarda gecikebilir. Zaman dilimli: Hazır görevler kuyruğunda bekleyen görevler, eşit uzunluktaki zaman dilimleri içinde ana işlem birimine, sırayla anahtarlanır. Çok kuyruklu: Değişik yönetim algoritmalarının olumlu yanlarını bir araya getirmek ve sakıncalarını azaltmak üzere kullanılır.
6
Bir İş Sıralama Algoritmasında ne
Önemlidir?
İlk gelene-İlk servis First-Come First-Serve (FCFS)
Planlaması En basit MİB programlama algoritması ilk gelene-ilk hizmet (first come, first served (FCFS)’dır. Diğer bir adı ile de FIFO (First in- First out)
Bu sistemde MİBye ilk gelen işlem MİBye yerleştirilir. İşlemler geliş sıralarına göre bir sıra oluştururlar. Bir işlem, MİBye geldiğinde hazır durumdaki işlem sırasının en sonuna yerleştirilir.
FCFS Planlaması
Proseslerin P2 , P3 , P1 sıralamasına sahip olduğu varsayılırsa:
Gantt grafiğine göre planlama şu şekildedir : Bekleme süreleri P1 = 6; P2 = 0; P3 = 3 Ortalama bekleme süresi: (6 + 0 + 3)/3 = 3 Önceki örnekten daha iyidir. Konvoy etkisi oluşur. Uzun bir proses MİB’a hakim olur diğer prosesler işlemcinin serbest kalmasını bekler.
P1 P3 P2
6 3 30 0
First-Come First-Serve (FCFS) (İlk Gelene-İlk Servis)
Algoritması
Proses Çalışma Süresi P1 24 P2 3 P3 3
Proseslerin P1 , P2 , P3 sırasıyla geldiğini varsayalım.
Planlamanın Gantt Grafiği:
Bekleme süresi: P1 = 0; P2 = 24; P3 = 27 Ortalama bekleme süresi: (0 + 24 + 27)/3 = 17
P1 P2 P3
24 27 30 0
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.
Shortest-Job-First (SJF) (En kısa iş İlk Hizmet Görür)
Planlaması
Her bir proses, bir sonraki MİB kullanım süresinin uzunluğu ile ilişkilendirilir. Bu uzunluklar kullanılarak en kısa süreye ihtiyaç duyan proses ilk hizmet görür. İki tür :
İşlem üstünlüğü kullanılmayan - Engellemesiz(Non-preemptive): İşlemci bir prosese verildiğinde bu prosesin işi tamamen bitinceye kadar işlemci başka bir prosese verilemez. İşlem üstünlüğü kullanılan - Engellemeli(Preemptive): O an için işlemciyi kullanan prosesin kalan kullanım süresinden daha kısa süreye sahip bir proses gelirse, işlemciyi kullanan proses engellenir ve işlemci yeni prosese devredilir. Bu yöntem “Kalan süresi en kısa olan ilk hizmet görür” (Shortest-Remaining-Time-First –SRTF) olarak bilinir.
Ortalama bekleme süresi düşünüldüğünde SJF optimumdur.Verilmiş bir proses serisi için en düşük bekleme sürelerini elde etmiştir.
7
Kısa-iş öncelikli Planlama – Shortest-Job-First (SJF)
Bu yaklaşımda en kısa süreye sahip olan işlem MİByi kullanabilir.
Eğer iki işlem aynı uzunlukta ise, bu durumda FCFS prensibine göre önce gelen işlem MİByi kullanabilir.
Zorluk - gelecek işlemlerin uzunluğu bilmek oldukça zor olmaktadır. İşlem Süresinin tahmini için kullanılan yöntemler bulunmaktadır.
Kısa-iş öncelikli Planlama İşlem İşlem Süresi (Burst Time)
P1 6
P2 8
P3 7
P4 3 SJF planlama çizelgesi
Ortalama Bekleme Zamanı = (3 + 16 + 9 + 0) / 4 = 7
P4 P3 P1
3 16 0
9
P2
24
İşlem üstünlüğü kullanılmayan SJF
Proses P1 P2 P3 P4
Geliş Zamanı (sn) 0 2 4 5
P1 P2 P4
0 3 7 8
• Proseslerin bekleme zamanı: P1=0, P2=6, P3=3, P4=7
• Ortalama bekleme zamanı: (0+6+3+7)/4 = 4
İşlemci zamanı (sn) 7 4 1 4
12 16
P3
•Proseslerin bekleme zamanı = Bitme zamanı – Belleğe konma zamanı – İşlemci zamanı
İşlem üstünlüğü kullanılan SJF
Proses
P1
P2
P3
P4
Geliş zamanı (sn)
0
2
4
5
P1 P2 P4
0 2 4 5
• Proseslerin bekleme zamanı: P1=9, P2=1, P3=0, P4=2
• Ortalama bekleme zamanı: (9+1+0+2)/4 = 3
CPU zamanı (sn)
7
4
1
4
7 11
P3 P2
16
P1
•Proseslerin bekleme zamanı = Bitme zamanı – Belleğe konma zamanı – İşlemci zamanı
Kısa-iş öncelikli Planlama (preemptive )
P1 P2 P4 P1 P3
0 1 5 10 17 26
P1, P2, P 3 ve P4 işlemlerinin preemptive özellik taşıyan SFJ algoritması ile sıralanması
NONPREEMPTİVE P1, P2,P4, P3
İşlem Erişim zamanı Süre
P1 0 8
P2 1 4
P3 2 9
P4 3 5
Kısa-iş öncelikli Planlama (preemptive ) Ortalama bekleme zamanı ise: =6,5 msn’dir. Bu şekilde davranan sistem “preemptive” özelliğini taşımaktadır.
Bekleme süresi nonpreemptive bir sistem için 7,75 msn olmaktadır.
8
FCFS ile Karşılaştırma
FCFS:10.25 SJF:7
Bir Sonraki MİB Kullanım Süresinin
Belirlenmesi
Uzunluk sadece tahmin edilebilir.
Önceki işlemci kullanım sürelerinin eksponansiyel ortalamaları kullanılarak uzunluk tahmin edilebilir.
.t nnn 11
:Çıkar Denklem Aşağıdaki 4.
10 , 3.
değer tahminiüretilmişiçin süresi kullanım CPU Sonraki = 2.
sin.= 1.
1+
≤≤αα
τ
uzunluğuinsürekullanımCPUnt
n
n
Bir Sonraki MİB Kullanım Süresi Uzunluğunun Tahmini
Üstel(Exponansiyel) Ortalama Örneği =0
n+1 = n
Yakın tarihin bir etkisi yoktur.
=1 n+1 = tn
Sadece bir önceki MİB kullanım süreleri kullanılır.
Eğer formülü genişletirsek: n+1 = tn+(1 - ) tn -1 + … +(1 - )j tn -1 + … +(1 - )n=1 tn 0
ve (1 - ) birden küçük veya eşit olduğundan , her başarılı bir dönemin ağırlığı kendisinden öncekilerden daha düşük olacaktır.
Öncelik Planlaması Öncelik sayıları (integer) proseslerle birleşiktir. MİB, prosesin en yüksek önceliklhangisi ise ona ayrılır. (en küçük sayı en yüksek öncelik). İşlem üstünlüğü kullanılmayan - Engellemesiz(Non-
preemptive): İşlem üstünlüğü kullanılan - Engellemeli(Preemptive):
Problem Açlık – düşük öncelikli proses asla çalışmaz.
Çözüm bekleme kuyruğunda çok bekleyene (Yaşlanma)– gibi özel zaman sürecinin göre yeni bir öncelikle ilemesi sağlanır.
9
Öncelikli (Priority) Planlama Her işlemin sahip olduğu bir öncelik değeri mevcuttur. Bu programlama prensibine göre de, en yüksek önceliğe sahip işlem MİBde önce yapılır. Eğer işlemler eşit önceliğe sahiplerse, önce gelen işlem daha önce yapılır.
SJF algoritması aslında bir öncelikli planlama algoritmasıdır. Öncelik değeri, işlem zamanının tersi ile elde edilmektedir.
Öncelikler genelde belli sayı aralıklarında olmaktadır; örneğin 0’den 7’ye, 0’dan 400’e kadar. Fakat burada küçük sayının daha az öncelik olmasını gerektiren bir zorunluluk yoktur, bazı sistemlerde “0” en fazla “öncelik” için kullanılabilmektedir.
Öncelikli (Priority) Planlama
Örnek olarak, aşağıda verilen işlemleri ve özelliklerini ele alalım :
(Düşük değer yüksek öncelik) İşlem Süresi Öncelik
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
Öncelik programlaması kullanıldığında zaman işlem sırası aşağıdaki gibi olmaktadır.
Ortalama bekleme zamanı ise 8,2 msn olmaktadır.
Bunu Nasıl Geliştirebiliriz?
Round Robin (RR) Her bir proses, MİB süresinde kısa bir zaman dilimini
(kuantum süresi) kullanır. Genellikle bu 10-100 milisaniye kadardır. Zamanı geçen prosesler durdurulur ve ready (hazır) kuyruğunun sonuna eklenir.
Ready kuyruğunda n tane proses varsa ve kuantum süresi q olmak üzere, her proses MİB zamanının 1/n’ini alır. Hiçbir proses (n-1)q zaman diliminden daha fazla bekleyemez.
Performans q büyük ise FIFO q küçük ise q bağlam değişiminde (contex switch)
geçen süreden büyük olmalıdır. Aksi halde MİB üzerindeki yük fazla olacaktır.
Round Robin (RR) Round- robin algoritması, zaman paylaşımlı sistemler için tasarlanmıştır.
MİB programlayıcısı hazır durumdaki işlemleri zaman aralığına bağlı olarak MİBde yürütür.
RR algoritmasını uygulayabilmek için hazır durumdaki işlem sırası FIFO algoritmasına göre sıralanır.
Yani yeni işlemler de hazır durumdaki sıraya eklenir. MİB programlayıcısı hazır durumdaki sıradan ilk işlemi alır, ve zamanlayıcının 1 zaman aralığı (time quantum) sonunda kesme göndermesi sağlanır.
RR Örneği Time Quantum = 4
İşlem Süre (Burst Time) P1 24 P2 3 P3 3 Gantt Şeması
P1 için bekleme (10-4) = 6 , P2=4 , P3 = 7 bekleme süresine sahiptir.
Ortalama bekleme zamanı = 17/3 = 5.66
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
10
Zaman Kuantum = 20 ile RR Örneği
Proses Çalışma Süresi P1 53 P2 17 P3 68 P4 24 n Gantt Grafiği:
Genel olarak, ortalama dönüşü SJF'den yüksektir. Fakat cevap vermesi süresi daha iyidir.
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Zaman Kuantumu ve Bağlam Değiştirme Zamanı
Zaman Kuantumu ile Tur Süresi Değişimi
Çoklu Seviyeli Kuyruk
Ready(hazır) kuyruğu ayrı kuyruklara bölünür: ön tarafta (etkileşimli) arka tarafta(batch)
Her kuyruğun planlanmış algoritması vardır: ön tarafta– RR arka tarafta– FCFS
Planlama kuyruklar arasında yapılmalıdır. Sabit öncelikli planlama; (arka plan daha sonra, ön processler tüm hizmet). Açlık olasılığı. Zaman dilimi – (her sıra kendi süreçleri arasında zamanlayabilirsiniz, MİB belli bir zaman miktarı alır, yani, RR ön plana %80 öncelik sırası arka plan da ise FCFS %20
Çoklu Seviyeli Kuyruk Planlama
Çoklu Seviyeli Geri Bildirim Kuyruğu Bir proses, değişik kuyruklar arasında yer değiştirebilir; bu yolla gelişme de sağlayabilir.
Çok düzeyli geri bildirim kuyruğu planlaması şu parametrelerle tanımlanabilinir:
Kuyruk sayısı
Her kuyruk için bir algoritma planlaması
Proses seviyesinin artırılacağı zamana karar verme
Proses seviyesinin azaltılacağı zamana karar verme
Prosesin hizmet ihtiyacı duyduğunda hangi kuyruğa giriş yapacağına karar verme
11
Çoklu Seviyeli Geri Bildirim Kuyruğuna
Örnek
Üç kuyruk: Q0 – 8 milisaniye zaman kuantumlu
Q1 –16 milisaniye zaman kuantumlu Q2 – RR
Planlama: Bir iş RR (İlk gelen ilk hizmet görür kuralı) ile hizmet veren Q0 kuyruğuna girer. İş MİB’yu ele geçirdiğinde 8 milisaniyelik süre verilir, bu iş 8 milisaniyede bitmezse iş Q1 kuyruğuna gider.
Q1 kuyruğunda RR ile 16 milisaniye daha hizmet görür. Eğer işlem hala tamamlanamazsa engellenir ve Q2 kuyruğuna gönderilir.
Çoklu Seviyeli Geri Bildirim Kuyrukları
Çok İşlemcili Planlama
Çoklu proses mevcut olduğunda ise MİB planlaması daha da karmaşıktır.
Bir Çoklu işlemci(multiprocessor ) içerisinde homojen işlemciler vardır.
Yük Paylaşımı gerekebilir
Asimetrik Çoklu işlemler – Sadece bir proses sistem veri yapılarına erişir. Bu sayede veri paylaşımı ihtiyacı hafifler.
Windows XP Scheduler
Öncelik tabanlı, önleyici zamanlayıcı En yüksek öncelikli process her zaman öncelikli çalışır. Öncelikler seviyeleri 32’e kadardır, her bir seviyenin ayrı bir sırası vardır. Kuyruklara çalıştırmak için hazır bir konu bulana kadar en yüksekten en düşüğe zamanlayıcı erişir Öncelikler sınıflara ayrılır, her birinin göreceli öncelikleri vardır
Çok Seviyeli Kuyruk (Multilevel Queue)
Çok seviyeli sıra programlamasında hazır durumdaki işlem sırası farklı gruplara ayrılmıştır.
Yani hazır durumdaki kuyruk bir tane değildir, farklı özelliklere sahip diğer işlem kuyrukları mevcuttur.
Her işlem, bu kuyruklardan birine sürekli olarak dahil olmaktadır.
İşlemin hangi kuyruğa dahil olacağına işlemin öncelik değeri, büyüklüğü, işlem tipi gibi özellikleri etkili olmaktadır.
İşlem kuyruklarının da kendi aralarında bir öncelik durumu vardır.
Her kuyruk düşük öncelikli kuyruğa göre mutlak bir önceliğe sahiptir.
Sistem preemptive olarak çalışmaktadır. Örneğin interaktif bir işlem, grup işlemi yürütülürken MİBye gelirse interaktif işlemin yapılması sağlanır.
Çok Seviyeli Geri Beslemeli Kuyruk (Multilevel Feedback Queue)
Çok seviyeli kuyruk programlamasında işlemler, sürekli olarak bir sırada bulunmaktadırlar ve sıralar arasında yer değiştirme olayı olmamaktadır.
Çok seviyeli geri beslemeli sıra programlamasında ise işlemler farklı sıralar arasında hareket edebilme, yer değiştirebilme özelliğine sahiptirler.
Eğer MİByi çok meşgul edecek uzun süreli bir işlem varsa, bu işlem düşük öncelikli bir kuyruğa atılabilinir.
Ayrıca düşük öncelikli bir kuyrukta çok beklemesi gerekecek bir işlem de yüksek öncelikli bir kuyruğa geçirilebilir
12
Öncelikler ve Zaman-dilim boyu
Öncelikler göre Endeksli Görevler listesi
Gerçek Zamanlı Sistem
Sıkı bağlı gerçek zamanlı sistemler– kendisinden beklenen, işi yapmasının yanında verilen sürede bitirebilme kısıtıdır.
Gevşek bağlı gerçek zamanlı sistemler– kendisinden beklenen kısıt işi yapabileceği en iyi şekilde yapmasıdır.
Görev Dağıtım Gecikmesi
Garantili Zamanlama
(Quaranteed Scheduling)
Kullanıcılara belli sözler verme temelinde çalışır.
Örneğin: Sistemde n kullanıcı varsa, herbiri işlemcinin 1/n ni kullanır. Sistemde her sürecin, çalışma sürelerini ayrıntılı olarak izler.
Her seferinde en düşük süreli çalışmış olan süreç en yakın rakibinin en düşük süreli çalışmış olan süreç en yakın rakibinin süresine ulaşıncaya kadar çalıştırılır.
Piyango Zamanlama (Lottery Scheduling)
Süreçlere farklı sistem kaynakları için piyango bileti verilir. ( Örneğin işlemci zamanı). Bir zamanlama kararı verileceği zaman rastgele bir piyango bileti seçilir ve bu bilete sahip olan süreç çalıştırılır.
Bir sürecin birden fazla piyango bileti olabilir. Örneğin, bir süreç 100 biletten 20 tanesine sahipse %20 çalışma şansı bulunmaktadır. Süreçler arasında istenilirse biletlerin paylaşımı olabilir.
13
Algoritma Analizi
Deterministlik Modelleme– Öncelikle daha önceden belirlenmiş bir yük seçer ve her algoritmanın bu yük üzerindeki performansı tespit edilir.
Kuyruklu modelleme
Gerçekleme
Simülasyonla MİB Planlama Analizi
Kaynakçalar Silberschatz, Galvin, Gagne: Operating System Concepts, 7th Edition ©2005, ©2009
http://bcs.wiley.com/he-
bcs/Books?action=resource&bcsId=2217&it
emId=0471694665&resourceId=5004
Bazı sayfalarda, konuyu desteklemek üzere farklı İnternet kaynaklarından alınmıştır.
Ev Ödevi Aşağıdaki zamanlamaları yapan bir (C / C++) simulasyon program yazınız. Algoritmalar
First come First served Algorithm Shortest job First Algorithm Shortest job First Algorithm with Preemption Shortest job First Algorithm with NonPreemption Round Robin Algorithm Priority Algorithm Ve Sizin sececeğiniz bir algoritma ile birlikte
Son teslim Tarihi: 30/04/2013 Ders Saati 19:00(Bu saatten sonraki sonuçlar kabul edilmez) Yardımlaşma kabul edilemez. Aynı programlar kopya olarak değerlendirecektir. Her öğrenci kendi başına yazacaktır.
Çalışır bir şekilde CD veya DVDye bir bütün proje(kaynak kodlar dahil) olarak virussüz bir şekilde verilmesi gerekmektedir. (21 Puan-Arasınavınıza eklenecektir.)- BAŞARILAR