---
title: 'Konteyner ve Hipervizör Güvenliği'
source: 'https://academia.sh/tr/kurslar/bulut-guvenligi/konteyner-ve-hipervizor-guvenligi'
course: 'Bulut ve Sanallaştırma Güvenliği'
language: tr
updated: '2026-08-17T18:08:34+00:00'
license: 'CC BY-SA 4.0'
---

# Konteyner ve Hipervizör Güvenliği

Kaçış yarıçapının çok kiracılı ortamda ölçülmesi: 18 iş yükü, üç kiracı ve altı konak üzerinde paylaşık yerleşimde bir konteyner kaçışı en kötü durumda 18 kaleme ulaşıyor ve sekiz iş yükünün yedisinde başka bir kiracıya taşıyor. Kiracıya göre ayırma çapraz kaçışı sıfırlarken kendi en kötü yarıçapını 21'e çıkarıyor, kimliğe göre ayırma en kötüyü 18'de bırakıp ortalamayı 12,5'ten 8,5'e indiriyor ve konak sayısını 6'dan 13'e çıkarıyor. Yalıtımı güçlendirmek geçmek için gereken kalemi 1'den 3'e çıkarıyor ama yarıçapı hiç indirmiyor.

Buraya kadar her yanlış kalem kiracının kendi hesabının içindeydi. Bir kalem bu tanıma uymuyor: iş
yükünün üzerinde koştuğu bölmenin ya da konuk sistemin sınırı. O sınırı kiracı yazmaz, sağlayıcı
kurar; ve düştüğünde ulaşılan kalem kümesi kiracının hesabıyla sınırlı kalmaz, çünkü aynı fiziksel
konakta başka kiracıların iş yükleri de koşuyor olabilir.

Konuk ile konak arasındaki paylaşılan kalemler, sınırı geçmek için aynı anda yanlış olması gereken
kalem sayısı ve konteyner ile konuk sistemin bu ölçüde ayrışması **Bilgi Teknolojileri ve Sistem
Temelleri** kursunda ölçüldü. Burada tekrarlanmaz; **girdi olarak alınır**. Bu dersin sorusu tektir:
sınır düştüğünde **kaç kaleme** ulaşılıyor ve bu sayı tek kiracılı bir konakta ile paylaşılan bir
konakta nasıl değişiyor. Kaçış bir **modeldir**: hiçbir istismar adımı, çağrı dizisi ya da kod
yazılmaz, yalnızca sınırın düştüğü varsayılır ve sonrası sayılır. Bir bölme ya da konuk sınırını
gerçek bir sistemde sınamak, yazılı yetki ve tanımlı kapsam olmadan yapıldığında hem yasadışı hem
de meslek dışıdır.

**BT13.** Model üç kiracı, 18 iş yükü ve sekiz çekirdeklik konaklardan oluşur; her iş yükü bir
kiracıya, bir kimliğe ve bir çekirdek talebine bağlıdır (kurgu).
**BT14.** Yerleştirme ilk uygun konaktır; ayırma ölçütü yok, kiracıya göre ya da kimliğe göre olur.
**BT15.** Kaçış modeli şudur: bir iş yükünde sınır düşer ve **aynı konaktaki tüm iş yüklerine**
ulaşılır. Konaklar arası yayılma modele dahil değildir.
**BT16.** Ulaşılan kendi iş yüklerinin kimlikleri erişim grafiğine girdi olur; yarıçap o
kimliklerden erişilen kalem sayısıdır.
**BT17.** Başka kiracıların grafiği kiracıya kapalıdır; o taraf yalnız **ulaşılan iş yükü ve kiracı
sayısı** olarak sayılır.
**BT18.** Yalıtım türünün paylaşılan kalem ve gereken kalem sayıları önceki kurstan alınmıştır;
konuk sistemin iş yükü başına bir çekirdeklik ek yükü modelde yazılıdır.

## Kaçışın Ulaştığı Komşu

