Bölüm 14: Çoklu Ortam Sistemleri
Giriş
Öğrenme Çıktıları
Sıkıştırmasız ses ve video veri hızlarını hesaplamak; gerçek zaman, titreşim ve QoS kavramlarını açıklamak.
Örnekleme, niceleme ve Nyquist ölçütünü uygulamak; psikoakustik maskelemenin sıkıştırmadaki rolünü anlatmak.
YCbCr ve 4:2:0, JPEG boru hattı (DCT, niceleme, zikzak, Huffman) ve I/P/B kareli MPEG kodlamayı izlemek.
Periyodik görevlerde RMS ve EDF zaman çizelgesini çıkarmak; kullanım sınırıyla çizelgelenebilirliği sınamak.
İtme/çekme sunucuları, NVOD, blok boyutu ve indeks seçimleri, Zipf ve organ borusu yerleşimini değerlendirmek.
Statik turlar ile SCAN-EDF'yi; HLS/DASH, CDN ve uyarlanabilir bit hızı merdivenini açıklamak.
Giriş
Çoklu Ortam Nedir?
Metin, grafik, ses, video ve animasyonun birlikte sunulması. İşletim sistemi açısından asıl zorluk sürekli ortam (ses ve video): veri, belirli bir hızda ve zamanında akmalıdır.
Sıkıştırmasız 1080p ≈ 1,5 Gbit/s; sıkıştırma zorunlu. 2 saatlik 4K film 16 Mbit/s ile bile ≈ 14 GB.
Kareler sabit aralıkla (25 fps → 40 ms) gösterilmeli; geç gelen veri işe yaramaz. Titreşim tamponla emilir.
Bant genişliği, gecikme, titreşim ve kayıp için garanti ya da öngörülebilirlik; kaynak ayırma ve kabul denetimi.
Dudak eşzamanı: ses ≈ 45 ms önde ya da ≈ 125 ms geride kalırsa fark edilir (ITU-R BT.1359).
Duraklat, geri/ileri sar, atla (VCR işlevleri); sunucu ve dosya sistemi tasarımını etkiler.
Farklı kodek, kapsayıcı (MP4, MKV), ekran (HDR/SDR) ve ağ; oynatıcı uygun sürümü seçer.
Giriş
Veri Hızları
Akış hızları 2026 için tipik değerlerdir (Netflix HD için ≈ 5, 4K için ≈ 15 Mbit/s önerir). Kayıpsız FLAC, CD kalitesinde ≈ 0,7–1 Mbit/s; 24 bit/96 kHz ≈ 2–3 Mbit/s. Arada ≈ 3 basamak fark: sıkıştırma olmadan video akışı yoktur.
Giriş
Sıkıştırmasız Veri Hızlarını Hesaplama
CD sesi: 44,1 kHz örnekleme × 16 bit × 2 kanal = 1,41 Mbit/s; bir saatlik albüm ≈ 635 MB.
1080p, piksel başına 24 bit RGB, 30 kare/s: 1,49 Gbit/s. İki saatlik film sıkıştırmasız 1,34 TB tutar.
Renk bilgisini yarı yarıya azaltan 4:2:0 alt örnekleme piksel başına ortalama 12 bit verir: 746 Mbit/s. Bu henüz kayıplı sıkıştırma değildir.
4K, 60 kare/s, 10 bit HDR, 4:2:0 (10 + 10/4 + 10/4 = 15 bit/piksel): 7,46 Gbit/s; tek bir 10 GbE bağlantıyı neredeyse doldurur.
Sonuç: modern kodekler videoyu 150–500 kat küçültür; ses için gereken oran çok daha düşüktür. İşletim sistemi yine de sürekli, zamanında veri akışı sağlamalıdır.
Giriş
Video Dağıtım Ağları
| Erişim | Eski sunumdaki değer | Güncel tipik değer (2026) |
|---|---|---|
| ADSL2+ | — | ≤ 24 Mbit/s indirme, ≤ 1–3 Mbit/s yükleme (asimetrik) |
| VDSL2 (vektörleme) | VDSL: 52 / 16 Mbit/s | 100 Mbit/s; 35b profili kısa hatta ≈ 250–300 Mbit/s |
| Kablo (DOCSIS 3.1 / 4.0) | 10–100 Mbit/s | 1–10 Gbit/s indirme (paylaşımlı ortam) |
| FTTH (GPON / XGS-PON) | — | 2,5 / 1,25 Gbit/s ve 10 / 10 Gbit/s, ayırıcıdaki kullanıcılar paylaşır |
SDSL ve HDSL simetrik eski DSL türleridir. Erişim hızından çok sunucu ile kullanıcı arasındaki yol (CDN) ve titreşim belirleyicidir.
Giriş
Gerçek Zaman ve Titreşim
Kaynak kareleri 40 ms aralıkla (25 fps) gönderir; ağ gecikmesi 60 ile 115 ms arasında değişir. Varış aralıkları düzensizdir: titreşim.
Oynatma, gönderimden D = 80 ms sonra planlanırsa gecikmesi 80 ms'yi aşan 5 kare (2, 4, 5, 6, 8) zamanında yetişmez: takılma ya da atlama.
D = 120 ms (en büyük gecikme 115 ms) seçilirse tüm kareler yetişir. Bedel: 120 ms ek gecikme ve en çok 3 karelik tampon. Akış hizmetleri saniyeler, görüntülü görüşme onlarca ms tampon kullanır.
Giriş
Bir Film Birkaç Dosyadan Oluşabilir
Oynatıcı yalnız seçilen dilin ses ve altyazı izini okur. Eski VOD sistemleri izleri ayrı dosyalarda tutardı; bugün kapsayıcı içindeki izler ya da DASH/HLS'te ayrı “uyarlama kümeleri” olarak ayrı ayrı indirilen bölütler kullanılır.
Ses
Ses Sayısallaştırma: Örnekleme ve Niceleme
(a) Analog ses: sürekli zamanda sürekli genlikli bir dalga (burada tek periyotluk sinüs).
(b) Örnekleme: her ΔT saniyede bir genlik ölçülür. Örnekleme hızı fs = 1/ΔT (CD: 44.100 örnek/s).
(c) Niceleme: her örnek en yakın düzeye yuvarlanır. 4 bit → 2⁴ = 16 düzey (−8 … 7). CD 16 bit, yani 65.536 düzey kullanır.
(d) Gerçek değer ile kodlanan düzey arasındaki fark niceleme gürültüsüdür. Her ek bit gürültüyü yarıya indirir: SNR ≈ 6,02·n + 1,76 dB (4 bit ≈ 26 dB, 16 bit ≈ 98 dB).
Ses
Nyquist Ölçütü ve Örtüşme
En yüksek frekansı fmax olan sinyal fs > 2·fmax ile örneklenirse tam geri çatılır. Aksi hâlde yüksek frekanslar alçak frekans gibi görünür (örtüşme); kodlayıcı önce alçak geçiren süzgeç uygular.
Telefon: 8 kHz (≤ 3,4 kHz konuşma). CD: 44,1 kHz (insan kulağı ≈ 20 kHz). Video/yayın: 48 kHz. Stüdyo: 96–192 kHz. Bit derinliği 16 bit ≈ 98 dB, 24 bit ≈ 146 dB dinamik aralık.
Ses
Ses Kodlama Türleri
| Biçim | Tür | Tipik bit hızı | Kullanım |
|---|---|---|---|
| PCM (WAV, CD) | sıkıştırmasız, doğrusal | 1,41 Mbit/s (44,1 kHz/16 bit/stereo) | kayıt, düzenleme, CD |
| MP3 (MPEG-1 Audio Layer III) | kayıplı, psikoakustik | 128–320 kbit/s | eski müzik arşivleri |
| AAC (LC, HE-AAC) | kayıplı, MDCT | 64–256 kbit/s | Apple Music, YouTube, HLS/DASH, yayın |
| Opus (IETF RFC 6716) | kayıplı, düşük gecikme | 6–510 kbit/s (konuşma ≈ 16–32) | WebRTC, Discord, VoIP, YouTube |
| E-AC-3 / Dolby Atmos | kayıplı, çok kanallı / nesne | 384–768 kbit/s | film, 5.1/7.1, uzamsal ses |
| FLAC, ALAC | kayıpsız (doğrusal öngörü) | ≈ 0,7–1 Mbit/s (CD); hi-res 2–3 | arşiv, kayıpsız akış |
Ses
Fourier Ayrışımı ve Ardışık Yaklaşımlar
8 bitlik ASCII “b” (01100010) kare dalgası. Her periyodik sinyal, sabit + sinüs/kosinüs harmonikleri toplamı olarak yazılabilir (sağda genlikler).
Yalnız 1. harmonik: sinyalin kaba biçimi. İletim kanalı ya da kodlayıcı yüksek frekansları atarsa elde kalan budur.
2 harmonik: geçişler belirginleşiyor. Genliklerin çoğu ilk birkaç harmonikte toplanmıştır.
4 harmonik: bitler artık ayırt edilebilir.
8 harmonik: orijinale çok yakın. Dönüşüm kodlama fikri buradan gelir: frekans uzayına geçip küçük bileşenleri kaba nicelemek ya da atmak. MP3/AAC (MDCT) ve JPEG (DCT) bunu yapar.
Ses
Psikoakustik: Eşik ve Maskeleme
İşitme eşiği frekansa bağlıdır: kulak 2–5 kHz'te en duyarlıdır, çok alçak ve çok yüksek frekanslarda eşik yükselir. Eşiğin altındaki B tonu hiç kodlanmayabilir.
Frekans maskelemesi: 1 kHz, 70 dB'lik güçlü ton yakınındaki eşiği yükseltir (kesikli eğri). 1,4 kHz'teki 40 dB'lik D tonu artık duyulmaz; kodlayıcı ona bit harcamaz.
Zamansal maskeleme: güçlü bir sesten hemen sonra (≈ 50–200 ms) ve az da olsa önce, zayıf sesler duyulmaz. MP3, AAC ve Opus her iki etkiyi psikoakustik modelde kullanır.
Ses
Algısal Ses Kodlayıcı ve Kanal Yapılandırmaları
Tek giriş akışı.
İki bağımsız akış (ör. Türkçe ve İngilizce anlatım).
Sol ve sağ kanal ayrı ayrı sıkıştırılır.
Kanallar arası artıklık kullanılır: orta/yan (M/S) ya da yoğunluk stereo.
Bugün ayrıca 5.1/7.1 çok kanallı ve nesne tabanlı (Dolby Atmos, MPEG-H) ses yaygındır; kanal yerine konumu olan ses nesneleri kodlanır.
Görüntü ve Video
Görüntü Tarama: Geçmeli ve Aşamalı
Analog TV, enerji ve bant genişliğinden tasarruf için geçmeli tarar: önce tek numaralı satırlar (1. alan) çizilir.
Sonra çift satırlar (2. alan) araya girer. Alan hızı 50/59,94 Hz olduğundan titreme azalır ama kare hızı 25/29,97'dir.
Bilgisayar ekranları ve modern video (720p, 1080p, 2160p) aşamalıdır: her karede tüm satırlar sırayla. Akış hizmetlerinde geçmeli içerik kodlamadan önce ayrıştırılır.
Görüntü ve Video
Analog Standartlardan Dijital Video'ya
| Standart | Yıl / bölge | Satır, kare hızı | Dijital örnekleme (BT.601) |
|---|---|---|---|
| NTSC | 1941 (s/b), 1953 (renkli); K. Amerika, Japonya | 525 satır, 29,97 kare/s (59,94 alan/s) | 720 × 480 |
| PAL | 1967; Avrupa, Türkiye, Asya'nın çoğu | 625 satır, 25 kare/s (50 alan/s) | 720 × 576 |
| SECAM | 1967; Fransa, eski SSCB | 625 satır, 25 kare/s | 720 × 576 |
| HD (BT.709) | 1990'lar–2000'ler | 720p, 1080i/1080p; 24–60 kare/s | 1280 × 720, 1920 × 1080 |
| UHD (BT.2020/2100) | 2012 → | 2160p (4K), 4320p (8K); 50–120 kare/s, HDR | 3840 × 2160, 7680 × 4320 |
Görüntü ve Video
Renk Uzayları ve HDR
Göz parlaklık ayrıntısına renkten çok daha duyarlıdır. Y tam çözünürlükte, Cb/Cr düşük çözünürlükte saklanabilir. Katsayılar BT.709 (HD) içindir; SD BT.601, UHD BT.2020 katsayılarını kullanır.
10 bit örnek, BT.2020 renk gamı ve PQ (SMPTE ST 2084, 10.000 nit'e kadar) ya da HLG (yayın) aktarım eğrisi. Biçimler: HDR10, HDR10+, Dolby Vision. SDR genelde 8 bit, ≈ 100 nit.
CMYK baskı içindir, video kodlamada kullanılmaz. Fotoğrafta sRGB, Display P3 yaygındır; JPEG kodlamadan önce YCbCr'ye çevirir.
Görüntü ve Video
Renk Alt Örnekleme: 4:4:4, 4:2:2, 4:2:0
4:4:4: her piksel Y, Cb ve Cr taşır (8 bit için 24 bit/piksel). Bir 1080p kare 6,2 MB. Ekran görüntüsü ve kurgu ara biçimlerinde kullanılır.
4:2:2: yatayda iki piksel bir renk örneğini paylaşır: 16 bit/piksel, kare 4,1 MB. Profesyonel yayın ve kamera kayıtları.
4:2:0: 2 × 2 piksel bir Cb ve bir Cr paylaşır: 12 bit/piksel, kare 3,1 MB (yarı boyut). JPEG, H.264, HEVC, AV1 akışlarının neredeyse tamamı 4:2:0'dır.
Sıkıştırma
Sıkıştırmanın Temelleri
Kayıpsız (PNG, FLAC, GIF'in LZW'si): bit bit geri çatılır, oran ≈ 2:1. Kayıplı (JPEG, MP3, H.264): algıda önemsiz bilgi atılır, oran 10:1 – 500:1.
Kodlama bir kez ve yavaş yapılabilir (ör. film için saatler), kod çözme her izleyicide gerçek zamanlı olmalıdır. Canlı yayın ve görüntülü görüşmede kodlama da gerçek zamanlıdır.
AAAABBBCC → 4A3B2C: aynı simgenin art arda tekrarları (sayı, simge) çiftiyle yazılır. JPEG'de sıfır dizilerini kısaltır.
Raster: JPEG, PNG, GIF, WebP, AVIF, HEIC, TIFF, BMP. Vektör: SVG, PDF, EPS, AI. Üst veri: EXIF (kamera, konum), IPTC, XMP. Çözünürlük piksel boyutudur; PPI yalnız baskı ölçeğidir.
Eski sunumdaki RLE örneği girdi ile çıktıyı bitiştirmişti (“AAAABBBCC4A3B2C”); doğrusu yukarıdaki dönüşümdür.
Sıkıştırma
RLE Kodlayıcıyı İzleme
public class RLE { static String encode(String s) { StringBuilder out = new StringBuilder(); int i = 0; while (i < s.length()) { char c = s.charAt(i); int n = 1; while (i + n < s.length() && s.charAt(i + n) == c) n++; out.append(n).append(c); i += n; } return out.toString(); } public static void main(String[] a) { System.out.println(encode("AAAABBBCC")); } }
encode("AAAABBBCC") çağrıldı; boş bir StringBuilder oluşturulur, i = 0.
Döngü: c = s.charAt(0) = 'A', n = 1 ile başlanır.
İç döngü sonraki karakterler 'A' oldukça n'yi artırır: n = 4 (s[4] = 'B' farklı).
“4A” eklenir; i += 4 → i = 4.
c = 'B', üç tekrar: n = 3; “3B” eklenir, i = 7.
c = 'C': i + n = 9 dizinin sonu, n = 2; “2C” eklenir, i = 9.
i = 9 = s.length(): döngü biter, sonuç döndürülür ve yazdırılır. 9 karakter → 6 karakter.
Sıkıştırma
JPEG Sıkıştırma Boru Hattı
Görüntü RGB'den YCbCr'ye çevrilir: parlaklık ve renk ayrılır.
Renk bileşenleri 4:2:0 ile alt örneklenir: veri, görsel kayıp neredeyse olmadan yarıya iner.
Her bileşen 8 × 8 piksellik bloklara bölünür; bloklar birbirinden bağımsız işlenir (yüksek oranda “bloklanma” bu yüzden görülür).
DCT her bloğu 64 frekans katsayısına dönüştürür. Enerji sol üstteki düşük frekanslarda toplanır. Bu adım tersinirdir.
Niceleme: her katsayı tablo değerine bölünüp yuvarlanır. Yüksek frekanslar sıfırlanır. JPEG'in tek kayıplı adımı budur; kalite ayarı tabloyu ölçekler.
Zikzak sıra katsayıları düşükten yükseğe dizer, sondaki sıfırlar art arda gelir.
DC katsayısı önceki bloğun DC'sine göre fark (DPCM) olarak, AC katsayıları (sıfır sayısı, değer) çiftleri olarak RLE ile kodlanır; kalan sıfırlar tek EOB simgesidir.
Huffman kodlama sık simgelere kısa kodlar verir. Kod çözme bu adımların tersidir; tipik oran 10:1 – 20:1.
Sonuç: başlıklar, tablolar ve entropi kodlu veri içeren .jpg. Modern ardılları (WebP, AVIF, JPEG XL) aynı dönüşüm-niceleme-entropi fikrini daha gelişmiş araçlarla kullanır.
Sıkıştırma
DCT ve Niceleme: Sayısal Örnek
Bir 8 × 8 parlaklık bloğu (değerler 0–255). DCT'den önce her değerden 128 çıkarılır; değerler −128 … 127 aralığına gelir.
DCT sonucu: sol üst DC katsayısı (−415) bloğun ortalama parlaklığıdır; sağa ve aşağı gidildikçe frekans artar, katsayılar küçülür.
Standart parlaklık niceleme tablosu: yüksek frekanslar (sağ alt) büyük bölenlerle cezalandırılır, çünkü göz ince ayrıntıdaki hatayı zor fark eder.
Nicelenmiş blok: 64 katsayıdan yalnız 20'si sıfırdan farklı; DC = yuvarla(−415,4 / 16) = −26. Bilgi kaybı tam bu adımda oluşur.
Sıkıştırma
Zikzak, RLE ve Huffman
Nicelenmiş katsayılar zikzak sırayla okunur: düşük frekanslar önce, yüksek frekanslar (çoğu sıfır) sonra.
DC farkla kodlanır. AC katsayıları (önceki sıfır sayısı, değer) çiftlerine dönüşür; son sıfırdan farklı katsayıdan sonrası tek bir EOB simgesidir.
Simgeler Huffman ile kodlanır. Standart tablolarla örnek blok 512 bitten (64 × 8) ≈ 93 bite iner (DC 8 + AC 85 bit); oran ≈ 5,5:1 yalnız bu blokta, düz alanlarda çok daha yüksektir.
Sıkıştırma
MPEG: I, P ve B Kareleri
I (iç kodlu): kendi başına, JPEG benzeri. P (öngörülü): önceki I/P referansına göre hareket dengelemeli fark. B (çift yönlü): önceki ve sonraki referansa göre.
B kareleri gelecekteki referansa ihtiyaç duyduğundan kodlayıcı sırayı değiştirir: I1 P4 B2 B3 P7 B5 B6 … Kod çözücü en az bir referans kareyi tamponda tutar; bu gecikme ekler.
I kareleri en büyüktür; P ve özellikle B kareleri çok daha küçüktür. GOP (I'den I'ye) akışta genelde 2 s'dir; atlama ve bölüt sınırları I karelerinde yapılır.
Sıkıştırma
Hareket Dengeleme
Ardışık karelerde sahnenin çoğu aynıdır (ağaç); yalnız top sağa kayar. Kareleri bağımsız kodlamak bu zamansal artıklığı boşa harcar.
Hareket dengeleme: kodlayıcı n karesindeki her blok için n − 1'de en iyi eşleşen bloğu arar; hareket vektörünü ve farkı (artık) DCT ile kodlar. Değişmeyen bloklar yalnız “atla” bayrağıyla geçer.
MPEG-2 16 × 16 makro blok ve yarım piksel doğruluk kullanır; H.264 4 × 4 – 16 × 16 bölmeli ve çeyrek piksel, HEVC 64 × 64'e, AV1 128 × 128'e kadar esnek bloklar ve çok sayıda referans kare kullanır.
Sıkıştırma
MPEG Standartları ve Modern Kodekler
| Kodek | Yıl | Tipik kullanım | 1080p için kabaca |
|---|---|---|---|
| MPEG-1 | 1993 | Video CD; MP3 bu standardın ses katmanıdır | — |
| MPEG-2 (H.262) | 1995 | DVD, DVB yayın; geçmeli video desteği | ≈ 12–15 Mbit/s |
| MPEG-4 Part 2 | 1999 | DivX/Xvid; bugün eskimiş | ≈ 8–10 Mbit/s |
| H.264 / AVC | 2003 | en yaygın uyumluluk: web, Blu-ray, görüntülü görüşme | ≈ 5–8 Mbit/s |
| H.265 / HEVC | 2013 | UHD Blu-ray, 4K HDR yayın ve akış, iPhone kaydı | ≈ 3–4 Mbit/s |
| VP9 | 2013 | YouTube, WebRTC (Google, telifsiz) | ≈ 3–4 Mbit/s |
| AV1 | 2018 | Netflix, YouTube, Twitch; AOMedia, telifsiz | ≈ 2,5–3 Mbit/s |
| H.266 / VVC | 2020 | 8K, yayın; donanım desteği henüz sınırlı | ≈ 2 Mbit/s |
Düzeltme: “MPEG-3” hiç yayımlanmadı; HDTV için planlanmış, 1992'de MPEG-2'ye katılmıştır (MP3 ≠ MPEG-3). Bit hızları aynı algısal kalite için yaklaşıktır ve içeriğe göre değişir.
Sıkıştırma
Kodek Verimliliği ve Donanım Kod Çözücüler
- Her kuşak aynı kalite için bit hızını kabaca %30–50 düşürür; bedeli kodlayıcıda 5–10 kat, kod çözücüde 2–3 kat daha fazla işlemdir.
- 4K/8K, HDR ve 60–120 fps kod çözme CPU yerine sabit işlevli donanımda yapılır: NVIDIA NVDEC/NVENC, Intel Quick Sync, AMD VCN, Apple VideoToolbox, telefon SoC'leri.
- İşletim sistemi arayüzleri: Linux VA-API / V4L2, Windows Media Foundation ve D3D11/12 Video, Android MediaCodec. Kareler GPU belleğinde kalır (dmabuf, sıfır kopya).
- Donanım yoksa yazılım kod çözme (ör. AV1 için dav1d) çok çekirdekli CPU'yu ve pili zorlar; oynatıcı desteklenen kodeği seçer.
Süreç Çizelgeleme
Homojen Çoklu Ortam Süreçleri
Video sunucusundaki tüm akışlar aynı kare hızında ve kare başına aynı işlem süresiyle çalışır (ör. hepsi 30 fps).
Basit döngüsel (round-robin): her periyotta her süreç bir kare üretir ve bloklanır; zamanlayıcı kesmesi 33,3 ms'de bir yeni turu başlatır.
Yeni akış ancak N · c ≤ T ise kabul edilir (c: kare başına süre, T: periyot). Aksi hâlde tüm akışlar bozulur.
Gerçekte akışların hızları ve kare maliyetleri farklıdır (I/P/B, farklı çözünürlük); bu yüzden genel gerçek zamanlı çizelgeleme gerekir.
Süreç Çizelgeleme
Genel Gerçek Zamanlı Çizelgeleme
| Süreç | Film | Periyot P | CPU / kare C | C / P |
|---|---|---|---|---|
| A | 33,3 fps → 30 ms (örnek) | 30 ms | 10 ms | 0,333 |
| B | 25 fps | 40 ms | 15 ms | 0,375 |
| C | 20 fps | 50 ms | 5 ms | 0,100 |
| Toplam U | 0,808 |
Çizelgelenebilirlik için gerekli koşul: U = Σ Cᵢ / Pᵢ ≤ 1. Her karenin, bir sonraki kare gelmeden (periyot sonunda) bitmesi gerekir.
Süreç Çizelgeleme
Hız Monoton Çizelgeleme (RMS)
- Statik öncelik: öncelik ∝ 1 / periyot (sık çalışan süreç önceliklidir); kesmeli (preemptive).
- Varsayımlar: her süreç periyodu içinde bitmeli; süreçler birbirine bağımlı değil; her işlem patlaması aynı CPU süresini ister; periyodik olmayan işlerin son teslim zamanı yok; kesme ek maliyetsiz.
- Liu ve Layland (1973): U ≤ m (21/m − 1) ise RMS kesin başarılıdır. Bu yeterli koşuldur, gerekli değildir.
- Statik öncelikli süreçler arasında en iyisidir; uygulaması kolay (sabit öncelikli zamanlayıcı, ör. SCHED_FIFO).
| m | sınır m(21/m − 1) |
|---|---|
| 1 | 1,000 |
| 2 | 0,828 |
| 3 | 0,780 |
| 4 | 0,757 |
| 5 | 0,743 |
| 10 | 0,718 |
| ∞ | ln 2 ≈ 0,693 |
Süreç Çizelgeleme
RMS ve EDF Örneği 1 (U = 0,808)
t = 0: üç süreç birden hazır. RMS önceliği periyoda göre A > B > C; EDF teslim zamanlarına (30, 40, 50) bakar: ikisi de A1, B1, C1 sırasını seçer.
t = 30–60: A2 (teslim 60) gelir, A2 çalışır; t = 40'ta B2 hazır olur (teslim 80), t = 50'de C2 (teslim 100). İki çizelge hâlâ aynı.
t = 60–90: A3 çalışır; ardından B3 hazır olmayana kadar (t = 80) işlemci boştur; B3 t = 80'de başlar.
t = 90: A4 hazır. RMS B3'ü keser (A daha öncelikli). EDF B3'ün teslimi (120) A4'ünkinden (120) geç değil; eşitlikte çalışanı sürdürür, A4 bekler.
t = 150'ye kadar iki algoritma da hiçbir teslim zamanını kaçırmaz. U = 0,808 > 0,780 olmasına rağmen RMS başardı: sınır yalnızca yeterli koşuldur.
Süreç Çizelgeleme
En Erken Teslim Zamanı Önce (EDF)
Dinamik öncelik: hazır işler arasında son teslim zamanı en yakın olan çalışır. Yeni iş geldiğinde öncelikler yeniden değerlendirilir; kesmelidir.
Tek işlemcide, bağımsız ve kesilebilir işler için U ≤ 1 ise EDF her zaman başarılıdır: %100 kullanım mümkündür (RMS'de ≈ %69–78).
Her olayda sıralama gerekir (öncelik kuyruğu, O(log n)). Aşırı yükte (U > 1) hangi işin kaçıracağı öngörülemez; “domino etkisi”.
Linux SCHED_DEADLINE (EDF + sabit bant sunucusu, çalışma/periyot ile kabul denetimi); ses için JACK/PipeWire SCHED_FIFO; Windows MMCSS; RTOS'larda RMS yaygın.
Eski sunumdaki “EDF, süreçlerin birbirine karışmadığını varsayar” ifadesi RMS için de geçerlidir: iki analiz de bağımsız, kaynak paylaşmayan işler varsayar; paylaşımda öncelik tavanı/kalıtımı gerekir.
Süreç Çizelgeleme
RMS Başarısız, EDF Başarılı (U = 0,975)
A'nın kare başına süresi 15 ms'ye çıktı: U = 0,5 + 0,375 + 0,1 = 0,975. t = 0–30 aralığında iki çizelge aynı: A1, B1.
t = 30: RMS A2'yi C1'e tercih eder (A daha öncelikli). C1 hiç çalışamadan t = 50'de teslim zamanını kaçırır. EDF ise C1'i (teslim 50) A2'den (teslim 60) önce çalıştırır.
t = 50–100: EDF teslim zamanlarına göre B2 (80), A3 (90), C2 (100), B3 (120) sırasıyla devam eder; hiçbir iş geç kalmaz.
t = 150'ye kadar EDF hiçbir teslim zamanını kaçırmaz (U ≤ 1). RMS ise ilk 50 ms içinde başarısız oldu: statik öncelik bu yükü taşıyamaz.
Dosya Sistemleri
Çoklu Ortam Dosya Sistemi Paradigmaları
Klasik video sunucuları (ve RTP/çoklu yayın) itme modelini kullanır. İlginç biçimde günümüzün HLS/DASH akışı çekme modelidir: oynatıcı bölütleri sıradan HTTP GET ile ister; durum ve hız kararı istemcidedir, sunucu durumsuz ve önbelleklenebilir kalır.
Dosya Sistemleri
VCR Kontrol İşlevleri
İtme sunucusunda sunucu akışı durdurmalı ve nerede kaldığını hatırlamalıdır; ayrılan disk ve ağ kaynakları boşta kalır, kabul denetimi bunu hesaba katmalı.
Ham olarak 4× hızda okumak 4× bant genişliği ister. P/B kareleri atlamak mümkün değildir (referanslara bağlılar); çözüm yalnız I kareleri göstermek ya da ayrı bir hızlı sarma sürümü tutmaktır.
Rasgele konuma gitmek en yakın I kareye (GOP başına) inmeyi gerektirir; dosya bu yüzden kare/blok indeksi tutar.
HLS/DASH'te sarma, istemcinin başka bölütü istemesidir. Önizleme için yalnız I karelik oynatma listeleri (EXT-X-I-FRAMES-ONLY) ve küçük resim (thumbnail) dosyaları kullanılır.
Dosya Sistemleri
Yakın İsteğe Bağlı Video (NVOD)
Film sabit aralıkla (Δ = 5 dk) yeniden başlatılır. 30 fps'de 5 dk = 9.000 kare: her akış bir öncekinin 9.000 kare gerisindedir.
120 dk'lık film → 120 / 5 = 24 akış, çoklu yayınla (multicast) sınırsız izleyiciye: 24 × 8 Mbit/s = 192 Mbit/s. Gerçek VOD'da 1.000 izleyici = 8 Gbit/s.
Ortalama Δ / 2 = 2,5 dk, en kötü 5 dk. Kablo TV'deki “her çeyrek saatte başlayan film” bu modeldi.
Dosya Sistemleri
NVOD ile VCR İşlevleri
(a) İzleyici 15. dakikada. İstemci 5 dk geriyi ve 5 dk ileriyi tamponda tutar (10–20); ileri kısmı, 5 dk önce başlamış akışı kaydederek doldurur. İki akışı birden alır.
(b) 12. dakikaya geri sarma: tampon içinde, anında. Sunucunun haberi bile olmaz.
(c) 3 dk sonra oynatma 15. dakikada; ileri akış 23'e ulaştı. Tampon 10 dk sığdığından en eski kısım atıldı: 13–23.
(d) 22. dakikaya ileri sarma: yine tampon içinde, anında. Ancak ileri pay 1 dk'ya düştü; istemci daha önde bir akışı kaydetmeye başlar.
(e) 40. dakikaya atlama tamponun dışında: istemci o an 38. dakikada olan akışa geçer (2 dk sapma). NVOD'da VCR işlevleri bu yüzden yaklaşıktır.
Dosya Sistemleri
Dosyayı Tek Diske Yerleştirme
Bir kare için tek arama (seek): video, ses ve metin birlikte okunur; sıralı akış en verimli disk erişimidir.
Dosya büyür ve birleştirmesi zordur; kullanılmayan izler okunur; değişken boyutlu kareler (I > P > B) yer ayırmayı karmaşıklaştırır.
Bugünkü MP4/MKV kapsayıcıları da izleri parçalar hâlinde iç içe (interleaved) saklar; uyarlanabilir akışta ise her iz ve kalite ayrı bölüt dosyalarıdır.
Dosya Sistemleri
Küçük ve Büyük Disk Blokları
Küçük bloklar + kare indeksi: kare art arda küçük bloklara yazılır, her kare için bir indeks girdisi. Disk israfı az, ama indeks büyük: 2 saatlik film, 30 fps, 8 B/girdi → 216.000 girdi = 1,73 MB RAM.
Büyük bloklar + blok indeksi: bir blokta birçok kare. İndeks küçük: 1 MB blok ve 8 Mbit/s ile 7.200 blok × 8 B = 57,6 KB. Kare bloklara bölünmezse israf, bölünürse ek arama.
| Strateji | Bellek (indeks) | Disk israfı | Arama |
|---|---|---|---|
| Kare indeksi, küçük blok | yüksek (1,73 MB/film) | az | kare başına ≥ 1 |
| Blok indeksi, kareler bölünmez | düşük (57,6 KB/film) | blok sonunda ≈ ½ kare | blok başına 1 |
| Blok indeksi, kareler bölünür | düşük | yok | bölünen karede ek arama |
Dosya Sistemleri
Zipf Yasası: Film Popülerliği
k. sıradaki film P(k) = C / k olasılıkla seçilir; C = 1 / HN. N = 20 için H20 = 3,598, C = 0,278: ilk film isteklerin %27,8'i, ilk 5 film %63,5'i. Gerçek video kataloglarında üs genelde 0,6–1 arasında ölçülür.
Dosya Sistemleri
Organ Borusu Yerleşimi
Kafa çoğu zaman popüler filmlerin üzerinde olacağından onları ortaya koymak ortalama arama mesafesini en aza indirir (Grossman ve Silverman). Histogram org borularına benzer.
SSD'de arama yoktur, yerleşim önemsizleşir; ama aynı fikir katmanlara taşınır: popüler içerik RAM'de ve kenar SSD'lerinde, uzun kuyruk ucuz HDD/nesne deposunda.
Dosya Sistemleri
Birden Çok Dosyayı Çoklu Diske Yerleştirme
(a) Her film tek diskte: basit, ama popüler film A'nın diski darboğaz olur, diğerleri boşta bekler.
(b) Her filmin k. bloğu k. diske: yük dağılır. Ancak tüm filmler disk 1'den başladığından film başlangıçlarında disk 1 yığılır.
(c) Kademeli: her film bir sonraki diskten başlar (A disk 1, B disk 2, …); başlangıç yükü de dağılır.
(d) Rasgele: bloklar rasgele disklere; uzun vadede yük dengeli, yerleşim tablosu gerekir. Bugünkü dağıtık depolar (Ceph, nesne depoları) karma tabanlı rasgele yerleşim kullanır.
Dosya Sistemleri
Blok Önbellekleme ve Akış Birleştirme
(a) İki kullanıcı aynı filmi 10 s arayla başlattı. Sunucu birinci kullanıcı için okuduğu blokları 10 s tutarsa, ikinci kullanıcı aynı blokları önbellekten alır.
(b) Önbellek yoksa akışları birleştirme: önde olan biraz yavaşlatılır, arkadaki biraz hızlandırılır (fark edilmez). 300 karelik fark 150 s'de kapanır; sonra tek akış iki kullanıcıya gider.
Dosya önbellekleme: popüler filmler bütün olarak hızlı katmanda (eskiden teyp → disk, bugün HDD → SSD/RAM ve CDN kenarı) tutulur; az izlenenler yavaş katmandan istendiğinde getirilir.
Disk Çizelgeleme
Statik Disk Çizelgeleme
Disk Çizelgeleme
Dinamik Disk Çizelgeleme: SCAN-EDF
Kafa 50. silindirde, yukarı yönde. Sekiz istek, dört farklı son teslim zamanında (5, 20, 40, 60 ms). Salt SCAN teslim zamanlarını kaçırabilir; salt EDF kafayı zikzak çizdirir.
Önce teslimi en yakın grup: yalnız A (silindir 30). Kafa 50 → 30 iner; yön artık aşağı.
Teslim 20 ms grubu {B 70, C 20, D 95}: grup içinde SCAN, mevcut yönde (aşağı) önce C, sonra yukarı B, D: C(20) → B(70) → D(95).
Teslim 40 ms grubu: kafa 95'te, yukarıda istek yok; aşağı doğru G(85) → E(60) → F(10).
Son olarak H (40). Toplam hareket 220 silindir; aynı istekler salt EDF ile (grup içinde geliş sırası) 390 silindir. Gerçek sistemler “yakın” teslim zamanlarını da aynı gruba alarak daha fazla toplu tarama yapar.
Modern Akış
Modern Akış Mimarisi: HLS, DASH ve CDN
HLS (Apple) ve MPEG-DASH aynı CMAF bölütlerini paylaşabilir. Gecikme: klasik HLS/DASH 10–30 s, düşük gecikmeli LL-HLS/LL-DASH 2–5 s, etkileşimli WebRTC < 0,5 s. Video bugün internet trafiğinin yaklaşık üçte ikisini oluşturur.
Modern Akış
Uyarlanabilir Bit Hızı (ABR) Merdiveni
Başlangıç: ağ hızı bilinmiyor, oynatıcı güvenli seçer (480p). İlk ölçüm 25 Mbit/s → kural: ölçülen hızın %80'ine sığan en yüksek basamak → 2160p (16 Mbit/s).
Ağ hızı 9, sonra 3,5 Mbit/s'ye düşer. Kural bir önceki ölçüme baktığı için 2160p bölütü 7,1 s sürer: tampon boşalır, 0,6 s takılma; ardından 1080p de yetişmez (1,7 s).
Oynatıcı 720p ve 480p'ye iner; indirme süresi bölüt süresinin altına düşünce tampon yeniden dolar ve kalite 720p, 1080p'ye çıkar.
Hız toparlanınca kalite kademeli olarak 1440p ve 2160p'ye çıkar, tampon ≈ 17 s. Gerçek oynatıcılar (BOLA, hibrit kurallar) tampon düzeyine de bakarak bu takılmaları önler.
Modern Akış
CDN Önbelleği ve Zipf
- Katalogun en popüler %1'i (100 başlık) isteklerin %53'ünü, %10'u %76,5'ini karşılar (Zipf, üs 1, H100 / H10.000).
- Üs 0,8 ise kuyruk daha kalındır: %1 → %30, %10 → %57. Bu yüzden kenar önbellekleri büyük SSD'ler kullanır.
- Katmanlar: oynatıcı tamponu → ISS içindeki kenar sunucu (ör. Netflix Open Connect) → bölgesel önbellek → köken. Gece boş saatte popüler içerik önceden doldurulur.
- Değiştirme: LRU basit ama tek seferlik isteklerle kirlenir; LFU/ARC türevleri ve “ikinci istekte önbelleğe al” kuralları tercih edilir.
Özet
Özet
Sürekli ortam: yüksek veri hızı, gerçek zaman, titreşim, QoS ve eşzamanlama. Sıkıştırmasız 4K60 HDR 7,46 Gbit/s, akışı 16 Mbit/s.
Örnekleme (Nyquist), niceleme, psikoakustik maskeleme; YCbCr, 4:2:0, DCT + niceleme + entropi kodlama; I/P/B kareler ve hareket dengeleme.
MPEG-2 → H.264 → HEVC/VP9 → AV1/VVC: her kuşak ≈ %30–50 tasarruf; çözme donanımda. Ses: AAC, Opus, FLAC.
Homojen akışlarda döngü; genelde RMS (statik, U ≤ m(21/m − 1) yeterli) ve EDF (dinamik, U ≤ 1 yeterli ve gerekli).
İtme/çekme, NVOD ve VCR, iç içe yerleşim, blok boyutu ve indeks, Zipf + organ borusu, şeritleme, blok ve dosya önbelleği.
Statik turlar + SCAN, SCAN-EDF; bugün HLS/DASH bölütleri, CDN katmanları ve uyarlanabilir bit hızı merdiveni.
Özet
Kontrol Soruları
- 48 kHz, 24 bit, 6 kanallı (5.1) PCM sesin veri hızı nedir?
- 1280 × 720, 60 fps, 8 bit 4:2:0 sıkıştırmasız videonun veri hızı nedir?
- 12 kHz bileşen içeren bir sinyal 16 kHz ile örneklenirse ne olur?
- JPEG'de hangi adımlar kayıplı, hangileri tersinirdir?
- Görüntüleme sırası I1 B2 B3 P4 B5 B6 P7 olan karelerin kod çözme sırası nedir? Neden?
- (P, C) = (20, 5), (50, 10), (100, 30) ms görevleri RMS ile kesin çizelgelenebilir mi?
- 90 dk'lık film her 10 dk'da bir başlatılırsa NVOD kaç akış ister, ortalama bekleme nedir?
- Zipf (N = 20) ile ilk 3 filmin istek payı nedir? Organ borusunda nereye konurlar?
- Kare indeksi ile blok indeksi arasındaki bellek–disk israfı ödünleşimi nedir?
- Ölçülen hız 6 Mbit/s, kural “hızın %80'ine sığan en yüksek basamak”: slayttaki merdivenden hangisi seçilir?
Cevaplar
- 48.000 × 24 × 6 = 6.912.000 bit/s ≈ 6,9 Mbit/s.
- 1280 × 720 × 12 × 60 = 663.552.000 bit/s ≈ 664 Mbit/s.
- Nyquist sınırı 8 kHz; 12 kHz bileşen 16 − 12 = 4 kHz olarak örtüşür. Önce alçak geçiren süzgeç gerekir.
- Renk alt örnekleme ve niceleme kayıplıdır; renk dönüşümü (yuvarlama dışında), DCT, zikzak, RLE ve Huffman tersinirdir.
- I1 P4 B2 B3 P7 B5 B6: B kareleri sonraki referansa (P4, P7) ihtiyaç duyar.
- U = 0,25 + 0,2 + 0,3 = 0,75 ≤ 0,780 (m = 3): evet, Liu–Layland sınırı garanti eder; EDF de başarır.
- 90 / 10 = 9 akış; ortalama bekleme 5 dk, en kötü 10 dk.
- (1 + 1/2 + 1/3) / 3,598 ≈ %51. En popüler ortadaki silindirlere, 2. ve 3. onun iki yanına.
- Kare indeksi büyük RAM ister (2 saatte 1,73 MB) ama israf azdır; blok indeksi küçüktür (57,6 KB) ama kareler bölünmezse blok sonunda boşluk kalır, bölünürse ek arama gerekir.
- 0,8 × 6 = 4,8 Mbit/s → 720p (2,8 Mbit/s); 1080p (5 Mbit/s) sığmaz.
Özet
Kaynaklar
- A. S. Tanenbaum, Modern Operating Systems, 3. baskı, Pearson, 2008 — Bölüm 7: Multimedia Operating Systems (bu sunumun temel kaynağı).
- A. Silberschatz, P. B. Galvin, G. Gagne, Operating System Concepts, 8. baskı, Wiley, 2009 — Bölüm 20: Multimedia Systems (9. baskıda, 2012, bu bölüm çıkarılmış; gerçek zamanlı çizelgeleme Bölüm 6.6’dadır).
- C. L. Liu, J. W. Layland, “Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment”, JACM, 1973; A. L. N. Reddy, J. Wyllie, “Disk Scheduling in a Multimedia I/O System” (SCAN-EDF), ACM Multimedia, 1993.
- ITU-T T.81 (JPEG); ITU-T H.264, H.265, H.266; AOMedia AV1 Bitstream Specification; IETF RFC 6716 (Opus); ISO/IEC 23000-19 (CMAF).
- IETF RFC 8216 ve draft-pantos-hls-rfc8216bis (HLS, LL-HLS); ISO/IEC 23009-1 (MPEG-DASH); ITU-R BT.601, BT.709, BT.2020, BT.2100 (HDR, PQ/HLG).
- Linux çekirdek belgeleri: “Deadline Task Scheduling” (SCHED_DEADLINE), VA-API ve V4L2 kodek arayüzleri.