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ü

YZM 3102 İşletim Sistemleri

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

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

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

İşlem Yönetimi (Process Management)

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

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

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

Bilgisayar İşletim Sistemleri BLG 312

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

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

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

PROSESLER. Proses. Proses

Background (Arka Plan)

Chapter 12: Depolama Sistemleri

Multicore/Multithread Programlama

Proses. Prosesler 2. İşletim Sistemleri

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

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

YZM 3102 İşletim Sistemleri

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

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

Bölüm 7: Kilitlenme (Deadlocks)

İşletim Sistemlerine Genel Bakış

İşletim Sistemleri (Operating Systems)

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

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

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

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

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

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

İş Parçacıkları Thread(s)

İşletim Sistemleri (Operating Systems)

BENZETİM. Prof.Dr.Berna Dengiz

Bilgisayar İşletim Sistemleri BLG 312

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

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

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

PROCESS YARATIMI (TEKRAR):

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 7: Kilitlenmeler. Operating System Concepts with Java 8 th Edition

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

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

Bilgisayar İşletim Sistemleri BLG 312

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

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

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

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

YZM 3102 İşletim Sistemleri

ENM 316 BENZETİM DERS 3 KUYRUK SİSTEMİ. Operasyon yönetiminde önemli bir alana sahiptir.

SİSTEM SİMÜLASYONU BENZETIM 1 SİMÜLASYON MODEL TÜRLERİ 1. STATİK VEYA DİNAMİK. Simülasyon Modelleri

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

Notasyonlar ve Genel Kurallar

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

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

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

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

Bilgisayar İşletim Sistemleri BLG 312

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

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

İş Parçacıkları (Threads)

Bekleme Hattı Teorisi

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

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

İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir.

Yrd. Doç. Dr. Caner ÖZCAN

Üst Düzey Programlama

Bilgisayar Sistemlerine Genel Bakış

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

EME 3105 SISTEM SIMÜLASYONU

Mühendislik ve Bilgisayar Bilimleri Fakültesi Elektrik-Elektronik Mühendisliði

Üst Düzey Programlama

SİMULASYON MODELLEME VE ANALİZ. Giriş. Arena Ortamı. Simulasyon Dilleri HAFTA 2. Yrd.Doç.Dr.Beyazıt Ocaktan

İŞ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

Zeki Optimizasyon Teknikleri

Bölüm 2 İşletim Sistemi Yapıları

IE 303T Sistem Benzetimi L E C T U R E 6 : R A S S A L R A K A M Ü R E T I M I

EME 3105 SİSTEM SİMULASYONU (ARENA) Hafta 3

EME 3105 SİSTEM SİMULASYONU (ARENA) Hafta 2

10/17/2007 Nesneye Yonelik Programlama 3.1

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

İşletim Sistemleri (Operating Systems)

Çekirdek Nedir? Ne yapar?

İşletim Sistemleri-II

Rassal Değişken Üretimi

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

PARÇACIK SÜRÜ OPTİMİZASYONU BMÜ-579 METASEZGİSEL YÖNTEMLER YRD. DOÇ. DR. İLHAN AYDIN

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

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

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

BMH-303 Nesneye Yönelik Programlama

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BM-311 Bilgisayar Mimarisi

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Transkript:

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

İşlemci Zamanlaması Temel Kavramlar Zamanlama Kriteri Zamanlama Algoritmaları İş Parçacığı Zamanlaması Çok-İşlemci Zamanlaması İşletim Sistemi Örnekleri Algoritmaların Değerlendirilmesi 5.2 Silberschatz, Galvin and Gagne 2009

Hedefler Çok programlı işletim sistemlerinin temelini oluşturan işlemci zamanlamasının tanıtılması Pek çok işlemci zamanlama algoritmasının açıklanması Belirli bir sistem için işlemci zamanlama algoritması seçerken kullanılacak değerlendirme kriterlerinin irdelenmesi 5.3 Silberschatz, Galvin and Gagne 2009

Temel Kavramlar Çoklu programlamalı 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

CPU İşleme Süresi Dağılım Eğrisi Histogram: Dağılım Eğrisi 5.6 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) eski işletim sistemleri (windows 3.x gibi) 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 Kullanıcya ait program yeniden başlatıldığındaprogramdaki uygun konuma atlama 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

İşlemci Kullanım Süresinin Belirlenmesi Sadece tahmin edilebilir Daha önceki işlemci kullanım süreleri kullanılarak üssel ortalama (exponential averaging) yöntemiyle tahmin edilebilir 1. 2. 3. 4. t n actual length of n n 1, 0 1 Define: CPU burst predicted value for the next CPU th 1. n t 1 n n burst 5.15 Silberschatz, Galvin and Gagne 2009

Üssel Ortalama ile Kullanım Süresi Belirleme t 1 ( t ) / 2 n 1 n n n n 5.16 Silberschatz, Galvin and Gagne 2009