```js
// yerlesim.mjs — konteyner kacisinin yaricapi: ayni konaktaki is yukleri ve onlarin kimlikleri.
// MODELDIR. Kacis bir MODEL adimidir; hicbir istismar adimi, cagri dizisi ya da kod yazilmaz.
const bol = (s) => s.trim().split("\n").map((l) => l.trim().split("|"));

// Is yuku: ad|kiraci|kimlik|cekirdek talebi. Uc kiraci, 18 is yuku (kurgu).
export const IS = bol(`
  portal-1|olcum|portal-ornek-kimligi|2      b-portal|kiraci-b|b-kimlik-1|3
  c-kapi|kiraci-c|c-kimlik-1|3               toplama-1|olcum|toplama-is-yuku-kimligi|3
  b-akis|kiraci-b|b-kimlik-2|3               c-hesap|kiraci-c|c-kimlik-2|3
  portal-2|olcum|portal-ornek-kimligi|2      b-toplu|kiraci-b|b-kimlik-3|4
  toplama-2|olcum|toplama-is-yuku-kimligi|3  c-rapor|kiraci-c|c-kimlik-3|2
  fatura-toplu|olcum|fatura-toplu-is-rolu|4  b-arsiv|kiraci-b|b-kimlik-3|2
  yedekleme|olcum|yedekleme-rolu|2           b-pano|kiraci-b|b-kimlik-4|1
  c-yedek|kiraci-c|c-kimlik-3|1              rapor|olcum|okuma-rolu|1
  b-sinama|kiraci-b|b-kimlik-4|1             pano|olcum|izleme-rolu|1`
  .replace(/\s{2,}/g, "\n")).map(([ad, kiraci, kimlik, c]) => ({ ad, kiraci, kimlik, c: +c }));

// Erisim grafigi (onceki derslerdeki grafik, sure sutunu olmadan): kaynak|hedef
const KENAR = bol(`
  portal-hizmet-hesabi|portal-ornegi        portal-hizmet-hesabi|okuma-rolu
  portal-ornegi|portal-ornek-kimligi        portal-ornek-kimligi|abone-veritabani
  portal-ornek-kimligi|sir-deposu           sir-deposu|toplama-is-yuku-kimligi
  toplama-is-yuku-kimligi|sayac-ham-kova    toplama-is-yuku-kimligi|olcum-kuyrugu
  toplama-is-yuku-kimligi|izleme-rolu       izleme-rolu|olcum-panosu
  portal-ornek-kimligi|fatura-toplu-is-rolu  fatura-toplu-is-rolu|fatura-arsiv-kovasi
  fatura-toplu-is-rolu|anahtar-yonetimi     anahtar-yonetimi|musteri-anahtari
  fatura-toplu-is-rolu|yedekleme-rolu       yedekleme-rolu|yedek-kovasi
  yedekleme-rolu|dagitim-rolu               dagitim-rolu|sablon-deposu
  dagitim-rolu|yapilandirma-kovasi          dagitim-rolu|is-yuku-ornegi
  okuma-rolu|rapor-kovasi                   okuma-rolu|gunluk-kovasi
  okuma-rolu|yapilandirma-kovasi`.replace(/\s{2,}/g, "\n"));

// Bir kimlikten erisilen kalem kumesi (enine arama).
export function erisim(baslangic) {
  const g = new Set(baslangic), kuyruk = [...baslangic];
  while (kuyruk.length) {
    const n = kuyruk.shift();
    for (const [k, h] of KENAR) if (k === n && !g.has(h)) { g.add(h); kuyruk.push(h); }
  }
  return g;
}

// Yerlestirme: ilk uygun konak. Ayirma olcutu "yok", "kiraci" ya da "kimlik" olabilir.
export function yerlestir(ayirma, ek = 0, KAP = 8) {
  const konak = [];
  for (const is of IS.map((i) => ({ ...i, c: i.c + ek }))) {
    const etiket = ayirma === "yok" ? null : ayirma === "kiraci" ? is.kiraci : is.kimlik;
    let k = konak.find((x) => x.kalan >= is.c && (etiket === null || x.etiket === etiket));
    if (!k) { k = { ad: `konak-${konak.length + 1}`, etiket, kalan: KAP, is: [] }; konak.push(k); }
    k.kalan -= is.c; k.is.push(is);
  }
  return konak;
}

// Kacis modeli: bir is yukunde sinir dusuyor, ayni konaktaki tum is yuklerine ulasiliyor.
export function kacis(konak, baslangicIs) {
  const k = konak.find((x) => x.is.some((i) => i.ad === baslangicIs));
  const ulasilan = k.is;
  const kendi = ulasilan.filter((i) => i.kiraci === "olcum");
  const baska = ulasilan.filter((i) => i.kiraci !== "olcum");
  const kalem = erisim(kendi.map((i) => i.kimlik));
  return { konak: k.ad, is: ulasilan.length, kendiIs: kendi.length, baskaIs: baska.length,
    baskaKiraci: new Set(baska.map((i) => i.kiraci)).size,
    kimlik: new Set(ulasilan.map((i) => i.kimlik)).size, kalem: kalem.size };
}

const gen = (B) => (h) => h.map((v, j) => j ? String(v).padStart(B[j]) : String(v).padEnd(B[0]))
  .join("");

if (import.meta.url === `file://${process.argv[1]}`) {
  const yz = gen([22, 8, 10, 14, 16, 14, 10]);
  console.log(`${IS.length} is yuku, ${new Set(IS.map((i) => i.kiraci)).size} kiraci, ` +
    `konak kapasitesi 8 cekirdek; toplam talep ${IS.reduce((t, i) => t + i.c, 0)} cekirdek`);
  console.log("\n" + yz(["ayirma olcutu", "konak", "doluluk", "kacis konagi", "ulasilan is",
    "baska kiraci", "yaricap"]));
  for (const [ad, ayirma] of [["yok (paylasik)", "yok"], ["kiraciya gore", "kiraci"],
    ["kimlige gore", "kimlik"]]) {
    const k = yerlestir(ayirma);
    const r = kacis(k, "portal-1");
    const doluluk = Math.round(100 * IS.reduce((t, i) => t + i.c, 0) / (k.length * 8));
    console.log(yz([ad, k.length, `%${doluluk}`, r.konak, `${r.is} (${r.kendiIs} kendi)`,
      r.baskaKiraci, `${r.kalem}/28`]));
  }

  // Her is yukunden kacis: en kotu ve ortalama yaricap, paylasik ve kiraciya gore ayrilmis duzende.
  console.log();
  const yo = gen([22, 12, 12, 16, 18]);
  console.log(yo(["ayirma olcutu", "en kotu", "ortalama", "baska kiraciya", "kendi kalemine"]));
  for (const [ad, ayirma] of [["yok (paylasik)", "yok"], ["kiraciya gore", "kiraci"],
    ["kimlige gore", "kimlik"]]) {
    const k = yerlestir(ayirma);
    const r = IS.filter((i) => i.kiraci === "olcum").map((i) => kacis(k, i.ad));
    const ort = (r.reduce((t, x) => t + x.kalem, 0) / r.length).toFixed(1);
    console.log(yo([ad, `${Math.max(...r.map((x) => x.kalem))}/28`, ort,
      `${r.filter((x) => x.baskaIs > 0).length}/${r.length} kacis`,
      `${(r.reduce((t, x) => t + x.baskaIs, 0) / r.length).toFixed(1)} is yuku`]));
  }
}
```
```
18 is yuku, 3 kiraci, konak kapasitesi 8 cekirdek; toplam talep 41 cekirdek

