1 / 15

İşlemci Zaman Planlaması

İşlemci Zaman Planlaması. Çoklu programlamada bellekte birden fazla proses çalışmaya hazır bekler Bu prosesler 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

Download Presentation

İşlemci Zaman Planlaması

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. İşlemci Zaman Planlaması • Çoklu programlamada bellekte birden fazla proses çalışmaya hazır bekler • Bu prosesler 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 tut • Birim zamanda bitirilen iş sayısını arttır • Bir prosesin başlatılmasından bitirilmesine kadar geçen toplam bitirilme zamanını asgariye indir

  2. Işlemci Zaman Planlaması Proses başlangıcından bitimine kadar işlemcide çalıştırılma ve Girdi/Çıktı işlemleri dönüşümlü olarak tekrar eder İşlemci • İşlemci zaman planlayıcısı (Dispatcher) • Ana bellekde olan ve çalıştırılmaya hazır proseslerden birini seçer ve işlemciden o prosesi çalıştırmasını ister Girdi/Çıktı İşlemci Girdi/Çıktı İşlemci Girdi/Çıktı

  3. İlk Gelen İlk Çıkar (First-Come-First-Served) Proses P1 P2 P3 İşlemci zamanı (sn) 24 3 3 • Proseslerin geliş sırası: P1, P2, P3 Proses P1 P2 P3 Geliş zamanı (sn) 0 1 2 P1 P2 P3 0 24 27 30 • Proseslerin bekleme zamanı: P1=0, P2=23, P3=25 • Ortalama bekleme zamanı: (0+23+25)/3 = 16 • Proseslerin geliş sırası: P2, P3, P1 Proses P1 P2 P3 Geliş zamanı (sn) 2 0 1 P2 P3 P1 0 3 6 30 • Proseslerin bekleme zamanı: P1=4, P2=0, P3=2 • Ortalama bekleme zamanı =(4+0+2)/3 = 2

  4. En Kısa İş İlk(Shortest-Job-First (SJF)) • Her bir prosesin kalan işlemci zamanını kullanarak, işlemciyi en az işlemci zamanına ihtiyacı olan prosese ver. • İki versiyonu tanımlanabilir • İşlem üstünlüğü kullanılmayan (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 (Preemptive): Yeni bir proses iş sıralamasına girdiğinde bu yeni işin işlemci ihtiyacı o geldiğinde işlemciyi kullanan işten daha kısa ise işlemci yeni gelen işe verilir. • En kısa iş ilk algoritması en az ortalama bekleme zamanını verir, en iyi algoritmadır.

  5. İşlem üstünlüğü kullanılmayan SJF Proses P1 P2 P3 P4 Geliş Zamanı (sn) 0 2 4 5 İşlemci zamanı (sn) 7 4 1 4 • Proseslerin bekleme zamanı: P1=0, P2=6, P3=3, P4=7 • Ortalama bekleme zamanı: (0+6+3+7)/4 = 4 P1 P3 P2 P4 0 3 7 8 12 16 • Proseslerin bekleme zamanı = Bitme zamanı – Belleğe konma zamanı – İşlemci zamanı

  6. İşlem üstünlüğü kullanılan SJF Proses P1 P2 P3 P4 Geliş zamanı (sn) 0 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 P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16

  7. Çevrimsel Sıralı • Her bir prosese işlemci kısa bir süre için verilir. Genelde bu süre 10 ms ile 100 ms arasında değişebilir. Bu süreye kuantum (q) denir. Bu süre sonunda prosesin çalıştırılması durdurulur ve bu proses hazır prosesler kuyruğunun en sonuna eklenir. İşlemcide bu kuyruğun en başında bekleyen prosese verilir. • Eğer bu kuyrukta n proses bekliyorsa ve kuantum değeri q ise, her bir proses işlemci zamanının 1/n ini alır ve her alışında q süresince işlemciyi kullanır. Hiçbir proses (n-1)q sürecinden fazla işlemciyi beklemez. • q nun bağlam değiştirme zamanından uzun olması gerekir. Aksi takdirde işlemci zamanı prosesleri çalıştırmaktan çok bağlam değiştirmekle geçer.

  8. Çevrimsel Sıralı Proses P1 P2 P3 P4 İşlemci zamanı (ms) 53 17 68 24 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 Kuantum = 20 ms 0 117 20 37 57 77 97 121 134 154 162 • Proseslerin bekleme zamanı = Bitme zamanı – Belleğe konma zamanı – İşlemci zamanı • P1=81, P2=20, P3=94, P4=97 • Ortalama bekleme zamanı: (81+20+94+97)/4 = 73 ms

  9. Çevrimsel Sıralı Proses P1 P2 P3 P4 İşlemci zamanı (ms) 53 17 68 24 P1 P2 P3 P4 P1 P2 P3 P4 P1 P3 P4 P1 P3 P1 P3 P1 P3 P3 Kuantum = 10 ms 0 20 30 10 40 50 57 67 77 87 97 111 131 144 162 101 121 141 154 • Proseslerin bekleme zamanı = Bitme zamanı – Belleğe konma zamanı – İşlemci zamanı • P1=91, P2=40, P3=94, P4=77 • Ortalama bekleme zamanı: (91+40+94+77)/4 = 75.5 ms

  10. Proses P1 P2 P3 P4 Geliş zamanı (sn) 0 2 4 5 CPU zamanı (sn) 7 4 1 1 İşlem üstünlüğü kullanılan SJF Ortalama bekleme zamanını hesaplayın 0 İşlem üstünlüğü kullanılmayan SJF 0 Çevrimsel sıralı quantum=1 sn 0

  11. Proses P1 P2 P3 P4 Geliş zamanı (sn) 0 2 4 5 CPU zamanı (sn) 5 4 3 1 Ortalama bekleme zamanını hesaplayın İşlem üstünlüğü kullanılan SJF 0 İşlem üstünlüğü kullanılmayan SJF 0 Çevrimsel sıralı quantum=1 sn 0

  12. Öncelikli Çizelgeleme • Her bir prosese önceliğini belirleyen bir numara verilir • İşlemci bekleyen prosesler içinde önceliği en yüksek olana verilir (en küçük rakam = önceliği en fazla) • İşlem üstünlüğü kullanılmayan • İşlem üstünlüğü kullanılan • Problem: Açlık (İşlemci az öncelikli proseslere hiç verilemeyebilir) • Çözüm: Yaşlanma (zaman geçtikçe prosesin önceliğini arttır) Öncelik=0 CPU Öncelik=1

  13. Çok Seviyeli Kuyruklar • Hazır kuyruğu birden fazla kuyruğa bölünür • Her kuyruğun kendi algoritması olabilir • Kuyrukları kendi aralarında sıralandırmak gerekir • Sabit öncelik kullanılabilir ama bu açlık sorunu yaratabilir • Her bir kuyruğa belli bir zaman verilebilir. Bir kuyruktaki prosesler bu zaman zarfında çalıştırılabilir. Sistem prosesleri Etkileşimli prosesler CPU Toplu yürütüm sistemleri Öğrenci prosesleri

  14. Çokseviyeli Geribeslemeli Kuyruklar • Bir proses bir kuyruktan diğerine gidebilir (Yaşlanma bu şekilde gerçekleştirilebilir) • Çok seviyeli geribeslemeli kuyrukların parametleri • Kuyruk sayısı • Her bir kuyrukta kullanılan çizelgeleme • Bir prosesin yaşını arttırmak için kullanılan metot • Bir prosesin yaşını azaltmak için kullanılan metot • Yeni bir prosesin hangi kuyruğa ekleneceğini belirlemek için kullanılan metot

  15. Örnek • Üç kuyruk • Q0: FCFS + kuyruk 0 için kuantum 8 ms • Q1: FCFS + kuyruk 1 için kuantum 16 ms • Q2: FCFS • Çizelgeleme • Q0 daki prosesler FCFS e göre çalıştırılır. Bir proses çalıştırılmaya başladıktan sonra en fazla 8 ms lik bir zaman verilir. Eğer 8 ms süresinde bitmezse işlemci Q1 a verilir. • Q1 deki prosesler de FCFS e göre çalıştırılır. Bir proses çalıştırılmaya başladıktan sonra en fazla 16 ms lik bir zaman verilir. Eğer 16 ms süresinde bitmezse işlemci Q2 a verilir. • Q2 deki proses bitinceye kadar işlemciyi tutar. Bitince işlemci yine Q0 da bekleyen bir prosese verilir.

More Related