Bölüm 1: Giriş

İşletim Sistemleri · Çalışma Soruları
İS nedir?Çekirdek ve kullanıcı moduİS’nin rolleriÇoklu programlamaİşlemci ve bellek hiyerarşisiDiskYoklama, kesme, DMAÖnyükleme ve İS çeşitleri
Sercan KÜLCÜ

Ç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ı syscall komutuyla 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
KaynakBiçimNasıl?
CPUzamandaSüreçler sırayla zaman dilimi alır (zaman paylaşımı).
Ana bellekalandaHer 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.
Diskalanda (+ 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?

CPUG/Ç0123456789

Başlangıçta iki iş de hazır; CPU önce A’ya verilir.

CPUG/ÇA0123456789

A iki birim CPU kullanır; B hazır olarak bekler.

CPUG/ÇABA0123456789

A G/Ç’ye geçince CPU boşta kalmaz, hemen B’ye verilir. A’nın G/Ç’si B’nin hesabıyla örtüşür.

CPUG/ÇABAAB0123456789

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.

CPUG/ÇABAABB0123456789

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).

ÇokluTek prog.ABABAboşABboşB024689101214

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?

CPUPC100R10R20IR—Bellek[200]5[204]3[208]0

PC = 100: ilk komut 100. adreste. Her komut 4 bayt.

CPUPC104R15R20IRLOADBellek[200]5[204]3[208]0

Getir: IR ← bellek[100], PC 104 olur. Yürüt: bellek[200] okunur, R1 = 5 (veri erişimi).

CPUPC108R15R23IRLOADBellek[200]5[204]3[208]0

LOAD: R2 = bellek[204] = 3. Şimdiye dek 2 komut getirildi, 2 veri okundu.

CPUPC112R18R23IRADDBellek[200]5[204]3[208]0

ADD: R1 = R1 + R2 = 8. Yalnız yazmaç işlemi; veri için belleğe gidilmez.

CPUPC116R18R22IRSUBBellek[200]5[204]3[208]0

SUB: R2 = 2.

CPUPC108R18R22IRBNZBellek[200]5[204]3[208]0

BNZ: R2 = 2 ≠ 0 → PC = 108 (döngü başı).

CPUPC112R110R22IRADDBellek[200]5[204]3[208]0

ADD: R1 = R1 + R2 = 10. Yalnız yazmaç işlemi; veri için belleğe gidilmez.

CPUPC116R110R21IRSUBBellek[200]5[204]3[208]0

SUB: R2 = 1.

CPUPC108R110R21IRBNZBellek[200]5[204]3[208]0

BNZ: R2 = 1 ≠ 0 → PC = 108 (döngü başı).

CPUPC112R111R21IRADDBellek[200]5[204]3[208]0

ADD: R1 = R1 + R2 = 11. Yalnız yazmaç işlemi; veri için belleğe gidilmez.

CPUPC116R111R20IRSUBBellek[200]5[204]3[208]0

SUB: R2 = 0.

CPUPC120R111R20IRBNZBellek[200]5[204]3[208]0

BNZ: R2 = 0 → dallanma yok, PC = 120.

CPUPC124R111R20IRSTOREBellek[200]5[204]3[208]11

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.

nboru hattısızboru hatlıhızlanma
1004004 + 99 = 103400 / 103 = 3,88
10404 + 9 = 1340 / 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?

küme 0—küme 1—küme 2—küme 3—

64 B satır, 4 küme, doğrudan eşleme: blok b yalnızca b mod 4 kümesine gidebilir.

adres 0 → blok 0 → küme 0küme 0blok 0ıskaküme 1—küme 2—küme 3—

Küme 0 boş → ıska, blok 0 yüklenir.

adres 40 → blok 0 → küme 0küme 0blok 0isabetküme 1—küme 2—küme 3—

Küme 0’de zaten blok 0 var → isabet. 40, 0 ile aynı 64 baytlık satırda: uzamsal yerellik.

adres 72 → blok 1 → küme 1küme 0blok 0küme 1blok 1ıskaküme 2—küme 3—

Küme 1 boş → ıska, blok 1 yüklenir.

adres 256 → blok 4 → küme 0küme 0blok 4ıskaküme 1blok 1küme 2—küme 3—

Küme 0 blok 0 tutuyor → ıska; blok 4 onu dışarı atar (çakışma ıskası).

adres 8 → blok 0 → küme 0küme 0blok 0ıskaküme 1blok 1küme 2—küme 3—

Küme 0 blok 4 tutuyor → ıska; blok 0 onu dışarı atar (çakışma ıskası).

adres 100 → blok 1 → küme 1küme 0blok 0küme 1blok 1isabetküme 2—küme 3—

Küme 1’de zaten blok 1 var → isabet. 100, 72 ile aynı satırda (64–127).

adres 130 → blok 2 → küme 2küme 0blok 0küme 1blok 1küme 2blok 2ıskaküme 3—

Küme 2 boş → ıska, blok 2 yüklenir.

adres 264 → blok 4 → küme 0küme 0blok 4ıskaküme 1blok 1küme 2blok 2küme 3—

Küme 0 blok 0 tutuyor → ıska; blok 4 onu dışarı atar (çakışma ıskası).

küme 0blok 4küme 1blok 1küme 2blok 2küme 3—

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_oku 4 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.

Son

Bölüm 1: Giriş: Çalışma Soruları
Konu anlatımı: Giriş sunumu · Terim sözlüğü
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.