Bölüm 5: CPU Çizelgeleme

Bölüm 5: CPU Çizelgeleme · Çalışma Soruları
ÖlçütlerFCFS ve SJFSRTFÖncelik ve yaşlanmaRound RobinMLFQStride ve piyangoÇok işlemciliRM ve EDFLinux CFS
Sercan KÜLCÜ

Çoktan Seçmeli · Temel Kavramlar

Soru 1: Çizelgeleyici ve Görev Dağıtıcı

Kısa vadeli çizelgeleyici ile görev dağıtıcı (dispatcher) arasındaki iş bölümü için hangisi doğrudur?

C: Karar (politika) çizelgeleyicinin, devir (mekanizma) dağıtıcının işidir. Dağıtıcı her geçişte çalıştığı için hızlı olmalıdır; harcadığı süre dağıtım gecikmesidir. A rolleri ters çevirir; B bellek ve G/Ç yönetimini çizelgelemeyle karıştırır.

Çoktan Seçmeli · Temel Kavramlar

Soru 2: Yalnızca Kesmeli Çizelgelemede

Aşağıdaki durum geçişlerinden hangisinde çizelgeleme kararını yalnızca kesmeli bir çizelgeleyici verir?

D: Uyanan süreç hazır olur ama CPU zaten başka bir süreçtedir; çalışanı bırakıp uyananı seçmek ancak kesmeli çizelgelemede yapılır. Saat kesmesiyle çalışıyor → hazır geçişi de böyledir. A, B ve C'de CPU boşalır; seçim her çizelgeleyici için zorunludur.

Çıktı Sorusu · Temel Kavramlar

Soru 3: Gantt Şemasından Ölçütler

P1 (geliş 0, CPU 5), P2 (geliş 1, CPU 4) ve P3 (geliş 2, CPU 2) şekildeki gibi çizelgelendi. Üç sürecin dönüş, bekleme ve tepki sürelerini bulun.

P1P2P3P1P2P1024681011
Cevabı göster
SüreçBitişDönüşBeklemeTepki
P1111160
P210951
P36422
Ort.84,331

Dönüş = bitiş − geliş; bekleme = dönüş − CPU süresi; tepki = ilk çalışma − geliş.

P1 hemen başladı (tepki 0) ama iki kez kuyrukta bekledi: 2–6 ve 8–10 → 4 + 2 = 6. P2'nin beklemeleri 1–2 ve 4–8 → 5. Tepki süresi ilk beklemeyi, bekleme süresi tüm beklemeleri ölçer.

Çıktı Sorusu · Temel Algoritmalar

Soru 4: FCFS ve SJF

P1 (geliş 0, CPU 6), P2 (1, 3), P3 (2, 8), P4 (4, 2). FCFS ve kesmesiz SJF için Gantt şemasını çizin, ortalama bekleme ve dönüş sürelerini bulun.

Cevabı göster FCFSP1P2P3P40691719SJF (kesmesiz)P1P4P2P30681119
P1P2P3P4Ort. beklemeOrt. dönüş
FCFS bekleme057136,2511
SJF bekleme07924,59,25

SJF t = 6'da üç aday arasından en kısa P4'ü (2) öne alır. Toplam bitiş zamanı (19) değişmez, değişen sıradır; kısa işi öne almak uzun işe eklediğinden fazlasını kısa işten kazandırır.

Çıktı Sorusu · Temel Algoritmalar

Soru 5: Üstel Ortalama

Sonraki CPU patlaması τn+1 = α · tn + (1 − α) · τn ile tahmin ediliyor; α = 0,5 ve ilk tahmin τ0 = 12 ms. Ölçülen ilk üç patlama sırasıyla 8, 6 ve 10 ms. τ1, τ2 ve τ3 nedir? α = 1 olsaydı τ3 kaç olurdu?

Cevabı göster
  • τ1 = 0,5 · 8 + 0,5 · 12 = 10
  • τ2 = 0,5 · 6 + 0,5 · 10 = 8
  • τ3 = 0,5 · 10 + 0,5 · 8 = 9 ms
4812t0 = 8t1 = 6t2 = 10τ0τ1τ2τ3