ayirma olcutu            konak   doluluk  kacis konagi     ulasilan is  baska kiraci   yaricap
yok (paylasik)               6       %85       konak-1     3 (1 kendi)             2     18/28
kiraciya gore                7       %73       konak-1     4 (4 kendi)             0     21/28
kimlige gore                13       %39       konak-1     2 (2 kendi)             0     18/28

ayirma olcutu              en kotu    ortalama  baska kiraciya    kendi kalemine
yok (paylasik)               18/28        12.5       7/8 kacis       1.3 is yuku
kiraciya gore                21/28        16.9       0/8 kacis       0.0 is yuku
kimlige gore                 18/28         8.5       0/8 kacis       0.0 is yuku
```

Üst tablo tek bir kaçışa bakıyor. Paylaşık yerleşimde portal iş yükünün konağında üç iş yükü var
ve bunların yalnız biri kendi kiracımızın; kaçış iki başka kiracıya taşıyor. Kendi kalemlerimizden
18'ine ulaşılıyor. Kiracıya göre ayrılmış yerleşimde aynı konakta dört iş yükünün dördü de bizim ve
yarıçap 21'e çıkıyor. Çapraz kaçış sıfır, kendi yarıçapımız daha büyük.

## Kendi Kalemi ve Başka Kiracı

Alt tablo sekiz iş yükünün her birinden kaçışı ayrı ayrı koşturuyor ve iki sütunun **ters yönde**
hareket ettiğini gösteriyor. Paylaşık yerleşimde kendi en kötü yarıçapımız 18, ortalama 12,5; ama
sekiz kaçışın yedisi başka bir kiracıya taşıyor ve kaçış başına ortalama 1,3 yabancı iş yüküne
ulaşılıyor. Kiracıya göre ayırma o yedi kaçışı sıfıra indiriyor — hiçbir kaçış kiracı sınırını
geçmiyor — ama kendi en kötü yarıçapımızı 18'den 21'e, ortalamayı 12,5'ten 16,9'a çıkarıyor.

Neden yükseldiği açıktır ve söylenmelidir: kiracıya göre ayırma, kendi iş yüklerimizi aynı
konaklarda **yoğunlaştırır**. Yabancı komşu kaldırıldığında yerine kendi komşumuz gelir ve kendi
komşumuzun kimliği erişim grafiğinde bir düğümdür. Kiracı ayrımı, ölçüyü düşürdüğü için değil,
**başka birinin ölçüsünü** düşürdüğü için yapılır.

Kimliğe göre ayırma da en kötü durumu kurtarmıyor: orada da 18 yazıyor. Nedeni tek bir kimliğin
grafikte bir kavşak olmasıdır — portalın örneğe bağlı kimliği tek başına 18 kaleme ulaşır, yanında
komşu olsun ya da olmasın. Kimliğe göre ayırmanın indirdiği sayı **ortalamadır**: 12,5'ten 8,5'e.
Yerleşimle oynamak, kavşak kimliğin kendi yarıçapını hiçbir zaman kısaltmaz.

## Komşunun Görünmezliği

Tablodaki üç sütunun hepsi ölçülebilir görünüyor, ama kiracı tarafından ölçülebilen yalnız biri
var. Kiracı hangi konakta durduğunu ve o konakta başka kimin bulunduğunu **sayamaz**: yerleşim
ölçütü sağlayıcıya verilen bir istektir, karşılığı ise ne bir kayıtta ne bir envanterde görünür.
"Başka kiracıya" sütunu bu modelde hesaplanabiliyor çünkü yerleşimi biz kurduk; gerçek bir kiracı
o sayıyı hiçbir zaman doğrudan göremez.

Bunun tespit tarafındaki karşılığı birinci dersin kayıtsız adım sınıfının bir başka biçimidir.
Kaçış gerçekleştiğinde kiracının kaydında görünebilecek tek şey **kendi kimliklerinin
kullanımıdır**: komşu iş yüküne geçiş, konak üzerindeki hareket ve yabancı kiracıya taşma kiracının
hiçbir kaydına düşmez. Bu yüzden çapraz kaçışın ölçüsü kiracı için bir tespit sayısı değil, bir
**sözleşme sorusudur**: hangi ayırma ölçütünün uygulandığı, bunun nasıl doğrulandığı ve komşu
kümesinde bir olay olduğunda kiracının bilgilendirilip bilgilendirilmeyeceği önceden yazılmalıdır.
Yazılmamışsa tablodaki son sütun kiracı için boştur.

## Yalıtım Gücü mü, Yerleşim mi

```js
// yalitim.mjs — yalitim gucu ile yerlesim ayrimi ayri ayri olculur. MODELDIR.
import { IS, yerlestir, kacis } from "./yerlesim.mjs";

