hafta 09: cpu planlama mİb planlama (mİb İü sıralama … · 2013. 4. 18. · algoritma...

13
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

Upload: others

Post on 24-Dec-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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

Page 2: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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

Page 3: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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.

Page 4: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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

Page 5: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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.

Page 6: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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.

Page 7: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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.

Page 8: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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.

Page 9: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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

Page 10: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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

Page 11: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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

Page 12: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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.

Page 13: HAFTA 09: CPU Planlama MİB Planlama (MİB İü Sıralama … · 2013. 4. 18. · Algoritma Değerlendirmesi Çok programlı sistemlerin amacı aynı anda yürütülen iülem İlemci

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