Üssel Ortalama Örnekleri =0 =1 n+1 = n Yakın zaman bilgisi kullanılmıyor n+1 = t n Sadece son CPU kullanım bilgisi hesaba katılıyor Formülü genişletirsek: n+1 = t n +(1 - ) t n-1 + +(1 - ) j t n-j + +(1 - ) n +1 0 Hem hem de (1 - ) 1 veya birden küçük olduğundan, her bir takip eden terim, kendinden önce gelen terimden daha az ağırlığa sahip 5.17 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

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 Bir işlem çalıştırılmak için seçildiğinde hangi kuyruğa alınacağını belirleyen yöntem 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 ve FCFS ile yönetilir 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ı LWP üzerinde sırayla çalışacak şekilde zamanlar İş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

İşletim Sistemi Örnekleri Solaris zamanlaması Windows XP zamanlaması Linux zamanlaması 5.33 Silberschatz, Galvin and Gagne 2009

Solaris Zamanlaması Öncelik tabanlı zamanlama kullanılmakta Altı zamanlama sınıfı var Zaman paylaşımlı time sharing (TS) İnteraktif interactive (IA) Gerçek zamanlı real time (RT) Sistem system (SYS) Adil paylaşım fair share (FSS) Sabit öncelik fixed priority (FP) 5.34 Silberschatz, Galvin and Gagne 2009

Solaris Zamanlama Sınıfları 5.35 Silberschatz, Galvin and Gagne 2009

Görev Tablosu: Dispatch Table Solaris teki interaktif ve zaman paylaşımlı iş parçacıkları için 5.36 Silberschatz, Galvin and Gagne 2009

Windows XP Zamanlaması Öncelik tabanlı ve kesen (preemptive) zamanlama algoritması En yüksek öncelikli iş parçası her zaman çalışıyor Çalışan bir iş parçacığı aşağıdaki şartlardan biri sağlanmadığı sürece çalışıyor Normal şekilde sonlanma Zaman kuantumunun bitmesi Bloklayan bir sistem çağrısı yapılması (örneğin I/O) Yüksek öncelikli bir iş parçacığının çalışmaya hazır olması 5.37 Silberschatz, Galvin and Gagne 2009

Windows XP Zamanlaması Çok seviyeli öncelik mekanizması Yüksek seviye daha fazla öncelikli İki temel sınıfa ayrılıyor Değişken öncelik sınıfı (1-15) Gerçek-zaman sınıfı (16-31) Değişken öncelik sınıfındaki iş parçacıklarının öncelikleri çalışırken değiştirilebiliyor WIN32 de tanımlı öncelik sınıfları: REALTIME_PRIORITY_CLASS HIGH_PRIORITY_CLASS ABOVE_NORMAL_PRIORITY_CLASS NORMAL_PRIORITY_CLASS BELOW_NORMAL_PRIORITY_CLASS IDLE_PRIORITY_CLASS 5.38 Silberschatz, Galvin and Gagne 2009

Windows XP Zamanlaması Belli bir öncelik sınıfındaki iş parçacığı aynı zamanda bu sınıf içerisinde tanımlı bir bağıl önceliğe sahip Bağıl öncelik değerleri TIME_CRITICAL HIGHEST ABOVE_NORMAL NORMAL BELOW_NORMAL LOWEST IDLE 5.39 Silberschatz, Galvin and Gagne 2009

Windows XP Öncelikleri 5.40 Silberschatz, Galvin and Gagne 2009

Linux Zamanlaması Linux çekirdeği 2.5 versiyonla birlikte gelen zamanlayıcı, sistemdeki iş parçacığı sayısından bağımsız olarak sabit zamanda çalışıyor - O(1) zamanlama süresi Öncelik tabanlı ve kesen (preemptive) zamanlama algoritması İki öncelik aralığı: zaman paylaşımlı (time-sharing) ve gerçek zamanlı (real-time) Gerçek zamanlı öncelik aralığı: 0 dan 99 a Zaman paylaşımlı (nice) öncelik aralığı: 100 den 140 a Diğer işletim sistemlerindeki (örn: solaris ve windows xp) zamanlayıcılardan farklı olarak Düşük öncelikli iş parçacıklarına daha az ve Yüksek öncelikli iş parçacıklarını daha çok zaman kuantumu veriyor 5.41 Silberschatz, Galvin and Gagne 2009

Öncelikler ve Zaman Kuantumu 5.42 Silberschatz, Galvin and Gagne 2009

Aktif ve Süresi Dolmuş Dizileri Linux de çalıştırılabilir işlerden zaman kuantumu dolmamış olanlara öncelik verilir Bu amaçla iki öncelik dizisi kullanılır: Aktif (active) Süresi dolmuş (expired) Aktif dizisinde, zaman kuantumu henüz dolmamış ve çalışmaya hazır işler tutulmaktadır Zamanlayıcı öncelikli işlerden başlayarak bu dizideki işleri çalıştırır Zaman kuantumu dolan işler süresi dolmuş dizisine aktarılır Aktif dizide çalışmaya hazır iş parçacığı kalmadığında, aktif ve süresi dolmuş dizileri yer değiştirir 5.43 Silberschatz, Galvin and Gagne 2009