α = 1 ise yalnızca son ölçüm sayılır: τ3 = t2 = 10. α = 0 olsaydı tahmin hiç değişmez, 12 kalırdı. Eski ölçümlerin ağırlığı her adımda (1 − α) ile çarpılarak üstel azalır.

Adım Adım Çalıştırma · Temel Algoritmalar

Soru 6: SRTF İzleme

P1 (geliş 0, CPU 7), P2 (2, 4), P3 (4, 1), P4 (5, 4) SRTF ile çizelgeleniyor. Gantt şeması ve ortalama bekleme süresi nedir?

0Hazır (kalan):P1:7

t = 0'da yalnız P1 hazır. SRTF her gelişte ve her bitişte kalan süreleri karşılaştırır; gerekirse çalışanı keser.

P102Hazır (kalan):P2:4P1:5

P1 0–2 çalıştı. t = 2'de P2 gelir: 4 < P1'in kalanı 5 → P1 kesilir, P2 çalışır.

P1P2024Hazır (kalan):P3:1P2:2P1:5

P2 2–4 çalıştı (kalan 2). t = 4'te P3 gelir: 1 < 2 → P2 kesilir, P3 çalışır.

P1P2P30245Hazır (kalan):P2:2P4:4P1:5

P3 4–5'te bitti; aynı anda P4 (4) geldi. Kalanlar P1 5, P2 2, P4 4 → P2 devam eder.

P1P2P3P202457Hazır (kalan):P4:4P1:5

P2 5–7'de bitti. Kalanlar P1 5, P4 4 → P4.

P1P2P3P2P40245711Hazır (kalan):P1:5

P4 7–11'de bitti. Geriye yalnız P1 kaldı; 2. ms'den beri bekliyor.

P1P2P3P2P4P1024571116Hazır (kalan):boş

P1 11–16. Bekleme: P1 16 − 0 − 7 = 9, P2 7 − 2 − 4 = 1, P3 0, P4 11 − 5 − 4 = 2 → ortalama 12 / 4 = 3 ms.

t = 0;
while (bitmeyen süreç var) {
  gelenleri hazır kümesine ekle(t);
  p = kalan süresi en küçük hazır süreç;
  p'yi 1 ms çalıştır; kalan[p]--; t++;
  if (kalan[p] == 0) bitis[p] = t;
}
for (her i)
  bekleme[i] = bitis[i] - gelis[i] - cpu[i];

Çıktı Sorusu · Temel Algoritmalar

Soru 7: Kesmeli Öncelik

Küçük sayı yüksek öncelik. P1 (geliş 0, CPU 5, öncelik 3), P2 (2, 4, 1), P3 (3, 2, 4), P4 (5, 3, 2), P5 (6, 1, 5). Kesmeli öncelik çizelgelemesinde Gantt şeması, ortalama bekleme ve ortalama dönüş süresi nedir?

Cevabı göster P1P2P4P1P3P50269121415
P1P2P3P4P5
Bitiş12614915
Dönüş1241149
Bekleme70918

Ortalama bekleme 25 / 5 = 5 ms, dönüş 40 / 5 = 8 ms. t = 2'de gelen P2 (öncelik 1) P1'i keser; P3 ve P4 P2'yi kesemez. P2 bitince sıra öncelik değerine göredir: P4, P1, P3, P5.

Kesmesiz öncelikte ortalama bekleme 4,8 ms çıkar: kesme her zaman ortalamayı iyileştirmez, yüksek öncelikli işi bekletmemeyi sağlar.

Çoktan Seçmeli · Temel Algoritmalar

Soru 8: Yaşlanma Süresi

Öncelikler 0 (en yüksek) ile 63 (en düşük) arasında. Yaşlanma uygulanıyor: hazır kuyruğunda bekleyen her sürecin öncelik sayısı her 10 saniyede 1 azaltılıyor. Önceliği 63 olan bir süreç, hiç çalışmasa bile en geç kaç saniyede 0 önceliğine ulaşır?

