Bölüm 11: Giriş/Çıkış

İşletim Sistemleri · Çalışma Soruları
Aygıtlar ve DenetleyicilerYoklama, Kesme, DMAG/Ç YazılımıDisk Erişim SüresiKol ÇizelgelemeRAID ve SSD
Sercan KÜLCÜ · Giresun Üniversitesi · Bilgisayar Mühendisliği

Giriş

Nasıl çalışalım?

1 · Önce çözünHer slaytta bir soru var. Cevabı açmadan önce kâğıda kendi cevabınızı yazın; çoktan seçmelide eleme gerekçenizi de not edin.
2 · Cevabı açın“Cevabı göster” kutusu doğru cevabı ve kısa gerekçeyi verir. Açık uçlu sorularda kendi cevabınızı anahtar kavramlarla karşılaştırın.
3 · Adım adım izleyinHesaplama ve kod sorularının ardından gelen “Adım Adım Çözüm” slaytında › düğmesiyle çözümü satır satır ilerletin.

31 soru · Çoktan seçmeli: 13 · Açık uçlu: 5 · Doğru / Yanlış: 4 · Hesaplama: 9. Sorular konu başlıklarına göre gruplanmış ve kolaydan zora sıralanmıştır.

Soru 1 · Aygıtlar ve Denetleyiciler

Hangi Eşleştirme Yanlış?

Çoktan seçmeli İS’ler aygıtları blok, karakter ve ağ aygıtı olarak sınıflandırır. Aşağıdaki eşleştirmelerden hangisi yanlıştır?

  1. Klavye — karakter aygıtı (bayt akışı, konumlanma yok)
  2. NVMe SSD — blok aygıtı (sabit boyutlu bloklar, rastgele erişim)
  3. Fare — blok aygıtı (her bloğa adresle erişilir)
  4. Ethernet kartı — ağ aygıtı (soket arayüzüyle kullanılır)
  5. Seri port (UART) — karakter aygıtı
Cevabı göster

Doğru cevap: C · Fare — blok aygıtı (her bloğa adresle erişilir)

Fare, hareket ve tık olaylarını bir akış olarak üretir; konumlanabilir bloklar yoktur, bu yüzden karakter aygıtıdır. Blok aygıtında (HDD, SSD, USB bellek) her blok bir numarayla bağımsız okunup yazılabilir; dosya sistemleri bu aygıtların üstüne kurulur.

Soru 2 · Aygıtlar ve Denetleyiciler

Aynı Komut, Farklı Aygıt

Çoktan seçmeli cp rapor.pdf /media/usb/ komutu, dosya SATA diskte, NVMe SSD’de ya da USB bellekte olsa da hiç değişmeden çalışıyor. Bunu sağlayan yapı hangisidir?

  1. Aygıta özgü ayrıntıları sürücülerin gizlemesi ve üstteki aygıttan bağımsız G/Ç katmanının (dosya sistemi, blok katmanı) tüm aygıtlara aynı arayüzü sunması
  2. Her uygulamanın her aygıt için ayrı kod içermesi
  3. CPU önbelleğinin aygıt komutlarını dönüştürmesi
  4. Önyükleme sektörünün aygıt türünü belirlemesi
Cevabı göster

Doğru cevap: A · Aygıta özgü ayrıntıları sürücülerin gizlemesi ve üstteki aygıttan bağımsız G/Ç katmanının (dosya sistemi, blok katmanı) tüm aygıtlara aynı arayüzü sunması

Katmanlar: kullanıcı süreci → sistem çağrısı → aygıttan bağımsız yazılım (adlandırma, tamponlama, koruma, blok boyutu) → aygıt sürücüsü → kesme işleyicisi → donanım. Yeni bir aygıt için yalnızca sürücü yazılır; uygulamalar değişmez.

Soru 3 · Aygıtlar ve Denetleyiciler

G/Ç Alt Sistemi Ne Yapar?

Doğru / Yanlış Aşağıdaki ifadeleri değerlendirin.

  1. Hazır süreçler arasında CPU’yu paylaştırmak G/Ç alt sisteminin temel görevlerinden biridir.
  2. Aygıt hatalarını algılamak, yeniden denemek ve kalıcı hataları üst katmana bildirmek G/Ç yazılımının görevidir.
  3. Biriktirme (spooling), aynı anda yalnızca bir kullanıcıya hizmet verebilen bir aygıtı paylaşılabilir hâle getirir.
Cevabı göster
  1. Yanlış. Bu, CPU çizelgeleyicisinin işidir. G/Ç alt sistemi aygıtlarla bellek arasında veri aktarımı, aygıt denetimi, kesme ve hata yönetimi, tamponlama ve aygıt paylaşımıyla ilgilenir.
  2. Doğru. Geçici hatalar (ör. okuma hatası) sürücü ya da denetleyici tarafından yeniden denenir; çözülemeyenler hata kodu olarak döner.
  3. Doğru. İşler önce diske kuyruklanır; aygıta yalnızca biriktirme süreci erişir ve işleri sırayla gönderir.

Soru 4 · Aygıtlar ve Denetleyiciler

Aygıt Yazmaçlarını Adres Uzayına Koymak

Açık uçlu Bir gömülü sistem tasarımcısı aygıt yazmaçlarını ayrı G/Ç kapıları (IN/OUT komutları) yerine fiziksel adres uzayına yerleştirmek istiyor. Bu bellek eşlemeli G/Ç yaklaşımının iki avantajını ve iki dezavantajını açıklayın.

Cevabı göster

Avantajlar

  • Aygıt yazmacı sıradan bir bellek adresidir: sürücü C’de bir volatile işaretçiyle yazılabilir, özel komut ya da assembly gerekmez; tüm bellek komutları (karşılaştır, test et) kullanılabilir.
  • Koruma kolaydır: İS, aygıt sayfasını yalnızca ilgili sürecin/sürücünün sayfa tablosuna eşleyerek erişimi denetler.