// Yalitim turu: paylasilan kalem sayisi ve siniri gecmek icin AYNI ANDA yanlis olmasi gereken
// kalem sayisi, Bilgi Teknolojileri ve Sistem Temelleri kursunda olculmustur; burada GIRDIDIR.
// ek: is yuku basina ek cekirdek talebi (konuk sistemin kendi yuku).
const YALITIM = {
  "konteyner (ayni cekirdek)": { paylasilan: 12, gereken: 1, ek: 0 },
  "konuk (hipervizor)": { paylasilan: 5, gereken: 3, ek: 1 },
};
const AYIRMA = [["yok", "yok"], ["kiraci", "kiraci"], ["kimlik", "kimlik"]];
const KENDI = IS.filter((i) => i.kiraci === "olcum");

const gen = (B) => (h) => h.map((v, j) => j ? String(v).padStart(B[j]) : String(v).padEnd(B[0]))
  .join("");
const yz = gen([25, 10, 10, 8, 10, 12, 16]);

console.log(yz(["yalitim", "ayirma", "gereken", "konak", "doluluk", "en kotu", "baska kiraciya"]));
const sonuc = {};
for (const [ad, y] of Object.entries(YALITIM)) for (const [etiket, ayirma] of AYIRMA) {
  const konak = yerlestir(ayirma, y.ek);
  const talep = IS.reduce((t, i) => t + i.c + y.ek, 0);
  const r = KENDI.map((i) => kacis(konak, i.ad));
  const capraz = r.filter((x) => x.baskaIs > 0).length;
  sonuc[`${ad}|${ayirma}`] = { ust: Math.max(...r.map((x) => x.kalem)), capraz, konak: konak.length,
    ort: (r.reduce((s, x) => s + x.kalem, 0) / r.length).toFixed(1) };
  console.log(yz([ad, etiket, y.gereken, konak.length,
    `%${Math.round(100 * talep / (konak.length * 8))}`,
    `${Math.max(...r.map((x) => x.kalem))}/28`, `${capraz}/${KENDI.length} kacis`]));
}