B: 63'ten 0'a 63 adım vardır: 63 × 10 s = 630 s (10,5 dakika). C, 0 ile 63 arasındaki 64 değeri sayıp bir adım fazla alır. Yaşlanma açlığı ortadan kaldırmaz ama beklemeye sonlu bir üst sınır koyar.

Adım Adım Çalıştırma · Round Robin

Soru 9: RR İzleme: q = 3

P1 (geliş 0, CPU 5), P2 (1, 3), P3 (2, 6), P4 (4, 2); q = 3 ms. Aynı anda gelen yeni süreç, dilimi biten süreçten önce kuyruğa girer. Gantt şeması, ortalama bekleme ve ortalama tepki süresi nedir?

0Hazır kuyruğu:P1

Kuyrukta yalnız P1 var. Her süreç en fazla q = 3 ms çalışıp kuyruğun sonuna döner.

P103Hazır kuyruğu:P2P3P1

P1 0–3 çalıştı (kalan 2). Arada gelen P2 ve P3 kuyruğa P1'den önce girdi.

P1P2036Hazır kuyruğu:P3P1P4

P2 3–6'da dilim dolarken bitti. t = 4'te gelen P4 kuyruğun sonunda.

P1P2P30369Hazır kuyruğu:P1P4P3

P3 6–9 çalıştı (kalan 3) ve sona döndü.

P1P2P3P1036911Hazır kuyruğu:P4P3

P1 kalan 2 ms'yi 9–11'de kullanıp bitti: dilim dolmadan CPU'yu bırakır.

P1P2P3P1P403691113Hazır kuyruğu:P3

P4 11–13'te bitti; ilk kez CPU'ya çıkması 11'de oldu (tepki 11 − 4 = 7).

P1P2P3P1P4P30369111316Hazır kuyruğu:boş

P3 13–16. Ortalama bekleme 23 / 4 = 5,75, ortalama tepki 13 / 4 = 3,25 ms; 5 bağlam değiştirme.

kuyruk = [ilk gelen];
while (kuyruk boş değil) {
  p = kuyruk.cikar();
  calis = min(q, kalan[p]);
  p'yi calis ms çalıştır; t += calis;
  bu sürede gelenleri kuyruğa ekle;
  kalan[p] -= calis;
  if (kalan[p] > 0) kuyruk.ekle(p);
  else bitis[p] = t;
}

Çoktan Seçmeli · Round Robin

Soru 10: Bağlam Değiştirme Kaybı

RR'de zaman dilimi q = 4 ms, her bağlam değiştirme s = 1 ms sürüyor ve süreçler dilimlerini hep sonuna kadar kullanıyor. CPU zamanının yüzde kaçı bağlam değiştirmeye gider?

B: Her turda 4 ms iş ve 1 ms geçiş vardır: s / (q + s) = 1 / 5 = %20. C, s / q oranıdır (geçiş süresini toplama katmaz); D yararlı işin payıdır. q küçüldükçe kayıp artar; q çok büyürse RR FCFS'ye döner.

Çıktı Sorusu · Round Robin

Soru 11: Eşit İşlerde RR

A, B, C, D t = 0'da bu sırayla geliyor; her biri 4 ms CPU istiyor. FCFS ve q = 1 ms'lik RR için ortalama dönüş ve ortalama tepki süresini bulun. Hangi ölçütte hangisi daha iyidir?

Cevabı göster FCFSABCD0481216RR, q = 1ABCDABCDABCDABCD012345678910111213141516
  • FCFS: bitişler 4, 8, 12, 16 → dönüş 10; tepki (0 + 4 + 8 + 12) / 4 = 6 ms.
  • RR: bitişler 13, 14, 15, 16 → dönüş 14,5; tepki (0 + 1 + 2 + 3) / 4 = 1,5 ms.

Eşit uzunluktaki işlerde RR tepkide en iyi, dönüşte en kötü seçeneklerdendir: herkes sona kadar bekletilir. Ayrıca RR 15 bağlam değiştirme yapar, FCFS 3.

Adım Adım Çalıştırma · Çok Düzeyli Kuyruklar

Soru 12: MLFQ İzleme