Dezavantajlar

  • Aygıt yazmaçları önbelleklenmemelidir; aksi hâlde durum yazmacının eski değeri okunur. Donanım sayfa bazında önbelleği kapatabilmelidir.
  • Ayrı bellek veri yolu olan sistemlerde aygıtların bellek adreslerini görmesi zorlaşır (adres çözme, köprüler); ayrıca adres uzayının bir kısmı aygıtlara ayrılır.

Soru 5 · Aygıtlar ve Denetleyiciler

Bitmeyen Bekleme Döngüsü

Çoktan seçmeli Bellek eşlemeli bir aygıtın durum yazmacını while ((*durum & HAZIR) == 0) ; döngüsüyle okuyan sürücü, aygıt hazır olduğu hâlde döngüden hiç çıkmıyor. En olası neden hangisidir?

  1. Aygıt kesme üretmediği için CPU durum yazmacını okuyamaz
  2. Durum yazmacı yalnızca kapı eşlemeli G/Ç ile okunabilir
  3. DMA denetleyicisi veri yolunu kalıcı olarak almıştır
  4. Durum yazmacının bulunduğu sayfa önbelleklenebilir işaretli (ya da işaretçi volatile değil); CPU her seferinde önbellekteki/yazmaçtaki eski değeri okuyor
Cevabı göster

Doğru cevap: D · Durum yazmacının bulunduğu sayfa önbelleklenebilir işaretli (ya da işaretçi volatile değil); CPU her seferinde önbellekteki/yazmaçtaki eski değeri okuyor

Aygıt yazmacının değeri CPU’nun haberi olmadan değişir. Bu yüzden o sayfa “önbelleksiz” işaretlenmeli, C’de de derleyicinin okumayı döngü dışına almaması için volatile kullanılmalıdır.

Soru 6 · Yoklama, Kesme, DMA

Yoklama Kesmeden İyi Olabilir mi?

Çoktan seçmeli Aşağıdaki durumların hangisinde yoklama (polling) kesme güdümlü G/Ç’den daha verimli olabilir?

  1. Saniyede birkaç tuşa basılan bir klavye
  2. İsteklerin birkaç mikrosaniyede tamamlandığı çok hızlı bir aygıt (ör. yük altındaki bir NVMe SSD ya da yüksek hızlı ağ kartı)
  3. Aylarca bir kez sinyal gönderen bir alarm sensörü
  4. Yazdırması dakikalar süren bir yazıcı
Cevabı göster

Doğru cevap: B · İsteklerin birkaç mikrosaniyede tamamlandığı çok hızlı bir aygıt (ör. yük altındaki bir NVMe SSD ya da yüksek hızlı ağ kartı)

Kesmenin sabit bir maliyeti (bağlam kaydetme, işleyici, önbellek kirlenmesi) vardır. Aygıt neredeyse anında hazır oluyorsa kısa bir süre yoklamak bu maliyetten ucuzdur; Linux’un NAPI’si ve hibrit yoklama bu fikri kullanır. Yavaş ve seyrek aygıtlarda yoklama CPU’yu boşa harcar.

Soru 7 · Yoklama, Kesme, DMA

Yoklamanın CPU’ya Maliyeti

Hesaplama 2 GHz’lik bir CPU’da bir yoklama işlemi (durum oku, karşılaştır, veriyi al) 400 çevrim sürüyor. (a) Hareketi kaçırmamak için saniyede 30 kez yoklanan bir fare, (b) 100 MB/s veri üreten ve her yoklamada 16 bayt veren bir disk denetleyicisi CPU zamanının yüzde kaçını tüketir?

Cevabı göster

(a) 30 × 400 = 12 000 çevrim/s → 12 000 / 2 × 109 = %0,0006: önemsiz.

(b) 100 × 106 / 16 = 6,25 × 106 yoklama/s × 400 = 2,5 × 109 çevrim/s → %125: CPU’nun tamamı bile yetmez.

Yüksek hızlı blok aktarımında hem yoklama hem bayt bayt kesme uygun değildir; çözüm DMA’dır.

Soru 7 · Adım Adım Çözüm

Soru 7: Adım Adım Çözüm

1. Maliyet oranı = (yoklama/s × çevrim/yoklama) / (çevrim/s).

2. Fare: 30 × 400 = 12 000 → 12 000 / 2 000 000 000 = 6 × 10−6 = %0,0006.

3. Disk: yoklama sayısı 100 000 000 / 16 = 6 250 000/s.

4. 6 250 000 × 400 = 2 500 000 000 çevrim/s > 2 000 000 000 → %125.

Soru 8 · Yoklama, Kesme, DMA

Aynı Aktarım, Üç Yöntem

Açık uçlu Bir 8 KB’lık arabellek yazıcıya gönderilecek. Programlanmış G/Ç, kesme güdümlü G/Ç ve DMA ile CPU’nun bu aktarımdaki rolünü karşılaştırın: CPU ne zaman meşgul, ne zaman serbest?

Cevabı göster
  • Programlanmış G/Ç: CPU her karakter için durum yazmacını döngüde bekler (meşgul bekleme) ve veriyi yazar; aktarım boyunca CPU tamamen meşguldür.
  • Kesme güdümlü G/Ç: CPU bir karakter gönderir, başka sürece geçer; yazıcı hazır olunca kesme gelir, işleyici sonraki karakteri yazar. CPU arada serbesttir ama her karakterde bir kesme (8 192 kesme) olur.
  • DMA: CPU denetleyiciye adres, sayaç ve yönü yazar ve başka işe geçer; denetleyici veriyi belleğten aygıta kendisi taşır. CPU yalnızca başta (kurulum) ve sonda (tek tamamlanma kesmesi) devrededir.

Soru 9 · Yoklama, Kesme, DMA

Sektör Başına Kesme mi, DMA mı?

