Bölüm 1: Giriş
Çoktan Seçmeli · Giriş
Soru 1: Hangisi İS’nin İşi Değil?
Bir öğrenci “bilgisayarda olan her şeyi işletim sistemi yapar” diyor. Aşağıdaki görevlerden hangisi işletim sisteminin değil, ayrı bir uygulama programının işidir?
C: Derleyici (ör. gcc) kullanıcı modunda çalışan sıradan bir programdır; İS ona yalnızca CPU, bellek ve dosya hizmeti verir. A süreç yönetimi, B dosya sistemi, D bellek koruması: üçü de çekirdeğin işidir.
Çoktan Seçmeli · Konum ve Modlar
Soru 2: Kullanıcı Modunda Ayrıcalıklı Komut
Kullanıcı modunda çalışan bir program, kesmeleri kapatan ayrıcalıklı bir komutu çalıştırmaya çalışıyor. Ne olur?
B: İşlemci mod bitini denetler; kullanıcı modunda ayrıcalıklı komut bir istisna üretir ve denetim çekirdeğin işleyicisine geçer. Süreç tipik olarak bir sinyalle sonlandırılır, sistemin geri kalanı etkilenmez. D olsaydı koruma anlamsız kalırdı: moda yalnızca tuzak, kesme ve istisna kapılarından geçilir.
Klasik Soru · Konum ve Modlar
Soru 3: Hangisi Çekirdeğe Geçer?
Aşağıdaki olaylardan hangileri işlemcinin kullanıcı modundan çekirdek moduna geçmesine yol açar? Her biri için kısa bir gerekçe yazın.
(a) x = y * 2; (b) read(fd, buf, 100); (c) bir komutun sıfıra bölmesi
(d) strlen(s); (e) donanım zamanlayıcısının kesmesi
Cevabı göster
- (b) geçer: sistem çağrısıdır; libc sarmalayıcısı
syscallkomutuyla bilerek tuzak üretir. - (c) geçer: komutun kendisinden doğan istisnadır; çekirdeğin işleyicisi çalışır (genelde süreç sinyalle sonlanır).
- (e) geçer: dışarıdan gelen donanım kesmesidir; çekirdek denetimi geri alır, çizelgeleyici çalışabilir.
- (a) ve (d) geçmez: yazmaç/ALU işlemi ve bellekteki dizgeyi sayan kütüphane kodu; tamamen kullanıcı modunda kalır.
Kullanıcıdan çekirdeğe yalnızca üç kapı vardır: sistem çağrısı, kesme, istisna.
Çoktan Seçmeli · İS’nin Rolleri
Soru 4: Diskin Ayrıntısını Kim Gizler?
Bir programcı diskin kaç plakası, hangi denetleyicisi olduğunu bilmeden write(fd, buf, n) ile dosyaya yazabiliyor. Bu kolaylık İS’nin hangi rolünün sonucudur?
A: Dosya, blok ve sektör ayrıntısının üstüne kurulmuş bir soyutlamadır; İS burada “çirkin donanımı güzel soyutlamaya” çeviren genişletilmiş makinedir. Kaynak yöneticisi rolü ise CPU, bellek ve aygıtları kimin ne kadar kullanacağına karar verir.
Klasik Soru · İS’nin Rolleri
Soru 5: Zamanda mı, Alanda mı?
Kaynak yöneticisi olarak İS kaynakları iki biçimde paylaştırır: zamanda (sırayla) ya da alanda (parçalara bölerek). CPU, ana bellek, ortak yazıcı ve disk hangi biçimde paylaştırılır? Her biri için bir cümle yazın.
Cevabı göster
| Kaynak | Biçim | Nasıl? |
|---|---|---|
| CPU | zamanda | Süreçler sırayla zaman dilimi alır (zaman paylaşımı). |
| Ana bellek | alanda | Her sürece ayrı bir bölge (çerçeveler) verilir; hepsi aynı anda bellektedir. |
| Yazıcı | zamanda | İşler biriktirme kuyruğundan bütün olarak sırayla basılır. |
| Disk | alanda (+ zamanda) | Dosyalara ayrı bloklar ayrılır; okuma/yazma istekleri ise sırayla çizelgelenir. |
Bölünemeyen kaynaklar (CPU, yazıcı) zamanda; bölünebilenler (bellek, disk alanı) alanda paylaştırılır.
Adım Adım Çalıştırma · Tarihçe
Soru 6: Çoklu Programlama Zaman Çizelgesi
İki iş tek CPU’lu, çoklu programlamalı bir sistemde çalışıyor (birim zaman). İki iş ne zaman biter, CPU kullanımı nedir? Aynı işler tek programlı sistemde art arda çalışsaydı ne olurdu?
Başlangıçta iki iş de hazır; CPU önce A’ya verilir.
A iki birim CPU kullanır; B hazır olarak bekler.
A G/Ç’ye geçince CPU boşta kalmaz, hemen B’ye verilir. A’nın G/Ç’si B’nin hesabıyla örtüşür.
t = 5’te A’nın G/Ç’si biter, B de G/Ç’ye geçer: CPU A’ya döner. A t = 7’de biter.
B’nin G/Ç’si t = 7’de bitmişti; B son iki birimini çalışır. İki iş 9 birimde bitti; CPU hiç boş kalmadı (%100).
Tek programlı sistemde CPU işin kendi G/Ç’sini bekler: aynı işler 14 birim sürer, CPU 5 birim boştur.
İş A: CPU 2 → G/Ç 3 → CPU 2 İş B: CPU 3 → G/Ç 2 → CPU 2 CPU boşalınca hazır olan ilk iş seçilir; başta önce A. G/Ç süren iş CPU istemez; işlerin G/Ç aygıtları ayrıdır.
Çoktan Seçmeli · Tarihçe
Soru 7: Zaman Paylaşımının Farkı
Zaman paylaşımını (time sharing) çoklu programlamadan ayıran temel özellik hangisidir?
D: Zaman paylaşımında süreç G/Ç yapmasa bile dilimi dolunca CPU elinden alınır; amaç çok kullanıcıya kısa tepki süresidir. A ve B çoklu programlamanın kendisidir (geçiş, iş beklemeye girince olur); C ise toplu iş sistemlerine aittir.
Adım Adım Çalıştırma · Donanım
Soru 8: Getir–Çöz–Yürüt Döngüsü
Bellekte [200] = 5, [204] = 3; PC = 100. BNZ R2, 108: R2 ≠ 0 ise 108’e dallan. Program bitince bellek[208] kaçtır? Kaç komut getirilir, toplam kaç bellek erişimi yapılır?
PC = 100: ilk komut 100. adreste. Her komut 4 bayt.
Getir: IR ← bellek[100], PC 104 olur. Yürüt: bellek[200] okunur, R1 = 5 (veri erişimi).
LOAD: R2 = bellek[204] = 3. Şimdiye dek 2 komut getirildi, 2 veri okundu.
ADD: R1 = R1 + R2 = 8. Yalnız yazmaç işlemi; veri için belleğe gidilmez.
SUB: R2 = 2.
BNZ: R2 = 2 ≠ 0 → PC = 108 (döngü başı).
ADD: R1 = R1 + R2 = 10. Yalnız yazmaç işlemi; veri için belleğe gidilmez.
SUB: R2 = 1.
BNZ: R2 = 1 ≠ 0 → PC = 108 (döngü başı).
ADD: R1 = R1 + R2 = 11. Yalnız yazmaç işlemi; veri için belleğe gidilmez.
SUB: R2 = 0.
BNZ: R2 = 0 → dallanma yok, PC = 120.
STORE: bellek[208] = R1 = 11 (veri yazma). 12 komut getirildi; 3 veri erişimi (2 LOAD + 1 STORE) → toplam 15 bellek erişimi.
100: LOAD R1, [200] 104: LOAD R2, [204] 108: ADD R1, R1, R2 112: SUB R2, R2, #1 116: BNZ R2, 108 120: STORE R1, [208]
Hesaplama · Donanım
Soru 9: Boru Hattı Kazancı
Dört aşamalı (getir, çöz, yürüt, yaz) bir işlemcide her aşama 1 tur sürüyor. Dallanma ve bağımlılık yok sayıldığında 100 komut boru hattısız ve boru hatlı kaç turda biter? Hızlanma nedir? 10 komut için aynı hesabı yapın; sonuç neyi gösterir?
Cevabı göster
Boru hattısız: her komut 4 tur → n · k. Boru hatlı: ilk komut k turda biter, sonra her turda bir komut tamamlanır → k + n − 1.
| n | boru hattısız | boru hatlı | hızlanma |
|---|---|---|---|
| 100 | 400 | 4 + 99 = 103 | 400 / 103 = 3,88 |
| 10 | 40 | 4 + 9 = 13 | 40 / 13 = 3,08 |
Komut sayısı arttıkça hızlanma aşama sayısına (4) yaklaşır; doldurma süresi (k − 1 tur) kısa dizilerde kazancı azaltır. Tek bir komutun süresi kısalmaz, birim zamanda biten komut sayısı artar.
Hesaplama · Donanım
Soru 10: İki Düzeyli Önbellek
L1 önbellek 1 ns’de yanıt veriyor ve isabet oranı %90. L1 ıskasında L2’ye bakılıyor: L2 10 ns, L2’ye gelen isteklerin %80’i isabet. L2 ıskasında DRAM’e gidiliyor (100 ns). Düzeylere sırayla bakıldığına göre etkin erişim süresi nedir? L2 olmasaydı ne olurdu?
Cevabı göster
Her erişim L1’e uğrar; %10’u L2’ye, onların %20’si DRAM’e iner:
EAT = 1 + 0,10 × (10 + 0,20 × 100) = 1 + 0,10 × 30 = 4 ns.
L2 olmasaydı: 1 + 0,10 × 100 = 11 ns. Önbelleksiz her erişim 100 ns sürerdi; iki düzey ortalamayı 25 kat düşürür.
Ortalamaya ıskalar hâkimdir: L1 ıska oranını %10’dan %5’e indirmek EAT’i 1 + 0,05 × 30 = 2,5 ns’ye düşürür.
Adım Adım Çalıştırma · Donanım
Soru 11: Doğrudan Eşlemeli Önbellek
Dersteki önbellek kodu bu adres dizisiyle çalıştırılıyor (64 B satır, 4 küme, başta boş). Hangi erişimler isabet olur? Sonda isabet ve iska kaçtır?
64 B satır, 4 küme, doğrudan eşleme: blok b yalnızca b mod 4 kümesine gidebilir.
Küme 0 boş → ıska, blok 0 yüklenir.
Küme 0’de zaten blok 0 var → isabet. 40, 0 ile aynı 64 baytlık satırda: uzamsal yerellik.
Küme 1 boş → ıska, blok 1 yüklenir.
Küme 0 blok 0 tutuyor → ıska; blok 4 onu dışarı atar (çakışma ıskası).
Küme 0 blok 4 tutuyor → ıska; blok 0 onu dışarı atar (çakışma ıskası).
Küme 1’de zaten blok 1 var → isabet. 100, 72 ile aynı satırda (64–127).
Küme 2 boş → ıska, blok 2 yüklenir.
Küme 0 blok 0 tutuyor → ıska; blok 4 onu dışarı atar (çakışma ıskası).
Sonuç: 2 isabet, 6 ıska (%25). 0, 256 ve 264 aynı kümeye düştüğü için birbirini kovdu; 2 yollu küme ilişkili önbellek bu ıskaların bir kısmını önlerdi.
int adres[8] = {0, 40, 72, 256, 8, 100, 130, 264}; int etiket[4] = {-1, -1, -1, -1}; int isabet = 0, iska = 0; for (int i = 0; i < 8; i++) { int blok = adres[i] / 64; int kume = blok % 4; if (etiket[kume] == blok) isabet++; else { etiket[kume] = blok; iska++; } }
Çoktan Seçmeli · Donanım
Soru 12: Disk Bloğu Okuma Süresi
10 000 dev/dk dönen bir sabit diskte ortalama arama süresi 5 ms, aktarım hızı 100 MB/s (1 MB = 10⁶ B). Rastgele bir 4 KiB bloğu okumanın ortalama süresi yaklaşık kaçtır?
B: Bir tur 60 / 10 000 s = 6 ms; ortalama dönme gecikmesi yarım tur = 3 ms. Aktarım 4096 B / 10⁸ B/s ≈ 0,04 ms. Toplam 5 + 3 + 0,04 = 8,04 ms. C tam turu, A dönmeyi hiç saymaz; D aktarım hızını 10 MB/s almıştır. Süreyi mekanik hareket belirler, aktarım ihmal edilebilir.
Kod Çıktısı · G/Ç
Soru 13: Yoklama Döngüsü
durum_oku() bir aygıtın durum yazmacını okuyor gibi davranıyor: 2. bit “hazır”, 1. bit “hata” bitidir. Program ne yazdırır? Bu süre boyunca CPU ne yapar?
#define HAZIR 0x4 #define HATA 0x2 int durum[] = {0x1, 0x3, 0x2, 0x6, 0x4}; int k = 0; int durum_oku(void) { return durum[k++]; } int main(void) { int bekleme = 0, d; while (((d = durum_oku()) & HAZIR) == 0) bekleme++; printf("bekleme=%d k=%d", bekleme, k); if (d & HATA) printf(" hata\n"); else printf(" tamam\n"); return 0; }
Cevabı göster
Çıktı: bekleme=3 k=4 hata
- 0x1 (001), 0x3 (011), 0x2 (010): hazır biti (0x4) 0 → üç boş tur, bekleme = 3.
- 0x6 (110): hazır biti 1 → döngü biter; d = 0x6,
durum_oku4 kez çağrıldı (k = 4). Son 0x4 hiç okunmaz. - 0x6 & 0x2 = 2 ≠ 0 → “hata”.
CPU bu sürede yalnızca yazmacı yeniden okur (meşgul bekleme); kesme ya da DMA ile bu turlar başka işe harcanabilirdi.
Çoktan Seçmeli · G/Ç
Soru 14: Hangisi Tuzaktır?
Aşağıdaki olaylardan hangisi dış bir aygıttan gelen kesme değil, yürütülen komutun kendisinden doğan bir tuzaktır (istisna)?
B: Tuzak eş zamanlıdır: belirli bir komutun sonucudur ve aynı girdiyle her seferinde aynı noktada oluşur (sıfıra bölme, geçersiz bellek erişimi, sayfa hatası, sistem çağrısı). Diğer üçü komut akışından bağımsız, eş zamansız donanım kesmeleridir.
Hesaplama · G/Ç
Soru 15: Kesme Güdümlü G/Ç ile DMA
Bir aygıttan 64 KiB veri alınıyor. Kesme güdümlü G/Ç’de her 8 bayt için bir kesme oluşuyor ve her kesme CPU’ya 1,5 µs’ye mal oluyor. DMA ile CPU denetleyiciyi 4 µs’de programlıyor, aktarım sonunda tek bir kesme (1,5 µs) geliyor. İki yöntemde CPU’nun harcadığı süre nedir?
Cevabı göster
- 64 KiB = 64 × 1024 = 65 536 B (KiB ikili önektir).
- Kesme güdümlü: 65 536 / 8 = 8192 kesme → 8192 × 1,5 µs = 12 288 µs ≈ 12,3 ms.
- DMA: 4 + 1,5 = 5,5 µs.
CPU yükü yaklaşık 2200 kat azalır; aktarım sürerken CPU başka süreçleri çalıştırır. Klavye gibi yavaş aygıtlarda fark önemsizdir; hızlı blok aygıtlarında DMA şarttır.
Çoktan Seçmeli · G/Ç
Soru 16: DMA’dan Ne Beklenmez?
Bir disk denetleyicisine DMA desteği eklendi. Aşağıdakilerden hangisi DMA’nın sağladığı bir yarar değildir?
D: DMA bir başarım mekanizmasıdır, CPU’nun kopyalama yükünü alır. Güvenlik getirmez; tersine belleğe doğrudan yazan bir aygıt yanlış programlanırsa her yeri bozabilir. Aygıt erişimini sınırlamak için ayrıca IOMMU gerekir.
Klasik Soru · Önyükleme
Soru 17: Güç Düğmesinden Giriş Ekranına
UEFI kullanan bir Linux bilgisayarda aşağıdaki adımları doğru sıraya koyun.
(a) Önyükleyici çekirdeği ve initramfs’i belleğe yükleyip çekirdeğe atlar.
(b) CPU sıfırlanır, flash’taki donanım yazılımından komut getirmeye başlar.
(c) systemd (PID 1) hizmetleri ve giriş ekranını başlatır.
(d) UEFI POST yapar: belleği dener, PCIe/USB aygıtlarını bulur.
(e) NVRAM’deki sıraya göre EFI sistem bölümünden önyükleyici yüklenir.
(f) Çekirdek bellek yönetimini ve sürücüleri başlatır, kök dosya sistemini bağlar.
Cevabı göster
b → d → e → a → f → c
- İlk çalışan kod donanım yazılımıdır; İS henüz bellekte yoktur.
- Secure Boot açıksa (e) adımında önyükleyicinin imzası doğrulanır.
- Çekirdek ilk kullanıcı sürecini (PID 1) başlatır; diğer bütün süreçler onun soyundandır.
Çoktan Seçmeli · İS Çeşitleri
Soru 18: Katı Gerçek Zamanlı Sistem
Aşağıdaki sistemlerden hangisi katı (hard) gerçek zamanlı sistemdir?
C: Hava yastığının son tarihi kaçırması felakettir; RTOS en kötü durum gecikmesini sınırlar. Video ve oyun ara sıra son tarihi kaçırmaya dayanıklı yumuşak (soft) gerçek zamanlıdır; web sunucusu ise ortalama başarımı ve adaleti öne çıkaran genel amaçlı bir sistemdir. Gerçek zamanlı, “çok hızlı” değil “öngörülebilir” demektir.
Çoktan Seçmeli · Temel Kavramlar
Soru 19: Disk Neden Küçük Görünür?
“2 TB” etiketli yeni bir disk, boyutları ikili önekle (GiB) gösteren bir işletim sisteminde yaklaşık kaç GiB görünür?
A: Disk ondalık ölçülür: 2 TB = 2 × 10¹² B. 1 GiB = 2³⁰ = 1 073 741 824 B → 2 × 10¹² / 2³⁰ ≈ 1862,6 GiB (≈ 1,82 TiB). D yalnızca bir kez 1024’e bölmenin, C ise “1 TB = 1024 GB” varsaymanın sonucudur. Bellek genelde ikili, disk ve ağ ondalık ölçülür.