Üç kuyruk: Q0 (q = 4), Q1 (q = 8), Q2 (FCFS). İşler: A (geliş 0, CPU 14), B (1, 3), C (3, 9), D (16, 2). Kesilen iş kuyruğunun başına döner ve dilimini tamamlar. İşler ne zaman biter?

0Q0 (q = 4)AQ1 (q = 8)—Q2 (FCFS)—

A gelir ve Q0'a girer. Yeni her iş önce kısa sayılır, en üst kuyruktan başlar.

A04Q0 (q = 4)CQ1 (q = 8)AQ2 (FCFS)—

A 4 ms'lik dilimini doldurdu → Q1'e iner. Q0'da B ve C bekliyordu; B çalışır.

AB047Q0 (q = 4)—Q1 (q = 8)AQ2 (FCFS)—

B 3 ms'de, dilimi dolmadan bitti (tepki 4 − 1 = 3). Sıra Q0'daki C'de.

ABC04711Q0 (q = 4)—Q1 (q = 8)CQ2 (FCFS)—

C de dilimini doldurup Q1'e iner. Q0 boş → Q1'in başındaki A 8 ms'lik dilimle çalışır.

ABCA0471116Q0 (q = 4)—Q1 (q = 8)ACQ2 (FCFS)—

t = 16'da D gelir ve Q0'a girer: A kesilir (dilimin 5 ms'sini kullandı), Q1'in başına döner.

ABCAD047111618Q0 (q = 4)—Q1 (q = 8)CQ2 (FCFS)—

D 16–18'de bitti (tepki 0). A, Q1 dilimini tamamlamak için kalan 3 ms'yi kullanır.

ABCADA04711161821Q0 (q = 4)—Q1 (q = 8)—Q2 (FCFS)A

A Q1 dilimini de doldurdu (4 + 8 = 12 ms) → Q2. C Q1'de çalışır; kalan 5 ms dilime sığar.

ABCADAC0471116182126Q0 (q = 4)—Q1 (q = 8)—Q2 (FCFS)—

C 26'da bitti. Q0 ve Q1 boş; A Q2'de FCFS ile kalan 2 ms'yi çalışır.

ABCADACA047111618212628Q0 (q = 4)—Q1 (q = 8)—Q2 (FCFS)—

Bitişler: B 7, D 18, C 26, A 28. Kısa B ve D üst kuyrukta hızla biter; uzun A aşağı süzülür.

yeni iş → Q0;
while (iş var) {
  p = en üst dolu kuyruğun başı;
  p'yi en çok dilimi kadar çalıştır;
  if (üst kuyruğa iş geldi)
    p kesilir → kendi kuyruğunun başına;
  else if (p bitti) bitis[p] = t;
  else p bir alt kuyruğa iner;
}

Çoktan Seçmeli · Çok Düzeyli Kuyruklar

Soru 13: MLFQ'yu Kandırmak

Bir iş, Q0'daki 10 ms'lik dilimin hep 9 ms'sini kullanıp kısa bir G/Ç yapıyor; böylece hiç alt kuyruğa inmeden CPU'nun büyük bölümünü alıyor. Bu oyunu bozan kural hangisidir?

A: Hak (allotment) düzeydeki toplam kullanım olarak tutulursa CPU'yu kaç kez bıraktığının önemi kalmaz; 10 ms dolunca iş aşağı iner. B açlığı önler, oyunu bozmaz. C gerçekten etkileşimli işleri cezalandırır; D yalnızca eşiği kaydırır.

Çıktı Sorusu · Orantılı Pay

Soru 14: Stride Sırası

Stride çizelgelemede A'nın 50, B'nin 100, C'nin 25 bileti var; adım = 10 000 / bilet. Her dilimde pass değeri en küçük süreç çalışır ve pass değerine adımını ekler; eşitlikte A, B, C sırası. İlk 7 dilimde çalışma sırası nedir? Her süreç kaç dilim alır?

Cevabı göster

Adımlar: A 200, B 100, C 400.

Dilimpass Apass Bpass CÇalışan
1000A
220000B
32001000C
4200100400B
5200200400A
6400200400B
7400300400B

Sıra A, B, C, B, A, B, B; A 2, B 4, C 1 dilim. 7 dilimde oran tam olarak 2 : 4 : 1 = 50 : 100 : 25. Sonda üç pass değeri de 400'dür. Piyangoda aynı oran ancak uzun vadede ve yaklaşık olarak tutar.

Çoktan Seçmeli · Orantılı Pay

Soru 15: Piyango Payı

Piyango çizelgelemede A'nın 50, B'nin 30, C'nin 20 bileti var. C'ye 20 bilet daha verilirse 240 dilimde C'nin beklenen dilim sayısı kaçtır?

C: Toplam 120 bilet olur; C'nin payı 40 / 120 = 1/3 → 240 / 3 = 80. A eski payla (%20) hesaplar; D toplamı 100 sanıp %40 alır. Piyango olasılıksaldır: 80 beklenen değerdir, kısa vadede sapma görülür.

Çoktan Seçmeli · Çok İşlemcili Çizelgeleme

Soru 16: Boşta Kalan CPU

Çekirdek başına hazır kuyruğu olan bir sistemde CPU2'nin kuyruğu boşalıyor; CPU2 en yüklü kuyruktan bir iş alıp çalıştırıyor. Bu mekanizmanın adı ve bedeli nedir?

D: Boşta kalan CPU'nun iş çekmesi çekme göçüdür (pull); periyodik dengeleyicinin aşırı yüklü CPU'dan iş itmesi itme göçüdür (push). Linux ikisini de kullanır. Göç dengeyi sağlar ama işlemci afinitesini bozar: önbellek ve NUMA yerelliği kaybolur.

Çıktı Sorusu · Gerçek Zamanlı Çizelgeleme

Soru 17: RM ve EDF

İki periyodik görev: T1 (çalışma 2, periyot 5), T2 (çalışma 4, periyot 7); son tarih periyot sonu. Toplam kullanım U nedir? RM ve EDF ile ilk son tarihler karşılanır mı?

Cevabı göster

U = 2/5 + 4/7 = 34/35 ≈ 0,97. RM için n = 2 sınırı ≈ 0,828 aşılıyor: garanti yok. EDF için U ≤ 1 yeterli.

RM (T1 her zaman önce)T1T2T10257t = 7: T2'nin 1 ms'si kaldı → son tarih kaçırıldıEDF (son tarihi en yakın olan önce)T1T2T1T2T102681214

RM'de t = 5'te gelen T1 statik önceliğiyle T2'yi keser. EDF'de t = 5'te T1'in son tarihi 10, T2'ninki 7: T2 devam eder ve 6'da biter. 35 ms'lik hiperperiyot boyunca EDF hiç son tarih kaçırmaz.

Çoktan Seçmeli · İşletim Sistemi Örnekleri

Soru 18: CFS'de CPU Payı

Linux CFS'de CPU'ya bağlı iki görev var: A nice 0 (ağırlık 1024), B nice 5 (ağırlık 335). CPU'yu yaklaşık hangi oranda paylaşırlar (A : B)?

A: Pay ağırlıkla orantılıdır: 1024 / (1024 + 335) ≈ %75, B ≈ %25. vruntime += Δ × 1024 / ağırlık olduğundan B'nin sanal süresi yaklaşık 3 kat hızlı artar ve daha seyrek seçilir. D, nice farkını doğrudan oran sanar; her nice adımı yaklaşık 1,25 kat ağırlık farkıdır.

Çoktan Seçmeli · Değerlendirme

Soru 19: Little Yasası

Bir sunucuya saniyede ortalama λ = 6 istek geliyor ve sistemde ortalama n = 18 istek bulunuyor. Little yasasına göre bir istek sistemde ortalama ne kadar kalır?

B: n = λ × W → W = 18 / 6 = 3 s. D çarpımdır (λ × n); A ve C fark ve toplamdır. Little yasası geliş ve hizmet dağılımından bağımsızdır; kuyruk modellerinin temel aracıdır.

Son

Bölüm 5: CPU Çizelgeleme: Çalışma Soruları
Konu anlatımı: CPU çizelgeleme sunumu · Terim sözlüğü
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.