Hesaplama Bir disk denetleyicisinden 1 MB veri okunuyor. (a) Kesme güdümlü yöntemde her 512 baytlık sektör için bir kesme geliyor ve işleyici sektörü belleğe kopyalayarak toplam 4 µs harcıyor. (b) DMA ile CPU kurulumu 6 µs’de yapıyor, aktarım sonunda tek bir 4 µs’lik kesme geliyor. CPU’nun bu okuma için harcadığı süreleri karşılaştırın.

Cevabı göster

(a) 1 MB = 1 048 576 B → 1 048 576 / 512 = 2 048 kesme × 4 µs = 8 192 µs ≈ 8,2 ms.

(b) 6 + 4 = 10 µs. CPU yükü yaklaşık 800 kat azalır. DMA aktarımı sırasında denetleyici veri yolunu kullandığı için CPU’nun bellek erişimleri arada bir bekleyebilir (döngü çalma), ama bu kopyalama maliyetinin yanında küçüktür.

Soru 10 · Yoklama, Kesme, DMA

Döngü Çalma (Cycle Stealing) Nedir?

Çoktan seçmeli DMA bağlamında “döngü çalma” kavramını en doğru tanımlayan ifade hangisidir?

  1. DMA olmayan sistemlerde CPU’nun boş çevrimlerde aygıt yazmaçlarını okumasıdır
  2. DMA denetleyicisinin, her seferinde bir sözcük aktarmak için veri yolunu birkaç çevrimliğine CPU’dan almasıdır; tüm bloğu tek seferde aktaran patlama (burst) kipinin karşıtıdır
  3. Çizelgeleyicinin G/Ç bekleyen süreçlerin zaman dilimini başka süreçlere vermesidir
  4. Kesme işleyicisinin başka bir kesmeyi geciktirmesidir
Cevabı göster

Doğru cevap: B · DMA denetleyicisinin, her seferinde bir sözcük aktarmak için veri yolunu birkaç çevrimliğine CPU’dan almasıdır; tüm bloğu tek seferde aktaran patlama (burst) kipinin karşıtıdır

Döngü çalma bir DMA çalışma kipidir. CPU’yu tamamen durdurmaz, yalnızca veri yolunu ara ara kısa süre için kullanamaz. Patlama kipinde ise denetleyici veri yolunu blok boyunca tutar: daha hızlı aktarım, daha uzun CPU beklemesi.

Soru 11 · Yoklama, Kesme, DMA

DMA: Doğru mu?

Doğru / Yanlış Aşağıdaki ifadeleri değerlendirin.

  1. DMA her aktarım boyutunda kesme güdümlü G/Ç’den daha kazançlıdır.
  2. DMA aktarımı sürerken CPU başka bir süreci çalıştırabilir.
  3. DMA kullanmak sistemi kötü niyetli aygıtlara karşı daha güvenli kılar.
Cevabı göster
  1. Yanlış. DMA’nın sabit bir kurulum maliyeti vardır; birkaç baytlık aktarımlarda bu maliyet kazancı aşabilir. DMA büyük blok aktarımlarında parlar.
  2. Doğru. CPU yalnızca kurulum ve tamamlanma kesmesinde devrededir; aradaki sürede veri yolu çekişmesi dışında serbesttir.
  3. Yanlış. Tersine, belleğe doğrudan yazan aygıt her yere yazabilir. Aygıtın erişebileceği bölgeleri sınırlamak için IOMMU gerekir.

Soru 12 · Yoklama, Kesme, DMA

Kesme Geldiğinde Sıra

Çoktan seçmeli Bir disk okuması tamamlandığında oluşan kesmenin işlenme sırası hangi seçenekte doğru verilmiştir?

  1. İşleyici çalışır → CPU durumu kaydedilir → aygıt kesme sinyali gönderir → süreç sürdürülür
  2. Çizelgeleyici çalışır → aygıt kesme gönderir → CPU durumu kaydeder
  3. Aygıt veriyi kullanıcı belleğine yazar → süreç kendisi uyanır → kesme sonradan işlenir
  4. Aygıt kesme sinyali gönderir → CPU geçerli komutu bitirir, durumu (PC, bayraklar) kaydeder → kesme vektöründen işleyici bulunur ve çalışır → bekleyen süreç hazır yapılır → çizelgeleyici bir süreci sürdürür
Cevabı göster

Doğru cevap: D · Aygıt kesme sinyali gönderir → CPU geçerli komutu bitirir, durumu (PC, bayraklar) kaydeder → kesme vektöründen işleyici bulunur ve çalışır → bekleyen süreç hazır yapılır → çizelgeleyici bir süreci sürdürür

Kesme denetleyicisi sinyali CPU’ya iletir; CPU komut sınırında durur, durumu kaydedip çekirdek kipine geçer, vektör tablosundan işleyiciyi bulur. İşleyici (üst yarı) kısa tutulur; ağır iş alt yarıya ertelenir. Sonunda okumayı bekleyen süreç hazır kuyruğuna alınır.

Soru 13 · G/Ç Yazılımı

Hemen Dön, Bitince Haber Ver

Çoktan seçmeli Bir sunucu programı read isteğini çekirdeğe verip hemen dönmek, işlem bittiğinde ise bir tamamlama bildirimi almak istiyor (ör. io_uring). Bu hangi G/Ç modelidir ve bedeli nedir?

  1. Eşzamansız G/Ç; bedeli programlamanın karmaşıklaşmasıdır (tamamlama olayları, arabellek yaşam süresi, hata yolları ayrı ayrı ele alınmalıdır)
  2. Engellemeyen G/Ç; veri o an ne kadar varsa döner, yoksa hemen hata döner
  3. Engelleyen G/Ç; bedeli yoktur
  4. Programlanmış G/Ç; bedeli CPU’nun meşgul beklemesidir
Cevabı göster

