İçeriğe atla
md ~/rehber/isletim-sistemleri
Rehbere dön

3. adım

İşletim Sistemleri

Birçok programın tek bir donanımı nasıl paylaştığı: süreçler, iş parçacıkları, bellek ve dosya sistemi. Sunucu, mobil ya da gömülü fark etmez, hepsinin altında bu var.

Önce bunları bilBilgisayar MimarisiVeri Yapıları

  • Süreçler ve iş parçacıkları
  • CPU zamanlaması
  • Senkronizasyon
  • Kilitlenme
  • Sanal bellek
  • Dosya sistemleri
  • Sistem çağrıları

Neden önemli

Aynı anda tarayıcı, müzik ve derleyici çalışıyor; her biri bilgisayarın tamamı kendisininmiş gibi davranıyor. Bunu sağlayan işletim sistemi. Çok iş parçacıklı bir sunucudaki yarış durumu, telefonda donan bir uygulama, dolan bir disk: hepsinin açıklaması bu derste.

Bilmen gerekenler

  • Süreç ve iş parçacığı farkı; bağlam değiştirme (context switch).
  • CPU zamanlama algoritmaları: FIFO, round robin, öncelikli.
  • Yarış durumu, kilit (mutex), semafor, koşul değişkenleri.
  • Kilitlenme (deadlock): koşulları ve önleme yolları.
  • Sanal bellek, sayfalama ve sayfa hatası.
  • Dosya sistemleri: dosya, dizin, i-node, disk üzerinde yerleşim.
  • Sistem çağrıları: fork, exec, open, read.

Alıştırma ve proje

  • Linux kullan (WSL yeterli): ps, top, kill ile süreçleri izle.
  • C ile fork/exec kullanan küçük bir kabuk (shell) yaz.
  • İki iş parçacığının aynı sayacı artırdığı bir program yazıp yarış durumunu kendin üret, sonra kilitle düzelt.

Sık yapılan hatalar

  • Konuları sadece slayttan çalışmak; OSTEP'in kısa bölümleri slaytlardan çok daha anlaşılır.
  • Senkronizasyon kodunu "bende çalıştı" diye doğru saymak; yarış durumları bazen binde bir çıkar.

Bu dersi en çok kullanan meslekler