const b = sonuc["konteyner (ayni cekirdek)|yok"], k = sonuc["konuk (hipervizor)|yok"];
const ba = sonuc["konteyner (ayni cekirdek)|kiraci"], ka = sonuc["konuk (hipervizor)|kimlik"];
console.log(`\nyalitimi guclendirmek gereken kalemi 1 -> 3 yapiyor; ayni yerlesim uzerinde iki ` +
  `yalitim turu ayni yaricapi verir (${b.ust}/28). Yalitim turu gecilme kosulunu degistirir, ` +
  `gecildiginde ulasilan kalemi degil`);
console.log(`konuk sisteminin is yuku basina 1 cekirdeklik ek yuku konak sayisini ` +
  `${b.konak} -> ${k.konak} cikariyor; en kotu yaricap ${k.ust}/28 ile ayni kaliyor`);
console.log(`ayirmayi kiraciya gore yapmak capraz kacisi ${b.capraz}/${KENDI.length} -> ` +
  `${ba.capraz}/${KENDI.length} indiriyor ama kendi yaricapini buyutuyor: en kotu ` +
  `${b.ust} -> ${ba.ust}, ortalama ${b.ort} -> ${ba.ort}`);
console.log(`kimlige gore ayirma en kotu yaricapi indirmiyor (${ka.ust}/28) cunku en genis ` +
  `kimlik tek basina o kadar kaleme ulasiyor; indirdigi sey ortalamadir: ${b.ort} -> ${ka.ort}. ` +
  `Bedeli ${b.konak} -> ${ka.konak} konaktir`);
```
```
yalitim                      ayirma   gereken   konak   doluluk     en kotu  baska kiraciya
konteyner (ayni cekirdek)       yok         1       6       %85       18/28       7/8 kacis
konteyner (ayni cekirdek)    kiraci         1       7       %73       21/28       0/8 kacis
konteyner (ayni cekirdek)    kimlik         1      13       %39       18/28       0/8 kacis
konuk (hipervizor)              yok         3       8       %92       18/28       8/8 kacis
konuk (hipervizor)           kiraci         3       9       %82       18/28       0/8 kacis
konuk (hipervizor)           kimlik         3      13       %57       18/28       0/8 kacis