Doğru cevap: A · Eşzamansız G/Ç; bedeli programlamanın karmaşıklaşmasıdır (tamamlama olayları, arabellek yaşam süresi, hata yolları ayrı ayrı ele alınmalıdır)

Engelleyen modelde süreç veri gelene kadar uyur; engellemeyen modelde çağrı “şu an ne varsa” döner (EAGAIN). Eşzamansız modelde istek arka planda tamamlanır ve süreç sonra bilgilendirilir: verim ve eşzamanlılık artar, kod ise daha zor yazılır ve okunur.

Soru 14 · G/Ç Yazılımı

Tampon Neden Hızlandırır?

Açık uçlu Bir ağ kartından gelen veri diske yazılıyor; iki aygıtın hızı ve veri birimleri farklı. Tamponlamanın başarımı nasıl artırdığını tek tampon, çift tampon ve dairesel tampon üzerinden açıklayın.

Cevabı göster

Tampon, üretici ve tüketici arasındaki hız, zamanlama ve veri birimi farkını dengeleyen geçici bellek alanıdır; ayrıca kopya semantiğini (yazılan veri sonradan değişse de doğru gitmesi) sağlar.

  • Tek tampon: aygıt tampona yazarken tüketici bir önceki veriyi işleyebilir; ama tampon dolup boşalırken taraflardan biri bekler.
  • Çift tampon: biri dolarken diğeri boşaltılır; roller değişir. Üretim ve tüketim tam örtüşür.
  • Dairesel tampon: n tampon halkası; ani veri patlamalarını emer, yazar ve okur işaretçileri bağımsız ilerler.

Sonuç: CPU ile G/Ç örtüşür, aygıt daha seyrek ve büyük parçalarla kullanılır.

Soru 15 · G/Ç Yazılımı

Tamponsuz, Tek ve Çift Tampon

Hesaplama Bir aygıttan bir bloğun gelmesi T = 8 ms, sürecin bir bloğu işlemesi C = 5 ms, tampondan kullanıcı alanına kopyalama M = 1 ms sürüyor. Kararlı durumda blok başına süreyi ve 100 blok için toplam süreyi (a) tamponsuz, (b) tek tamponla, (c) çift tamponla hesaplayın.

Cevabı göster

(a) Tamponsuz: okuma ve işleme sırayla → T + C = 13 ms → 1 300 ms.

(b) Tek tampon: sonraki blok tampona gelirken önceki işlenir → max(T, C) + M = 8 + 1 = 9 ms → 900 ms.

(c) Çift tampon: kopyalama da örtüşür → max(T, C) = 8 ms → 800 ms. Artık darboğaz aygıttır (T > C); daha fazla tampon bunu düzeltmez.

Soru 16 · G/Ç Yazılımı

write() Döndüğünde

Çoktan seçmeli Bir süreç açık bir dosyaya write(fd, buf, 4096) çağırıyor ve çağrı 4096 döndürüyor. Hangisi doğrudur?

  1. Veri kesinlikle diske yazılmıştır
  2. Dosya açık değilse çekirdek önce dosyayı açar, sonra yazar
  3. Veri büyük olasılıkla çekirdeğin sayfa önbelleğine kopyalanmış, sayfa kirli işaretlenmiştir; diske daha sonra geri yazılacaktır
  4. Çağrı, disk kafası doğru yere gelene kadar her zaman engellenir
Cevabı göster

Doğru cevap: C · Veri büyük olasılıkla çekirdeğin sayfa önbelleğine kopyalanmış, sayfa kirli işaretlenmiştir; diske daha sonra geri yazılacaktır

Normal (önbellekli) yazmada çekirdek veriyi kullanıcı tamponundan sayfa önbelleğine kopyalar ve döner; gecikmeli yazma daha sonra yapılır. Geçersiz bir tanımlayıcıyla çağrılırsa write dosya açmaz, EBADF hatası döndürür.

Soru 17 · G/Ç Yazılımı

USB’yi Neden Güvenle Çıkarmalı?

Çoktan seçmeli Dosyayı USB belleğe kopyalama penceresi “tamamlandı” dedikten hemen sonra belleği çekmek neden veri kaybına yol açabilir?

  1. İS yazmaları ve dosya sistemi meta verisini önbellekte biriktirip daha sonra aygıta aktarır; “güvenli çıkar” bu kirli tamponları boşaltır ve dosya sistemini ayırır (unmount)
  2. USB belleğin yalnızca okunur kipe geçmesi gerekir
  3. Aygıt sürücüsü çekilen aygıtı hemen silmek zorundadır
  4. USB denetleyicisi elektrik akımı kesildiğinde veriyi şifreler
Cevabı göster

Doğru cevap: A · İS yazmaları ve dosya sistemi meta verisini önbellekte biriktirip daha sonra aygıta aktarır; “güvenli çıkar” bu kirli tamponları boşaltır ve dosya sistemini ayırır (unmount)

Kopya “bitti” göründüğünde verinin bir kısmı hâlâ sayfa önbelleğinde olabilir; FAT/exFAT tablosu da güncellenmemiş olabilir. Ayırma işlemi tüm kirli blokları yazar, ardından aygıtın güvenle çekilebileceğini bildirir.

Soru 18 · G/Ç Yazılımı

Bozulan Bitlere Karşı

Doğru / Yanlış G/Ç sırasında veri kaybı ve bozulmasına karşı kullanılan yöntemlerle ilgili ifadeleri değerlendirin.

  1. Tek bir eşlik (parity) biti, bir bitlik hatayı hem algılar hem düzeltir.
  2. CRC hatayı algılar; ağ protokollerinde bozuk çerçeve atılır ve yeniden iletim ile kurtarılır.
  3. CD’lerdeki çiziklere karşı Reed–Solomon kodları serpiştirmeyle (CIRC) birlikte kullanılır; böylece ardışık binlerce bitlik bir kayıp birçok kod sözcüğüne dağılır ve düzeltilebilir.
