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



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

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

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

YZM 3102 İşletim Sistemleri

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

İşlem Yönetimi (Process Management)

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Background (Arka Plan)

İşletim Sistemlerine Giriş

Chapter 12: Depolama Sistemleri

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

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

Bilgisayar İşletim Sistemleri BLG 312

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

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

YZM 3102 İşletim Sistemleri

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

Bölüm 7: Kilitlenme (Deadlocks)

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

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

İşletim Sistemleri (Operating Systems)

Multicore/Multithread Programlama

Süreç 1 Kavramı ve Oluşturma Yöntemleri

İşletim Sistemlerine Genel Bakış

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

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

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

Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER

Bölüm 6: İşlem Senkronizasyonu (1) Operating System Concepts with Java 8 th Edition

Bölüm 4: Threads (İş Parçaları)

İşletim Sistemleri (Operating Systems)

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

Bölüm 7: Kilitlenmeler. Operating System Concepts with Java 8 th Edition

İşletim Sistemlerine Giriş

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

İşletim Sistemlerine Giriş

YZM 3102 İşletim Sistemleri Uygulama

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

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

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

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

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

PROSESLER. Proses. Proses

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

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

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

YZM 3102 İşletim Sistemleri Uygulama

IE 303T Sistem Benzetimi L E C T U R E 3 : O L A Y Ç I Z E L G E L E M E A L G O R I T M A S I

Bölüm 5: Süreç Senkronizasyonu

Proses. Prosesler 2. İşletim Sistemleri

YZM 3102 İşletim Sistemleri

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

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

İşletim Sistemleri-II

YZM 3102 İşletim Sistemleri

{\} /\ Suhap SAHIN Onur GÖK

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

Giris {\} /\ Suhap SAHIN Onur GÖK

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

Zeki Optimizasyon Teknikleri

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Sınav tarihi : Süre : 60 dak.

İŞLETİM SİSTEMLERİ (POSIX THREADS v1)

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

YZM 3102 İşletim Sistemleri

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

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

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