yalitimi guclendirmek gereken kalemi 1 -> 3 yapiyor; ayni yerlesim uzerinde iki yalitim turu ayni yaricapi verir (18/28). Yalitim turu gecilme kosulunu degistirir, gecildiginde ulasilan kalemi degil
konuk sisteminin is yuku basina 1 cekirdeklik ek yuku konak sayisini 6 -> 8 cikariyor; en kotu yaricap 18/28 ile ayni kaliyor
ayirmayi kiraciya gore yapmak capraz kacisi 7/8 -> 0/8 indiriyor ama kendi yaricapini buyutuyor: en kotu 18 -> 21, ortalama 12.5 -> 16.9
kimlige gore ayirma en kotu yaricapi indirmiyor (18/28) cunku en genis kimlik tek basina o kadar kaleme ulasiyor; indirdigi sey ortalamadir: 12.5 -> 8.5. Bedeli 6 -> 13 konaktir
```

## İki Kaldıraç

Tablo iki kaldıracı yan yana koyuyor ve bunların aynı sütuna yazılmadığını gösteriyor. **Yalıtım
gücü** "gereken" sütununu değiştirir: aynı çekirdeği paylaşan bir bölmede sınırı geçmek için tek
bir kalemin yanlış olması yetiyor, konuk sistem sınırında üç kalemin aynı anda yanlış olması
gerekiyor. Bu, sınırın geçilme koşuludur. **Yerleşim ayrımı** ise "en kötü" ve "başka kiracıya"
sütunlarını değiştirir; sınır geçildikten sonra ne bulunacağını belirler.

İkisinin karıştırılmaması gerektiği altı satırda birden görülüyor: "en kötü" sütununda konteyner ve
konuk yalıtımı **aynı sayıyı** veriyor. Konuk sistemine geçmek konak sayısını 6'dan 8'e çıkarıyor,
doluluğu %85'ten %92'ye taşıyor ve yarıçapı 18'de bırakıyor. Bu, kursun ikinci "yarıçapı
düşürmeyen denetim" örneğidir; ilkinden — kayıttan — farkı, bu kez denetimin gerçekten bir şey
yapmasıdır: sınırın geçilme koşulunu bir kalemden üç kaleme çıkarır, ama geçildiğinde ulaşılan
kalem sayısına dokunmaz.

Bedel sütunu da okunmalıdır. Kimliğe göre ayırma çapraz kaçışı sıfırlar ve ortalamayı 12,5'ten
8,5'e indirir, ama en kötü durumu 18'de bırakır; karşılığında konak sayısı 6'dan 13'e çıkar ve
doluluk %85'ten %39'a düşer. Ortadaki seçenek — kiracıya göre ayırma — çapraz kaçışı yedi kaçıştan
sıfıra indirir, bir konak ekler ve kendi en kötü yarıçapımızı üç kalem büyütür. Üç satırın hiçbiri
en kötü durumu 18'in altına indirmiyor; onu indirmenin tek yolu bu dersin dışındadır ve kavşak
kimliğin kendi yetkisini daraltmaktan geçer.

## Özet

- Paylaşık yerleşimde bir konteyner kaçışı kendi kalemlerimizden en kötü durumda 18'ine ulaşıyor;
  sekiz kaçışın yedisi başka bir kiracıya taşıyor ve kaçış başına ortalama 1,3 yabancı iş yükü
  ulaşılabilir oluyor.
- Kiracıya göre ayırma çapraz kaçışı yediden sıfıra indirir ama kendi en kötü yarıçapını 18'den
  21'e, ortalamayı 12,5'ten 16,9'a çıkarır: yabancı komşu kaldırıldığında yerine kendi komşumuz gelir.
- Kimliğe göre ayırma en kötü durumu 18'de bırakır ve yalnız ortalamayı 12,5'ten 8,5'e indirir;
  bedeli konak sayısının 6'dan 13'e çıkması ve dolulukta %85'ten %39'a düşüştür.
- Yalıtım gücü sınırın **geçilme koşulunu** değiştirir: aynı çekirdeği paylaşan bölmede bir kalem
  yeterken konuk sistem sınırında üç kalemin aynı anda yanlış olması gerekir.
- Yarıçap altı satırın hepsinde 18 ya da 21'dir; ne yalıtım türü ne de konuk sisteminin ek çekirdek
  yükü onu indirir, çünkü kavşak kimlik tek başına o kadar kaleme ulaşır.
- Kiracı komşu kümesini sayamaz: yerleşim ölçütü sağlayıcıya verilen bir istektir ve kaçışın
  komşuya taşan kısmı kiracının hiçbir kaydına düşmez, bu yüzden sözleşmede yazılmalıdır.

## Sonraki Adım

Bu dersin bütün ölçümü, iş yükünün kaçış anında **ayakta** olduğunu varsaydı: konakta duruyor,
kimliği kullanılabiliyor, komşusu görülebiliyor. Bazı iş yükleri bu varsayımı sağlamaz. Bir işlev
çalıştırma ortamında iş yükü saniyeler sürer, işi biter ve ortadan kalkar; geride ne bir konak
kaydı ne de incelenecek bir süreç bırakır. Sonraki ders bu iş yüklerinde kaydın toplanabildiği
pencereyi ölçer: iş yükü kaç saniye yaşıyor, kaç kalem yaşarken toplanmazsa kayboluyor.