Cevabı göster
  1. Yanlış. Eşlik biti yalnızca tek sayıda bit hatasını algılar; hangi bitin bozulduğunu söyleyemez. Düzeltme için Hamming ya da Reed–Solomon gibi ECC gerekir.
  2. Doğru. CRC güçlü bir algılama kodudur; düzeltme yapmaz. Kurtarma yeniden gönderme (ARQ) ya da ayrı bir ECC katmanıyla olur.
  3. Doğru. Serpiştirme bir çiziği birçok küçük, düzeltilebilir hataya böler; ek olarak sektör düzeyinde ECC katmanı bulunur.

Soru 19 · Disk Erişim Süresi

Bir Disk İsteği Ne Kadar Sürer?

Hesaplama 7 200 dev/dk dönen bir HDD’nin ortalama arama süresi 6 ms, sürekli aktarım hızı 150 MB/s (1 MB = 106 B). (a) Rastgele bir konumdan 64 KB’lık (65 536 B) ardışık veri okumak ortalama ne kadar sürer? (b) Aynı miktar veri diske dağılmış 16 adet 4 KB’lık bloktan okunursa?

Cevabı göster

(a) Bir tur 60 / 7 200 s = 8,33 ms → ortalama dönme gecikmesi yarım tur = 4,17 ms. Aktarım 65 536 / 150 × 106 s = 0,44 ms. Toplam 6 + 4,17 + 0,44 ≈ 10,60 ms.

(b) Her blok: 6 + 4,17 + 0,027 ≈ 10,19 ms → 16 × 10,19 ≈ 163,1 ms: yaklaşık 15 kat yavaş.

Rastgele erişimde süreye arama ve dönme hâkimdir; bu yüzden ardışık yerleşim, büyük bloklar ve kol çizelgeleme önemlidir.

Soru 19 · Adım Adım Çözüm

Soru 19: Adım Adım Çözüm

1. Erişim süresi = arama + dönme gecikmesi + aktarım.

2. Dönme: 7 200 dev/dk = 120 dev/s → tur 8,333 ms → ortalama yarım tur 4,167 ms.

3. Aktarım (64 KB): 65 536 / 150 000 000 s = 0,437 ms.

4. (a) 6 + 4,167 + 0,437 = 10,604 ms.

5. (b) Blok başına aktarım 4 096 / 150 000 000 s = 0,027 ms → 16 × (6 + 4,167 + 0,027) = 163,1 ms.

Soru 20 · Disk Erişim Süresi

Küçük Rastgele Okumaları Hızlandırmak

Çoktan seçmeli Bir veritabanı HDD üzerinde sürekli rastgele 4 KB okumalar yapıyor. Aşağıdaki değişikliklerden hangisi ortalama istek süresini en az etkiler?

  1. Sık birlikte okunan blokları diskte yan yana yerleştirmek
  2. Diskin sürekli aktarım hızını 150 MB/s’den 200 MB/s’ye çıkarmak
  3. Bekleyen istekleri kol hareketini azaltacak biçimde sıralamak (kol çizelgeleme)
  4. Sık okunan blokları bellekte önbelleğe almak
Cevabı göster

Doğru cevap: B · Diskin sürekli aktarım hızını 150 MB/s’den 200 MB/s’ye çıkarmak

4 KB’ın aktarımı zaten yalnızca ~0,03 ms sürer; istek süresinin %99’undan fazlası arama ve dönme gecikmesidir. Aktarım hızını artırmak bu iş yükünde neredeyse fark etmez; yerleşim, çizelgeleme ve önbellek ise doğrudan aramayı ya da diske gitmeyi azaltır.

Soru 21 · Disk Erişim Süresi

Dağınık Dosyayı Hızlı Okumak

Açık uçlu Bir dosyanın blokları döner diskin farklı silindirlerine dağılmış ve okuma uzun sürüyor. Donanımı değiştirmeden, İS ve dosya sistemi düzeyinde alınabilecek dört önlemi açıklayın.

Cevabı göster
  • Kol çizelgeleme: bekleyen istekleri SSTF/SCAN/LOOK gibi algoritmalarla sıralayıp toplam kafa hareketini azaltmak.
  • Birleştirme ve yakın yerleşim: dosyanın bloklarını ardışık hâle getirmek (defrag), yeni blokları aynı silindir grubuna ya da extent olarak ayırmak.
  • Önden okuma (read-ahead): sıralı erişim fark edilince sonraki blokları istenmeden okumak.
  • Önbellek: sık kullanılan blokları sayfa/tampon önbelleğinde tutup diske hiç gitmemek.

Ayrıca daha büyük blok boyutu, sektörlerin dönme yönünde sıralı okunması (silindir eğriliği) ve dönme gecikmesini de hesaba katan SPTF benzeri çizelgeleme kullanılabilir.

Soru 22 · Kol Çizelgeleme

FCFS ve SSTF ile Kafa Hareketi

Hesaplama Disk 0–199 numaralı silindirlerden oluşuyor. Kafa 84. silindirde ve son olarak 70’e hizmet verdiği için yukarı (büyük numaralara doğru) gidiyor. Kuyruktaki istekler (geliş sırasıyla): 184, 142, 170, 8, 60, 155, 116, 37. FCFS ve SSTF için hizmet sırasını ve toplam kafa hareketini (silindir) bulun.

Cevabı göster

FCFS: 84 → 184 → 142 → 170 → 8 → 60 → 155 → 116 → 37 → 597 silindir.

SSTF: 84 → 60 → 37 → 8 → 116 → 142 → 155 → 170 → 184 → 252 silindir. SSTF önce en yakın 60’a aşağı iner (24 < 32), alt bölgeyi bitirip yukarı çıkar.

Soru 22 · Adım Adım Çözüm

Soru 22: Adım Adım Çözüm

05010015019984

FCFS: kafa 84’de başlıyor. Toplam: 0

