Bölüm 11: Giriş/Çıkış
Giriş
Nasıl çalışalım?
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?
- Klavye — karakter aygıtı (bayt akışı, konumlanma yok)
- NVMe SSD — blok aygıtı (sabit boyutlu bloklar, rastgele erişim)
- Fare — blok aygıtı (her bloğa adresle erişilir)
- Ethernet kartı — ağ aygıtı (soket arayüzüyle kullanılır)
- 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?
- 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ı
- Her uygulamanın her aygıt için ayrı kod içermesi
- CPU önbelleğinin aygıt komutlarını dönüştürmesi
- Ö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.
- Hazır süreçler arasında CPU’yu paylaştırmak G/Ç alt sisteminin temel görevlerinden biridir.
- Aygıt hatalarını algılamak, yeniden denemek ve kalıcı hataları üst katmana bildirmek G/Ç yazılımının görevidir.
- Biriktirme (spooling), aynı anda yalnızca bir kullanıcıya hizmet verebilen bir aygıtı paylaşılabilir hâle getirir.
Cevabı göster
- 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.
- 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.
- 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
volatileiş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?
- Aygıt kesme üretmediği için CPU durum yazmacını okuyamaz
- Durum yazmacı yalnızca kapı eşlemeli G/Ç ile okunabilir
- DMA denetleyicisi veri yolunu kalıcı olarak almıştır
- Durum yazmacının bulunduğu sayfa önbelleklenebilir işaretli (ya da işaretçi
volatiledeğ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?
- Saniyede birkaç tuşa basılan bir klavye
- İ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ı)
- Aylarca bir kez sinyal gönderen bir alarm sensörü
- 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?
- DMA olmayan sistemlerde CPU’nun boş çevrimlerde aygıt yazmaçlarını okumasıdır
- 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
- Çizelgeleyicinin G/Ç bekleyen süreçlerin zaman dilimini başka süreçlere vermesidir
- 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.
- DMA her aktarım boyutunda kesme güdümlü G/Ç’den daha kazançlıdır.
- DMA aktarımı sürerken CPU başka bir süreci çalıştırabilir.
- DMA kullanmak sistemi kötü niyetli aygıtlara karşı daha güvenli kılar.
Cevabı göster
- 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.
- Doğru. CPU yalnızca kurulum ve tamamlanma kesmesinde devrededir; aradaki sürede veri yolu çekişmesi dışında serbesttir.
- 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?
- İşleyici çalışır → CPU durumu kaydedilir → aygıt kesme sinyali gönderir → süreç sürdürülür
- Çizelgeleyici çalışır → aygıt kesme gönderir → CPU durumu kaydeder
- Aygıt veriyi kullanıcı belleğine yazar → süreç kendisi uyanır → kesme sonradan işlenir
- 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?
- 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)
- Engellemeyen G/Ç; veri o an ne kadar varsa döner, yoksa hemen hata döner
- Engelleyen G/Ç; bedeli yoktur
- 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?
- Veri kesinlikle diske yazılmıştır
- Dosya açık değilse çekirdek önce dosyayı açar, sonra yazar
- 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
- Ç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?
- İ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)
- USB belleğin yalnızca okunur kipe geçmesi gerekir
- Aygıt sürücüsü çekilen aygıtı hemen silmek zorundadır
- 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.
- Tek bir eşlik (parity) biti, bir bitlik hatayı hem algılar hem düzeltir.
- CRC hatayı algılar; ağ protokollerinde bozuk çerçeve atılır ve yeniden iletim ile kurtarılır.
- 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
- 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.
- 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.
- 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?
- Sık birlikte okunan blokları diskte yan yana yerleştirmek
- Diskin sürekli aktarım hızını 150 MB/s’den 200 MB/s’ye çıkarmak
- Bekleyen istekleri kol hareketini azaltacak biçimde sıralamak (kol çizelgeleme)
- 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
FCFS: kafa 84’de başlıyor. Toplam: 0
FCFS: 84 → 184 (istek): |184 − 84| = 100. Toplam: 100
FCFS: 184 → 142 (istek): |142 − 184| = 42. Toplam: 142
FCFS: 142 → 170 (istek): |170 − 142| = 28. Toplam: 170
FCFS: 170 → 8 (istek): |8 − 170| = 162. Toplam: 332
FCFS: 8 → 60 (istek): |60 − 8| = 52. Toplam: 384
FCFS: 60 → 155 (istek): |155 − 60| = 95. Toplam: 479
FCFS: 155 → 116 (istek): |116 − 155| = 39. Toplam: 518
FCFS: 116 → 37 (istek): |37 − 116| = 79. Toplam: 597
SSTF: kafa 84’de başlıyor. Toplam: 0
SSTF: 84 → 60 (istek): |60 − 84| = 24. Toplam: 24
SSTF: 60 → 37 (istek): |37 − 60| = 23. Toplam: 47
SSTF: 37 → 8 (istek): |8 − 37| = 29. Toplam: 76
SSTF: 8 → 116 (istek): |116 − 8| = 108. Toplam: 184
SSTF: 116 → 142 (istek): |142 − 116| = 26. Toplam: 210
SSTF: 142 → 155 (istek): |155 − 142| = 13. Toplam: 223
SSTF: 155 → 170 (istek): |170 − 155| = 15. Toplam: 238
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
SCAN: kafa 84’de başlıyor. Toplam: 0
SCAN: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32
SCAN: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58
SCAN: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71
SCAN: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86
SCAN: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100
SCAN: 184 → 199 (uç noktaya gidiş (istek yok)): |199 − 184| = 15. Toplam: 115
SCAN: 199 → 60 (istek): |60 − 199| = 139. Toplam: 254
SCAN: 60 → 37 (istek): |37 − 60| = 23. Toplam: 277
SCAN: 37 → 8 (istek): |8 − 37| = 29. Toplam: 306
C-SCAN: kafa 84’de başlıyor. Toplam: 0
C-SCAN: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32
C-SCAN: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58
C-SCAN: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71
C-SCAN: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86
C-SCAN: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100
C-SCAN: 184 → 199 (uç noktaya gidiş (istek yok)): |199 − 184| = 15. Toplam: 115
C-SCAN: 199 → 0 (hizmetsiz dönüş): |0 − 199| = 199. Toplam: 314
C-SCAN: 0 → 8 (istek): |8 − 0| = 8. Toplam: 322
C-SCAN: 8 → 37 (istek): |37 − 8| = 29. Toplam: 351
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
LOOK: kafa 84’de başlıyor. Toplam: 0
LOOK: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32
LOOK: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58
LOOK: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71
LOOK: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86
LOOK: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100
LOOK: 184 → 60 (istek): |60 − 184| = 124. Toplam: 224
LOOK: 60 → 37 (istek): |37 − 60| = 23. Toplam: 247
LOOK: 37 → 8 (istek): |8 − 37| = 29. Toplam: 276
C-LOOK: kafa 84’de başlıyor. Toplam: 0
C-LOOK: 84 → 116 (istek): |116 − 84| = 32. Toplam: 32
C-LOOK: 116 → 142 (istek): |142 − 116| = 26. Toplam: 58
C-LOOK: 142 → 155 (istek): |155 − 142| = 13. Toplam: 71
C-LOOK: 155 → 170 (istek): |170 − 155| = 15. Toplam: 86
C-LOOK: 170 → 184 (istek): |184 − 170| = 14. Toplam: 100
C-LOOK: 184 → 8 (geri dönüş; ardından bu isteğe hizmet): |8 − 184| = 176. Toplam: 276
C-LOOK: 8 → 37 (istek): |37 − 8| = 29. Toplam: 305
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?
- SSTF; açlık (starvation): uzaktaki istek sürekli daha yakın isteklerin gerisinde kalır; SCAN/C-SCAN ya da LOOK ailesi önler
- FCFS; konvoy etkisi; SSTF önler
- C-SCAN; kilitlenme; FCFS önler
- 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?
- SSD’ler yalnızca sıralı yazmayı destekler
- NVMe istekleri her zaman FCFS ile işlemek zorundadır
- 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
- 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üzey | Nasıl | Kapasite (n disk) | Dayanıklılık |
|---|---|---|---|
| 0 | Şeritleme, artıklık yok | n | 0 (bir disk = tüm veri) |
| 1 | Aynalama | n / 2 | Her çiftte 1 |
| 5 | Şeritleme + dağıtılmış eşlik | n − 1 | 1 |
| 6 | Şeritleme + iki eşlik (P, Q) | n − 2 | 2 |
| 10 | Aynalı çiftlerin şeritlenmesi | n / 2 | En 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üzey | Kapasite | Garanti edilen dayanıklılık |
|---|---|---|
| RAID 0 | 6 × 4 = 24 TB | 0 disk |
| RAID 10 (3 aynalı çift) | 6 / 2 × 4 = 12 TB | 1 disk (farklı çiftlerden 3 diske kadar şanslı durum) |
| RAID 5 | (6 − 1) × 4 = 20 TB | 1 disk |
| RAID 6 | (6 − 2) × 4 = 16 TB | 2 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?
- Disk arızasına iki kat dayanıklılık sağlamak
- Okuma için eşliğin her zaman hesaplanmasını sağlamak
- Kullanılabilir kapasiteyi n − 1’den n’ye çıkarmak
- 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.
- NAND flash’ta bir sayfa yerinde yeniden yazılabilir; bu yüzden SSD’ler HDD gibi blokları yerinde günceller.
- TRIM komutu, dosya sisteminin artık kullanmadığı blokları SSD’ye bildirerek çöp toplamanın gereksiz veri taşımasını önler.
- Aşınma dengeleme, yazmaları tüm bloklara yayarak bazı blokların erken ömrünü doldurmasını engeller.
Cevabı göster
- 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.
- 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.
- 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üşünce | Doğ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. |