Önceliklere Göre Listelenmiş Görevler 5.44 Silberschatz, Galvin and Gagne 2009

Java İş Parçacığı Zamanlaması Java sanal makinası (JVM) da öncelik tabanlı zamanlama algoritması kullanır Spesifikasyon kesen (preemptive) bir algoritma kullanmayı zorunlu kılmamıştır JVM gerçekleştirimine bırakılmıştır O nedenle, bazı JVM lerde az öncelikli bir iş parçacığı, yeni bir öncelikli iş parçacığı gelse dahi, çalışmaya devam edebilir Aynı önceliğie sahip iş parçacıkları, FIFO kuyrukları aracılığı ile yönetilir 5.45 Silberschatz, Galvin and Gagne 2009

Zaman Dilimleme Spesifikasyon zaman dilimlemeyi zorunlu kılmamıştır Bu yüzden çalışan iş parçacıklarının CPU kontrolünü devredebilmesi için yield() metodu sağlanmıştır while (true) { // perform CPU-intensive task... Thread.yield(); } Bu metot, CPU kontrolünü aynı önceliğe sahip başka bir iş parçacığına bırakır 5.46 Silberschatz, Galvin and Gagne 2009

İş Parçacığı Öncelikleri Öncelik Thread.MIN_PRIORITY Thread.MAX_PRIORITY Thread.NORM_PRIORITY Yorum Minimum İş Parçacığı Önceliği Maksimum İş Parçacığı Önceliği Varsayılan İş Parçacığı Önceliği Öcelikler setpriority() metodu kullanılarak değiştirilebilir: Thread.currentThread().setPriority(Thread.NORM_PRIORITY + 2); 5.47 Silberschatz, Galvin and Gagne 2009

Algoritma Değerlendirmesi Belli bir sistem için hangi işlemci zamanlama algoritmasını seçmeliyiz? Pek çok algoritma ve bu algoritmaların pek çok parametresi var Öncelikle değerlendirme kriteri belirlenmeli işlemci kullanımı, bekleme zamanı Örnek: İşlemci kullanımını maksimize ederken, cevap zamanını bir saniyenin altında tutmak Deterministik modelleme (deterministic modeling) ön tanımlı bir iş yükünü alıp her bir algoritmanın performansını bu iş yükü açısından değerlendirmek Kuyruklama Modelleri (queueing models) 5.48 Silberschatz, Galvin and Gagne 2009

Kuyruklama Modelleri Pek çok sistemde işlem karakteristikleri günden güne değişiklik gösterir Ancak CPU ve I/O işlem sıklıklarının istatistiksel dağılımları çıkarılabilir Bu işlem sıklıkları gerçek sistemlerde ölçülebilir ve dağılımları belirlenebilir Benzer şekilde, işlemlerin sisteme giriş zamanlarının dağılımını da belirleyebiliriz Bu iki dağılımı kullanarak pek çok algoritma için ortalama olarak işlemci kullanımı, üretilen iş, bekleme zamanı hesaplanabilir Dezavantaj: Matematiksel olarak analiz edilebilir olan zamanlama algoritması çok sınırlı 5.49 Silberschatz, Galvin and Gagne 2009

Simülasyonlar Simülasyonları çalıştırmak için bilgisayar sisteminin bir modelinin programlanması gerekir Yazılımdaki veri tipleri sistemin temel bileşenlerini gerçekleştirir Simülatör, sistem saati fonksiyonunu gören bir değişkene sahiptir Bu değişken her arttırıldığında, cihazların, işlemlerin ve zamanlayıcının aktivitelerine bağlı olarak sistem durumu güncellenir Simülasyonun çalışması için gerekli olan veri, aşağıdaki gibi dağılımları kullanan bir rastgele sayı üreticisi ile üretilir Yeni işlem üretim zamanı İşlemin CPU ve I/O kullanım süreleri Dağılımlar belli istatistiksel dağılımlara (normal veya poisson dağılımı gibi) uygun şekilde veya deneysel olarak tanımlanabilir 5.50 Silberschatz, Galvin and Gagne 2009

İz Kasetleri Yukarıdaki frekans dağılımları her bir olaydan kaç tane oluşacağını belirtir Olayların hangi sırada gerçekleşeceğini belirtmez Sırayı belirlemek için iz kasetleri (trace tapes) kullanılır İz kasetleri, gerçek sistemlerde gerçekleşen olayların sırası kaydedilerek oluşturulur 5.51 Silberschatz, Galvin and Gagne 2009

Simülasyon ile Zamanlama Algoritmalarının Değerlendirilmesi 5.52 Silberschatz, Galvin and Gagne 2009