05010015019984184

FCFS: 84 → 184 (istek): |184 − 84| = 100. Toplam: 100

05010015019984184142

FCFS: 184 → 142 (istek): |142 − 184| = 42. Toplam: 142

05010015019984184142170

FCFS: 142 → 170 (istek): |170 − 142| = 28. Toplam: 170

050100150199841841421708

FCFS: 170 → 8 (istek): |8 − 170| = 162. Toplam: 332

05010015019984184142170860

FCFS: 8 → 60 (istek): |60 − 8| = 52. Toplam: 384

05010015019984184142170860155

FCFS: 60 → 155 (istek): |155 − 60| = 95. Toplam: 479

05010015019984184142170860155116

FCFS: 155 → 116 (istek): |116 − 155| = 39. Toplam: 518

0501001501998418414217086015511637

FCFS: 116 → 37 (istek): |37 − 116| = 79. Toplam: 597

05010015019984

SSTF: kafa 84’de başlıyor. Toplam: 0

0501001501998460

SSTF: 84 → 60 (istek): |60 − 84| = 24. Toplam: 24

050100150199846037

SSTF: 60 → 37 (istek): |37 − 60| = 23. Toplam: 47

0501001501998460378

SSTF: 37 → 8 (istek): |8 − 37| = 29. Toplam: 76

0501001501998460378116

SSTF: 8 → 116 (istek): |116 − 8| = 108. Toplam: 184

0501001501998460378116142

SSTF: 116 → 142 (istek): |142 − 116| = 26. Toplam: 210

0501001501998460378116142155

SSTF: 142 → 155 (istek): |155 − 142| = 13. Toplam: 223

0501001501998460378116142155170

SSTF: 155 → 170 (istek): |170 − 155| = 15. Toplam: 238

0501001501998460378116142155170184

SSTF: 170 → 184 (istek): |184 − 170| = 14. Toplam: 252

Soru 23 · Kol Çizelgeleme

SCAN ve C-SCAN ile Kafa Hareketi

Hesaplama Disk 0–199 numaralı silindirlerden oluşuyor. Kafa 84. silindirde ve son olarak 70’e hizmet verdiği için yukarı (büyük numaralara doğru) gidiyor. Kuyruktaki istekler (geliş sırasıyla): 184, 142, 170, 8, 60, 155, 116, 37. SCAN ve C-SCAN için hizmet sırasını ve toplam kafa hareketini bulun. (C-SCAN’de 199’dan 0’a hizmetsiz dönüş de toplama katılsın.)

Cevabı göster

SCAN: 84 → 116 → 142 → 155 → 170 → 184 → 199 → 60 → 37 → 8 → (199 − 84) + (199 − 8) = 306 silindir.

C-SCAN: 84 → 116 → 142 → 155 → 170 → 184 → 199 → 0 → 8 → 37 → 60 → 115 + 199 + 60 = 374 silindir. Dönüş sayılmazsa 175 olur; hangi kuralın kullanıldığını her zaman belirtin. C-SCAN bekleme süresini daha düzgün dağıtır.

Soru 23 · Adım Adım Çözüm

Soru 23: Adım Adım Çözüm

05010015019984

SCAN: kafa 84’de başlıyor. Toplam: 0

05010015019984116

SCAN: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32

05010015019984116142

SCAN: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58

05010015019984116142155

SCAN: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71

05010015019984116142155170

SCAN: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86

05010015019984116142155170184

SCAN: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100

05010015019984116142155170184199

SCAN: 184 → 199 (uç noktaya gidiş (istek yok)): |199 − 184| = 15. Toplam: 115

0501001501998411614215517018419960

SCAN: 199 → 60 (istek): |60 − 199| = 139. Toplam: 254

050100150199841161421551701841996037

SCAN: 60 → 37 (istek): |37 − 60| = 23. Toplam: 277

0501001501998411614215517018419960378

SCAN: 37 → 8 (istek): |8 − 37| = 29. Toplam: 306

05010015019984

C-SCAN: kafa 84’de başlıyor. Toplam: 0

05010015019984116

C-SCAN: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32

05010015019984116142

C-SCAN: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58

05010015019984116142155

C-SCAN: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71

05010015019984116142155170

C-SCAN: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86

05010015019984116142155170184

C-SCAN: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100

05010015019984116142155170184199

C-SCAN: 184 → 199 (uç noktaya gidiş (istek yok)): |199 − 184| = 15. Toplam: 115

050100150199841161421551701841990

C-SCAN: 199 → 0 (hizmetsiz dönüş): |0 − 199| = 199. Toplam: 314

0501001501998411614215517018419908

C-SCAN: 0 → 8 (istek): |8 − 0| = 8. Toplam: 322

050100150199841161421551701841990837

C-SCAN: 8 → 37 (istek): |37 − 8| = 29. Toplam: 351

05010015019984116142155170184199083760

C-SCAN: 37 → 60 (istek): |60 − 37| = 23. Toplam: 374

Soru 24 · Kol Çizelgeleme

LOOK ve C-LOOK ile Kafa Hareketi

Hesaplama Disk 0–199 numaralı silindirlerden oluşuyor. Kafa 84. silindirde ve son olarak 70’e hizmet verdiği için yukarı (büyük numaralara doğru) gidiyor. Kuyruktaki istekler (geliş sırasıyla): 184, 142, 170, 8, 60, 155, 116, 37. LOOK ve C-LOOK için hizmet sırasını ve toplam kafa hareketini bulun (C-LOOK’ta geri dönüş toplama katılsın). Altı algoritmayı sıralayın.

Cevabı göster

LOOK: 84 → 116 → 142 → 155 → 170 → 184 → 60 → 37 → 8 → 100 + 176 = 276. C-LOOK: 84 → 116 → 142 → 155 → 170 → 184 → 8 → 37 → 60 → 100 + 176 + 52 = 328.