else *on=*on+1; return gecici; } int giseyeyerlestir(struct gise*giseler) {//giseye bos olmasi durumunda yerlestirme yapiliyor...

SIEMENS MICROMASTER 430 ve FAN UYGULAMA ÖRNEKLERİ

İşletim Sistemlerine Giriş

Bölüm 11: Dosya Sistem Gerçekleştirilmesi

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

PROCESS YARATIMI (TEKRAR):

Bilgisayar Mühendisliği Doktora Yeterlilik Yazılı Sınavı İçeriği

Notasyonlar ve Genel Kurallar

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

YZM 2116 Veri Yapıları

RRDTool Kullanımı ve ULAKNET İstatistikleri. Çağlar GÜLÇEHRE TÜBİTAK ULAKBİM-ATB

YZM 3102 İşletim Sistemleri

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

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

İşletim Sistemleri (COMPE 431) Ders Detayları

İletişim Ağları Communication Networks

BİLGİSAYAR MÜHENDİSLİĞİ

Adım Adım C-II. Eksik kalmış konular

Linux 2.6 Çekirdeği Stoned Beaver. Murat Koç Manager & IT Consultant murat.koc@frontsite.com.tr

Mühendislik ve Bilgisayar Bilimleri Fakültesi Bilgisayar Mühendisliði

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

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

ÜRETİM ÇİZELGELEME. Yrd. Doç. Dr. Pınar Mızrak Özfırat. Celal Bayar Üniversitesi Yayınları Yayın No: 0010

C Programlama Dilininin Basit Yapıları

Teknikleri. Önsöz. iskender atasoy

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

BULANIK MANTIK VE SİSTEMLERİ BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

Pointer Kavramı. Veri Yapıları

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta:

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Transkript:

Bölüm 5: İşlemci Zamanlaması 5.1 Silberschatz, Galvin and Gagne 2009

Temel Kavramlar Çoklu programlama sayesinde CPU kullanımının optimize edilmesi CPU I/O İşlem Döngüsü Bir işlemin çalıştırılması birbirlerini takip eden (1) CPU kullanımı ve (2) I/O beklemesi döngüsüden oluşur CPU işleme süresi dağılımı 5.4 Silberschatz, Galvin and Gagne 2009

Tekrar Eden CPU ve I/O İşlem Döngüsü 5.5 Silberschatz, Galvin and Gagne 2009

İşlemci Zamanlayıcısı Çalışmaya hazır şekilde hafızada bekleyen işlemlerden birini seçerek işlemciyi ona ayırır İşlemci zamanlaması şu durumlarda gerçekleşebilir: 1. Çalışma durumundan (running state) bekleme durumuna (waiting state) geçişte 2. Çalışma durumundan hazır durumuna (ready state) geçişte 3. Bekleme durumundan hazır durumuna geçişte 4. İşlem sonlandığında 1 ve 4 durumlarında zamanlama: kesmeyen (nonpreemptive) Diğer durumlarda: kesen (preemptive) 5.7 Silberschatz, Galvin and Gagne 2009

Görevlendirici (Dispatcher) Görevlendirici modül CPU kontrolünü kısa dönem zamanlayıcı (shortterm scheduler) tarafından seçilen işleme devreder: Ortam değiştirme (switching context) Kullanıcı moduna geçme Görevlendirme gecikme süresi (dispatch latency) Görevlendiricinin bir programı sonlandırıp diğerini başlatması için gereken süre 5.8 Silberschatz, Galvin and Gagne 2009

Zamanlama Kriterleri İşlemci kullanımı (CPU utilization) İşlemciyi olabildiğince meşgul tutmak Üretilen iş (throughput) birim zamanda çalışması sonlanan işlemlerin sayısı Devir zamanı (turnaround time) bir işlem sonlanana kadar geçen toplam zaman Bekleme zamanı (waiting time) bir işlemin hazır kuyruğunda (ready queue) toplam bekleme zamanı Yanıt süresi (response time) bir isteğin gönderilmesi ile bu isteğinn yanıtının verilmesi arasında geçen zaman 5.9 Silberschatz, Galvin and Gagne 2009

Zamanlama Algoritması Optimizasyon Kriteri Maksimum işlemci kullanımı (Max CPU utilization) Maksimum üretilen iş (Max throughput) Minimum devir zamanı (Min turnaround time) Minimum bekleme zamanı (Min waiting time) Minimum yanıt süresi (Min response time) 5.10 Silberschatz, Galvin and Gagne 2009

İlk Gelen Önce İşlemci Zamanlama Algoritması First-Come, First-Served (FCFS) Scheduling İşlem İşlem Süresi P 1 24 P 2 3 P 3 3 İşlemleri şu sırada geldiğini varsayalım: P 1, P 2, P 3 Zamanlama için Gantt şeması: P 1 P 2 P 3 0 24 27 30 Bekleme zamanları: P 1 = 0; P 2 = 24; P 3 = 27 Ortalama bekleme zamanı: (0 + 24 + 27)/3 = 17 5.11 Silberschatz, Galvin and Gagne 2009

İlk Gelen Önce (Devam) İşlemleri şu sırada geldiğini varsayalım: Zamanlama için Gantt şeması: P 2, P 3, P 1 P 2 P 3 P 1 0 3 6 30 Bekleme zamanları: P 1 = 6; P 2 = 0 ; P 3 = 3 Ortalama bekleme zamanı: (6 + 0 + 3)/3 = 3 Önceki durumdan çok daha iyi Konvoy etkisi (convoy effect): kısa işlemler uzun işlemlerin arkasında 5.12 Silberschatz, Galvin and Gagne 2009

En Kısa İş Önce - İşlemci Zamanlama Algoritması Shortest-Job-First (SJF) Her işlemi sonraki işlemci kullanım süresi ile ilişkilendirilmeli Bu kullanım sürelerini kullanarak en kısa sürecek iş önce seçilmeli SJF optimal zamanlama algoritmasıdır verilen bir iş kümesi için minimum ortalama bekleme süresini sağlar Zorluk, işlemci kullanım sürelerini tahmin etmektir 5.13 Silberschatz, Galvin and Gagne 2009

SJF Örneği İşlem Arrival Time İşlem Süresi P 1 0.0 6 P 2 2.0 8 P 3 4.0 7 P 4 5.0 3 SJF zamanlama şeması P 4 P 1 P 3 P 2 0 3 9 16 Ortalama bekleme zamanı = (3 + 16 + 9 + 0) / 4 = 7 24 5.14 Silberschatz, Galvin and Gagne 2009

Example of Shortest-remaining-time-first Now we add the concepts of varying arrival times and preemption to the analysis ProcessA arri Arrival TimeT Burst Time P 1 0 8 P 2 1 4 P 3 2 9 P 4 3 5 Preemptive SJF Gantt Chart P 2 P 4 P 1 P 1 P 3 0 1 5 10 17 26 Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec Operating System Concepts 8 th Edition 5.18 Silberschatz, Galvin and Gagne 2009

Öncelik Tabanlı - İşlemci Zamanlama Algoritması Priority Scheduling Her bir işleme bir öncelik sayısı (tamsayı) atanır İşlemci en öncelikli işleme verilir (en küçük tamsayı en yüksek öncelik) Kesen (preemptive) Kesmeyen (nonpreemptive) SJF, öncelik tahmini kullanım süresi olmak kaydıyla, öncelik tabanlı bir işlemci zamanlaması algoritmasıdır Problem açlık (starvation) düşük öncelikli işlemler hiçbir zaman çalışmayabilir Çözüm yaşlandırma (aging) taman geçtikçe bekleyen işlemlerin önceliğini arttırma 5.18 Silberschatz, Galvin and Gagne 2009

Example of Priority Scheduling ProcessA arri Burst TimeT Priority P 1 10 3 P 2 1 1 P 3 2 4 P 4 1 5 P 5 5 2 Priority scheduling Gantt Chart P 5 P 1 P 2 P 3 P 4 0 1 6 16 18 19 Average waiting time = 8.2 msec Operating System Concepts 8 th Edition 5.20 Silberschatz, Galvin and Gagne 2009

Zaman Dilimli - İşlemci Zamanlama Algoritması Round Robin (RR) Her bir işlem işlemci zamanının küçük bir birimini alır: zaman kuantumu (time quantum) Genellikle 10-100 millisaniye Bu zaman dolduğunda işlem kesilir ve hazır kuyruğunun sonuna eklenir Eğer hazır kuyruğunda n tane işlem varsa ve zaman kuantumu q ise, her bir işlem CPU zamanının 1/n kadarını (en fazla q birimlik zamanlar halinde) ve hiç bir işlem (n-1)q zaman biriminden fazla beklemez Performans q büyükse ilk gelen önce (FIFO) q küçükse q ortam değiştirme süresine oranla daha büyük olmalıdır. Aksi halde sistem verimsiz çalışır 5.19 Silberschatz, Galvin and Gagne 2009

Zaman Kuantum = 4 olduğunda RR İşlem İşlem Süresi P 1 24 P 2 3 P 3 3 Gantt şeması: P 1 P 2 P 3 P 1 P 1 P 1 P 1 P 1 0 4 7 10 14 18 22 26 30 Tipik olarak, SJF den daha yüksek ortalama devir zamanı, ama daha iyi yanıt süresi 5.20 Silberschatz, Galvin and Gagne 2009

Zaman Kuantumu ve Ortam Değiştirme Süresi 5.21 Silberschatz, Galvin and Gagne 2009

Devir Zamanı Zaman Kuantumu ile Değişir 5.22 Silberschatz, Galvin and Gagne 2009

Çok kuyruklu - İşlemci Zamanlama Algoritması Multilevel Queue Hazır kuyruğuready birden fazla kuyruğa bölünür: ön plan (foreground interaktif (interactive) arka plan (background) toplu iş (batch) Her kuyruk kendine ait işlemci zamanlama algoritmasına sahiptir ön plan RR arka plan FCFS 5.23 Silberschatz, Galvin and Gagne 2009

Çok kuyruklu (devam) Zamanlama kuyruklar arasında yapılmalıdır Sabit öncelikli zamanlama (fixed priority scheduling) Örn: önce tüm ön plan işlerini çalıştırıp ardından arka plan işlerini çalıştırmak. Olası açlık (starvation) Zaman dilimi her kuyruk CPU nun belirli bir zamanını kendi işlemlerine verebilir Örn: CPU nun %80 zamanı RR ile ön plan işlerine %20 si ise FCFS ile arka plan işlerine ayrılabilir 5.24 Silberschatz, Galvin and Gagne 2009

Çok Kuyruklu Zamanlama 5.25 Silberschatz, Galvin and Gagne 2009

Çok-seviye Geri Besleme Kuyruğu Multilevel Feedback Queue İşlemler kuyruklar arasında yer değiştirebilir; yaşlanma (aging) bu şekilde gerçekleştirilebilir Çok-seviye geri besleme kuyruğu zamanlayıcısı aşağıdaki parametrelerle tanımlanır: Kuyrukların sayısı Her bir kuyruk için zamanlama algoritması Bir işlemin üst kuyruğa ne zaman alınacağını belirleme yöntemi Bir işlemin alt kuyruğa ne zaman alınacağını belirleme yöntemi 5.26 Silberschatz, Galvin and Gagne 2009

Çok-seviye Geri Besleme Kuyruğu Örneği Üç kuyruk: Q 0 zaman kuantumu 8 milisaniye olan RR Q 1 zaman kuantumu 16 milisaniye olan RR Q 2 FCFS Zamanlama Yeni işler Q 0 kuyruğuna eklenir CPU yu elde ettiğinde bu işe 8 milisaniye verilir. Eğer 8 milisaniyede sonlanmazsa Q 1 kuyruğuna alınır İş Q 1 kuyruğunda yeniden zamanlanır. Sıra ona geldiğinde 16 milisaniye ek süre verilir. Hala sonlanmazsa, çalışması kesilir ve Q 2 kuyruğuna alınır ve burada FCFS yöntemiyle zamanlanır 5.27 Silberschatz, Galvin and Gagne 2009

Çok-seviye Geri Besleme Kuyruğu 5.28 Silberschatz, Galvin and Gagne 2009

İş Parçacığı Zamanlaması Kullanıcı-seviyesi ve çekirdek-seviyesi iş parçacıkları arasında ayrım Çoktan-teke ve çoktan-çoka modellerde, iş parçacaığı kütüphanesi kullanıcı seviyesi iş parçacıklarını İşlem içerisinde zamanlama rekabeti olduğundan işlem-çekişme alanı olarak adlandırılır process-contention scope (PCS) Çekirdek seviyesi iş parçacıkları ise sistemdeki tğm diğer iş parçacıkları ile zamanlama rekabeti içinde olduğundan sistem çekişme alanı olarak adlandırılır system-contention scope (SCS) 5.29 Silberschatz, Galvin and Gagne 2009

Pthread Zamanlaması Pthread API si, iş parçacığı oluşturulurken, zamanlamanın PCS veya SCS olarak ayarlanmasına izin verir PTHREAD_SCOPE_PROCESS, iş parçacıklarını PCS ile zamanlar PTHREAD_SCOPE_SYSTEM ise iş parçacıklarını SCS ile zamanlar 5.30 Silberschatz, Galvin and Gagne 2009

Pthread Scheduling API #include <pthread.h> #include <stdio.h> #define NUM THREADS 5 int main(int argc, char *argv[]) { int i; pthread_t tid[num THREADS]; pthread_attr_t attr; /* get the default attributes */ pthread_attr_init(&attr); /* set the scheduling algorithm to PROCESS or SYSTEM */ pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); /* set the scheduling policy - FIFO, RT, or OTHER */ pthread_attr_setschedpolicy(&attr, SCHED_OTHER); /* create the threads */ for (i = 0; i < NUM THREADS; i++) pthread_create(&tid[i],&attr,runner,null); 5.31 Silberschatz, Galvin and Gagne 2009

Pthread Scheduling API /* now join on each thread */ for (i = 0; i < NUM THREADS; i++) pthread_join(tid[i], NULL); } /* Each thread will begin control in this function */ void *runner(void *param) { printf("i am a thread\n"); pthread exit(0); } 5.32 Silberschatz, Galvin and Gagne 2009