HAFTA 09: CPU Planlama (MİB İş Sıralama-Scheduling)



Benzer belgeler
Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

İşlem Yönetimi (Process Management)

YZM 3102 İşletim Sistemleri

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

İşletim Sistemlerine Giriş

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN

Bilgisayar İşletim Sistemleri BLG 312

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

İşletim Sistemleri. İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık

İŞLETİM SİSTEMLERİ. (Operating Systems)

Chapter 12: Depolama Sistemleri

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemi. BTEP205 - İşletim Sistemleri

Çizelgeleme Nedir? Bir ürünün üretilmesi/hizmetin sunumu için

Background (Arka Plan)

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

Sanal Bellek (Virtual Memory)

YZM 3102 İşletim Sistemleri

SIMÜLASYON DERS SORUMLUSU: DOÇ.DR. SAADETTIN ERHAN KESEN. Ders No:2 Simülasyon Örnekleri

İşletim Sistemlerinde Çok Prosesli Çalışma

PROSESLER. Proses. Proses

BMÜ-421 Benzetim ve Modelleme Kesikli Olay Benzetimi. İlhan AYDIN

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

İşletim Sistemleri. B L M Mesleki Te r minoloji I I Ö ğ r e n c i S unumu

Proses. Prosesler 2. İşletim Sistemleri

İşletim Sistemlerine Giriş

İşletim Sistemleri (Operating Systems)

Bölüm 7: Kilitlenme (Deadlocks)

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

İşletim Sistemlerine Giriş

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

İşletim Sistemlerine Giriş

BTP205 İŞLETİM SİSTEMLERİ

Notasyonlar ve Genel Kurallar

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

İşletim Sistemlerine Giriş

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

BENZETİM. Prof.Dr.Berna Dengiz. 4. Ders Modelleme yaklaşımları Benzetim yazılımlarında aranan özellikler M/M/1 Kuyruk Sistemi benzetimi

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

EXCEL DE BENZETİM ÖRNEKLERİ BMÜ-422 BENZETİM VE MODELLEME

İşletim Sistemlerine Giriş

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

ELN1001 BİLGİSAYAR PROGRAMLAMA I

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v Mustafa Atanak Sefai Tandoğan Doç. Dr.

Makine Öğrenmesi 3. hafta

Güz Yarıyılı Balıkesir Üniversitesi, Endüstri Mühendisliği Bölümü EMM4129 ÇİZELGELEME

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

Bilgisayar İşletim Sistemleri BLG 312

Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar.

9/22/2014 EME 3105 SİSTEM SİMÜLASYONU. Giriş. Tek Kanallı Kuyruk Sistemi. Kuyruk Sistemlerinin Simulasyonu. Simulasyon Örnekleri Ders 2

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Güz Yarıyılı Balıkesir Üniversitesi, Endüstri Mühendisliği Bölümü EMM4129 ÇİZELGELEME

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

BÖLÜM 3 3. İŞLETİM SİSTEMİNİN BAŞLICA ÖZELLİKLERİ

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

İşletim Sistemlerine Genel Bakış

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Disk Çizelgeleme. BTEP205 - İşletim Sistemleri

İşletim Sistemleri (COMPE 431) Ders Detayları

ÜRETİMDE SONLU KAPASİTE ÇİZELGELEME VE YAZILIMIN ÖNEMİ! Üretim ve Planlama Direktörü

Yazılım Destek Hizmeti

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı


ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

İş Sıralama Kuraları -101

Dosya Yönetim Sistemi Hazırlayan : mustafa kaygısız Kaynak: megep.meb.gov.tr

BİT in Temel Bileşenleri (Yazılım-1)

Algoritma ve Akış Diyagramları

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

İleri İşletim Sistemleri (COMPE 531) Ders Detayları

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

Bilgisayar Programı Nedir?

Özyineleme (Recursion)

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMLERİ DERSİ 1 İÇİNDEKİLER

Bilgisayarda Programlama. Temel Kavramlar

İŞLETİM SİSTEMLERİNE GİRİŞ

BELLEK YÖNETY. Bellek Yönetimi

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

ALTERNATĐF AKIM (AC) I AC NĐN ELDE EDĐLMESĐ; KARE VE ÜÇGEN DALGALAR