Sıralama: SSTF 252 < LOOK 276 < SCAN 306 < C-LOOK 328 < C-SCAN 374 < FCFS 597. LOOK, SCAN’den farkı uç noktaya (199) boşuna gitmemesidir.

Soru 24 · Adım Adım Çözüm

Soru 24: Adım Adım Çözüm

05010015019984

LOOK: kafa 84’de başlıyor. Toplam: 0

05010015019984116

LOOK: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32

05010015019984116142

LOOK: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58

05010015019984116142155

LOOK: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71

05010015019984116142155170

LOOK: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86

05010015019984116142155170184

LOOK: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100

0501001501998411614215517018460

LOOK: 184 → 60 (istek): |60 − 184| = 124. Toplam: 224

050100150199841161421551701846037

LOOK: 60 → 37 (istek): |37 − 60| = 23. Toplam: 247

0501001501998411614215517018460378

LOOK: 37 → 8 (istek): |8 − 37| = 29. Toplam: 276

05010015019984

C-LOOK: kafa 84’de başlıyor. Toplam: 0

05010015019984116

C-LOOK: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32

05010015019984116142

C-LOOK: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58

05010015019984116142155

C-LOOK: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71

05010015019984116142155170

C-LOOK: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86

05010015019984116142155170184

C-LOOK: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100

050100150199841161421551701848

C-LOOK: 184 → 8 (geri dönüş; ardından bu isteğe hizmet): |8 − 184| = 176. Toplam: 276

05010015019984116142155170184837

C-LOOK: 8 → 37 (istek): |37 − 8| = 29. Toplam: 305

0501001501998411614215517018483760

C-LOOK: 37 → 60 (istek): |60 − 37| = 23. Toplam: 328

Soru 25 · Kol Çizelgeleme

SSTF’nin Zaafı

Çoktan seçmeli Yoğun yük altındaki bir diskte istekler sürekli olarak 90–110 silindirleri arasında geliyor; 190. silindirdeki bir istek dakikalardır bekliyor. Kullanılan algoritma ve sorunun adı nedir; hangi algoritma bunu önler?

  1. SSTF; açlık (starvation): uzaktaki istek sürekli daha yakın isteklerin gerisinde kalır; SCAN/C-SCAN ya da LOOK ailesi önler
  2. FCFS; konvoy etkisi; SSTF önler
  3. C-SCAN; kilitlenme; FCFS önler
  4. SCAN; Belady anomalisi; SSTF önler
Cevabı göster

Doğru cevap: A · SSTF; açlık (starvation): uzaktaki istek sürekli daha yakın isteklerin gerisinde kalır; SCAN/C-SCAN ya da LOOK ailesi önler

SSTF her adımda en yakını seçtiği için toplam hareketi azaltır ama adil değildir. Tarama algoritmaları kafayı uca kadar götürerek her isteğe bir tur içinde hizmet verilmesini garanti eder; C-SCAN/C-LOOK bekleme sürelerini en düzgün dağıtan seçeneklerdir.

Soru 26 · Kol Çizelgeleme

SSD’de Kol Çizelgeleme?

Çoktan seçmeli Linux’ta NVMe SSD’ler için G/Ç zamanlayıcısı çoğunlukla none (sıralama yok) seçilir. Bunun nedeni nedir?

  1. SSD’ler yalnızca sıralı yazmayı destekler
  2. NVMe istekleri her zaman FCFS ile işlemek zorundadır
  3. SSD’de hareketli kafa ve dönme gecikmesi olmadığı için istek konumuna göre sıralamanın kazancı yoktur; sıralama yalnızca CPU yükü ve gecikme ekler
  4. SSD’ler kendi içlerinde SCAN uyguladıkları için çekirdek uygulayamaz
Cevabı göster

Doğru cevap: C · SSD’de hareketli kafa ve dönme gecikmesi olmadığı için istek konumuna göre sıralamanın kazancı yoktur; sıralama yalnızca CPU yükü ve gecikme ekler

Kol çizelgeleme arama süresini azaltmak için vardır. SSD’de erişim süresi konumdan neredeyse bağımsızdır; NVMe’nin çoklu kuyrukları (blk-mq) her çekirdeğe ayrı kuyruk verir. Adalet ya da gecikme hedefi gerekiyorsa mq-deadline, bfq ya da kyber seçilebilir.

Soru 27 · RAID ve SSD

Hangi RAID Düzeyi?

Açık uçlu RAID’in amacını bir cümleyle yazın. Ardından RAID 0, 1, 5, 6 ve 10 düzeylerini çalışma biçimi, kullanılabilir kapasite ve kaç disk arızasına dayanabildiği açısından bir tabloda karşılaştırın.

Cevabı göster

RAID, birden çok diski tek bir mantıksal disk gibi kullanarak başarımı (paralel erişim) ve/veya güvenilirliği (artıklık) artırır.

DüzeyNasılKapasite (n disk)Dayanıklılık
0Şeritleme, artıklık yokn0 (bir disk = tüm veri)
1Aynalaman / 2Her çiftte 1
5Şeritleme + dağıtılmış eşlikn − 11
6Şeritleme + iki eşlik (P, Q)n − 22
10Aynalı çiftlerin şeritlenmesin / 2En az 1, çiftler farklıysa daha fazla

RAID yedeklemenin yerini tutmaz: yanlışlıkla silme ya da fidye yazılımı tüm kopyalara yansır.

Soru 28 · RAID ve SSD

Altı Diskle Kapasite

Hesaplama Elinizde 6 adet 4 TB’lık disk var. RAID 0, RAID 10, RAID 5 ve RAID 6 dizilerinde kullanılabilir kapasite ne olur? Her biri kaç diskin aynı anda arızalanmasına kesinlikle dayanır?

Cevabı göster
DüzeyKapasiteGaranti edilen dayanıklılık
RAID 06 × 4 = 24 TB0 disk
RAID 10 (3 aynalı çift)6 / 2 × 4 = 12 TB1 disk (farklı çiftlerden 3 diske kadar şanslı durum)
RAID 5(6 − 1) × 4 = 20 TB1 disk
RAID 6(6 − 2) × 4 = 16 TB2 disk

Büyük disklerde yeniden oluşturma saatler sürer; bu sırada ikinci bir arıza riski RAID 6’yı cazip kılar.

Soru 29 · RAID ve SSD

Eşlik Bloğunu Hesaplayın

Hesaplama Dört veri diskli bir RAID 5 şeridinde (her blok 8 bit gösterilmiştir) D0 = 10110110, D1 = 01011100, D2 = 11100001, D3 = 00111010. (a) Eşlik P nedir? (b) D2’nin diski bozulursa D2 nasıl geri kazanılır? (c) D1 01010101 olarak güncellenirse yeni P, tüm şeridi okumadan nasıl bulunur?

Cevabı göster

(a) P = D0 ⊕ D1 ⊕ D2 ⊕ D3 = 00110001.

(b) D2 = D0 ⊕ D1 ⊕ D3 ⊕ P = 11100001 (XOR kendisinin tersidir).

(c) Pyeni = Peski ⊕ D1eski ⊕ D1yeni = 00111000. Küçük yazma: 2 okuma (eski veri, eski eşlik) + 2 yazma.

Soru 29 · Adım Adım Çözüm

Soru 29: Adım Adım Çözüm

1. D0 ⊕ D1 = 10110110 ⊕ 01011100 = 11101010.

2. ⊕ D2 = 11101010 ⊕ 11100001 = 00001011.

3. ⊕ D3 = 00001011 ⊕ 00111010 = 00110001 = P.

4. Kurtarma: D0 ⊕ D1 ⊕ D3 = 11010000; ⊕ P = 11100001 = D2 ✓.

5. Güncelleme: D1eski ⊕ D1yeni = 00001001 (değişen bitler); P ⊕ bu = 00111000.

Soru 30 · RAID ve SSD

Eşlik Neden Dağıtılır?

Çoktan seçmeli RAID 4 ile RAID 5 aynı miktarda eşlik bilgisi tutar. RAID 5’in eşlik bloklarını tüm disklere dağıtmasının temel nedeni nedir?

  1. Disk arızasına iki kat dayanıklılık sağlamak
  2. Okuma için eşliğin her zaman hesaplanmasını sağlamak
  3. Kullanılabilir kapasiteyi n − 1’den n’ye çıkarmak
  4. RAID 4’te her küçük yazma aynı eşlik diskine de yazmak zorunda olduğundan o disk darboğaz olur; dağıtılmış eşlik bu yükü paylaştırır
Cevabı göster

Doğru cevap: D · RAID 4’te her küçük yazma aynı eşlik diskine de yazmak zorunda olduğundan o disk darboğaz olur; dağıtılmış eşlik bu yükü paylaştırır

Kapasite ve dayanıklılık aynıdır (n − 1, bir disk). Fark başarımdadır: RAID 4’te eşzamanlı küçük yazmalar tek eşlik diskinde sıraya girer; RAID 5’te farklı şeritlerin eşlikleri farklı disklerde olduğundan paralel yürüyebilir.

Soru 31 · RAID ve SSD

SSD’ler Hakkında

Doğru / Yanlış Aşağıdaki ifadeleri değerlendirin.

  1. NAND flash’ta bir sayfa yerinde yeniden yazılabilir; bu yüzden SSD’ler HDD gibi blokları yerinde günceller.
  2. TRIM komutu, dosya sisteminin artık kullanmadığı blokları SSD’ye bildirerek çöp toplamanın gereksiz veri taşımasını önler.
  3. Aşınma dengeleme, yazmaları tüm bloklara yayarak bazı blokların erken ömrünü doldurmasını engeller.
Cevabı göster
  1. Yanlış. Flash’ta yazma sayfa düzeyinde, silme ise çok daha büyük blok düzeyindedir ve yazılmış sayfa ancak blok silinince yeniden yazılır. FTL güncellemeleri yeni sayfalara yazar ve eski sayfaları geçersiz işaretler.
  2. Doğru. SSD hangi sayfaların silinmiş dosyalara ait olduğunu kendisi bilemez; TRIM bu bilgiyi verir, yazma büyümesini ve aşınmayı azaltır.
  3. Doğru. Her blok sınırlı sayıda silme döngüsüne dayanır; FTL sık değişen veriyi farklı bloklara taşır.

Özet

Özet: Sık Yapılan Hatalar

Yanlış düşünceDoğrusu
Döngü çalma DMA’sız sistemlerde kullanılan bir yöntemdir.Döngü çalma bir DMA kipidir: denetleyici veri yolunu sözcük sözcük kısa süreler için alır.
DMA her zaman ve güvenlik için de iyidir.Küçük aktarımda kurulum maliyeti baskındır; güvenlik için IOMMU gerekir.
write() dönünce veri diskte, dosya açık değilse açılır.Veri önbelleğe kopyalanır; geçersiz tanımlayıcı EBADF döndürür.
RAID 0 güvenilirliği artırır.RAID 0’da artıklık yoktur; tek disk arızası tüm veriyi kaybettirir.
Eşlik biti hatayı düzeltir.Eşlik yalnızca algılar; düzeltme ECC ister. RAID 5’te ise hangi diskin bozulduğu bilindiği için XOR ile kurtarılır.
C-SCAN toplamında dönüş hep sayılmaz.Kural kaynağa göre değişir; hesapta dönüşün sayılıp sayılmadığını belirtin.
Aktarım hızı artınca rastgele okuma hızlanır.Küçük rastgele okumalara arama ve dönme gecikmesi hâkimdir.

Son

Bölüm 11: Giriş/Çıkış
Sonraki: Bölüm 12 Çalışma Soruları
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.