Transkript:

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 1

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 Bir program, işletimi sonlanana değin değişik işletim evrelerinden geçer. Sunuş İşlem çalışmaya alınıyor Hazır Çalışır İşlem kesiliyor Bekler Bitiş (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. (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 11 2

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(nonpreemptive) 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):mib 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. 3

Ö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 4

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. 5

Bir İş Sıralama Algoritmasında ne Önemlidir? İlk gelene-ilk 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 P 2, P 3, P 1 sıralamasına sahip olduğu varsayılırsa: Gantt grafiğine göre planlama şu şekildedir : P 2 3 P 3 6 P 1 30 Bekleme süreleri P 1 = 6; P 2 = 0 ; P 3 = 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. First-Come First-Serve (FCFS) (İlk Gelene-İlk Servis) Algoritması Proses Çalışma Süresi P 1 24 P 2 3 P 3 3 Proseslerin P 1, P 2, P 3 sırasıyla geldiğini varsayalım. Planlamanın Gantt Grafiği: P 1 P 2 P 3 24 27 30 Bekleme süresi: P 1 = 0; P 2 = 24; P 3 = 27 Ortalama bekleme süresi: (0 + 24 + 27)/3 = 17 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. 6

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) P 1 6 P 2 8 P 3 7 P 4 3 SJF planlama çizelgesi P 4 P P 3 1 P 2 3 9 16 24 Ortalama Bekleme Zamanı = (3 + 16 + 9 + 0) / 4 = 7 İşlem üstünlüğü kullanılmayan SJF Proses P1 P2 P3 P4 Geliş Zamanı (sn) 2 4 5 Proseslerin bekleme zamanı: P1=0, P2=6, P3=3, P4=7 Ortalama bekleme zamanı: (0+6+3+7)/4 = 4 P1 P3 P2 P4 İşlemci zamanı (sn) 7 4 1 4 İşlem üstünlüğü kullanılan SJF Proses P1 P2 P3 P4 Geliş zamanı (sn) 2 4 5 CPU zamanı (sn) 7 4 1 4 Proseslerin bekleme zamanı = Bitme zamanı Belleğe konma zamanı İşlemci zamanı Proseslerin bekleme zamanı: P1=9, P2=1, P3=0, P4=2 Ortalama bekleme zamanı: (9+1+0+2)/4 = 3 3 7 8 12 16 P1 P2 P3 P2 P4 P1 Proseslerin bekleme zamanı = Bitme zamanı Belleğe konma zamanı İşlemci zamanı 2 4 5 7 11 16 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. 7

FCFS ile Karşılaştırma 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. 1. t n 2. τ = n. CPU kullanım süresin in uzunluğu n+1 = Sonraki CPU kullanım süresiiçin üretilmiş tahmini değer 3. α, 0 α 1 4. Aşağıdaki Denklem Çıkar : FCFS:10.25 SJF:7 n 1 tn 1. 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 = t n Sadece bir önceki MİB kullanım süreleri kullanılır. Eğer formülü genişletirsek: n+1 = t n +(1 - ) t n -1 + +(1 - ) j t n -1 + +(1 - ) n=1 t n 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(Nonpreemptive): İş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. 8

Ö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 Örneği Time Quantum = 4 İşlem Süre (Burst Time) P 1 24 P 2 3 P 3 3 Gantt Şeması 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. P 1 P 2 P 3 P 1 P 1 P 1 P 1 P 1 4 7 10 14 18 22 26 30 P1 için bekleme (10-4) = 6, P2=4, P3 = 7 bekleme süresine sahiptir. Ortalama bekleme zamanı = 17/3 = 5.66 9

Zaman Kuantum = 20 ile RR Örneği Zaman Kuantumu ve Bağlam Değiştirme Zamanı n Proses Çalışma Süresi P 1 53 P 2 17 P 3 68 P 4 24 Gantt Grafiği: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 20 37 57 77 97 117 121 134 154 162 Genel olarak, ortalama dönüşü SJF'den yüksektir. Fakat cevap vermesi süresi daha iyidir. 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 10

Çoklu Seviyeli Geri Bildirim Kuyruğuna Örnek Çoklu Seviyeli Geri Bildirim Kuyrukları Üç kuyruk: Q 0 8 milisaniye zaman kuantumlu Q 1 16 milisaniye zaman kuantumlu Q 2 RR Planlama: Bir iş RR (İlk gelen ilk hizmet görür kuralı) ile hizmet veren Q 0 kuyruğuna girer. İş MİB yu ele geçirdiğinde 8 milisaniyelik süre verilir, bu iş 8 milisaniyede bitmezse iş Q 1 kuyruğuna gider. Q 1 kuyruğunda RR ile 16 milisaniye daha hizmet görür. Eğer işlem hala tamamlanamazsa engellenir ve Q 2 kuyruğuna gönderilir. Ç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 Geri Beslemeli Kuyruk (Multilevel Feedback 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 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 11

Ö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. 12

Algoritma Analizi Simülasyonla MİB Planlama 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 Kaynakçalar Silberschatz, Galvin, Gagne: Operating System Concepts, 7th Edition 2005, 2009 http://bcs.wiley.com/hebcs/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 13