⚙️ İşletim Sistemi (İS): Bilgisayar donanımı ile kullanıcı arasında arayüz görevi gören, sistem kaynaklarını yöneten ve uygulama yazılımlarının çalışmasını sağlayan temel yazılımdır.
🔑 Çekirdek (Kernel): İşletim sisteminin en temel parçasıdır. Donanım ile doğrudan etkileşim kurar, kaynakları yönetir ve sistem çağrılarını işler.
💽 Sistem Çağrıları (System Calls): Kullanıcı uygulamalarının çekirdekten hizmet istemek için kullandığı arayüzlerdir. Dosya okuma, yazma, bellek yönetimi gibi işlemler sistem çağrıları ile gerçekleştirilir.
🕰️ Süreç (Process): Çalışan bir programın örneğidir. Her sürecin kendine ait bellek alanı, program sayacı ve diğer kaynakları vardır.
🧵 İş Parçacığı (Thread): Bir süreç içinde çalışan bağımsız yürütme birimidir. Aynı sürece ait iş parçacıkları aynı bellek alanını paylaşır.
💾 Bellek Yönetimi: İşletim sisteminin bellek kaynaklarını (RAM) etkin bir şekilde kullanmasını sağlayan mekanizmalardır. Sanal bellek, sayfalama, bölütleme gibi teknikler kullanılır.
📁 Dosya Sistemi: Dosyaların ve dizinlerin düzenlenmesini, depolanmasını ve erişilmesini sağlayan yapıdır. FAT32, NTFS, ext4 gibi farklı dosya sistemleri mevcuttur.
🔒 Giriş/Çıkış (G/Ç) Yönetimi: İşletim sisteminin donanım aygıtları (disk, klavye, ekran vb.) ile iletişimini yönetir. Sürücüler (drivers) aracılığıyla aygıtlarla etkileşim kurulur.
💾 Bellek Yönetimi Teknikleri
📍 Sanal Bellek (Virtual Memory): Fiziksel RAM'in yetersiz olduğu durumlarda disk alanının RAM gibi kullanılmasıdır. Sayfalama ve bölütleme teknikleri ile gerçekleştirilir.
📃 Sayfalama (Paging): Belleğin sabit boyutlu sayfalara bölünmesi ve sanal adreslerin fiziksel adreslere dönüştürülmesi işlemidir.
✂️ Bölütleme (Segmentation): Belleğin mantıksal bölümlere (kod, veri, yığın vb.) ayrılmasıdır. Her bölüm farklı boyutlarda olabilir.
🔄 Takas (Swapping): Kullanılmayan bellek sayfalarının diske yazılması ve gerektiğinde geri yüklenmesidir.
🗑️ Bellek Ayırma Algoritmaları: Belleğin süreçlere nasıl tahsis edileceğini belirleyen algoritmalardır. İlk uygun (first-fit), en iyi uygun (best-fit), en kötü uygun (worst-fit) gibi algoritmalar bulunur.
🔀 Süreç Yönetimi ve Zamanlama Algoritmaları
🚦 Süreç Durumları: Süreçlerin yaşam döngüsü boyunca geçirdiği farklı durumlardır (yeni, hazır, çalışan, bloke, sonlandırılmış).
🗓️ Zamanlama Algoritmaları: İşletim sisteminin hangi sürecin ne kadar süreyle çalışacağını belirleyen algoritmalardır.
⏳ FCFS (First-Come, First-Served): İlk gelen ilk hizmet alır. Basit bir algoritmadır ancak uzun süreçler kısa süreçleri bekletebilir.
⏱️ SJF (Shortest Job First): En kısa sürece sahip süreç öncelikli olarak çalışır. Ortalama bekleme süresini minimize eder ancak süreçlerin çalışma sürelerinin önceden bilinmesi gerekir.
🔄 Round Robin: Her sürece eşit zaman dilimleri (quantum) verilir. Süreçler sırayla çalışır. Adil bir algoritmadır ancak zaman dilimi çok kısa olursa bağlam değiştirme maliyeti artar.
⚖️ Öncelikli Zamanlama (Priority Scheduling): Süreçlere öncelik değerleri atanır ve en yüksek öncelikli süreç öncelikli olarak çalışır. Açlık (starvation) sorununa yol açabilir.
🔒 Kilitlenme (Deadlock)
🚫 Kilitlenme Koşulları: Kilitlenmenin oluşması için gerekli olan dört koşul: Karşılıklı dışlama, tut ve bekle, önleyici olmama, döngüsel bekleme.
🛡️ Kilitlenme Önleme: Kilitlenme koşullarından birini ortadan kaldırarak kilitlenmeyi engelleme yöntemidir.
🚨 Kilitlenme Kaçınma: Süreçlerin kaynak taleplerini analiz ederek güvenli duruma geçmeyi sağlayan yöntemdir. Banker algoritması bu yaklaşıma bir örnektir.
🔍 Kilitlenme Tespiti ve Kurtarma: Kilitlenmenin oluştuğunu tespit edip, kilitlenmeyi ortadan kaldırmaya yönelik yöntemlerdir. Süreçleri sonlandırma veya kaynakları geri alma gibi yöntemler kullanılır.
📁 Dosya Sistemi Kavramları
📂 Dosya ve Dizin: Dosyalar verileri saklayan birimlerdir, dizinler ise dosyaları ve diğer dizinleri organize etmek için kullanılan yapılardır.
📍 Dosya Atributları: Dosyanın adı, boyutu, oluşturulma tarihi, erişim izinleri gibi özellikleridir.
🚦 Dosya Erişim Yöntemleri: Sıralı erişim, doğrudan erişim, indeksli sıralı erişim gibi farklı yöntemler bulunur.
🔑 Dosya Sistemi Yapıları: FAT32, NTFS, ext4 gibi farklı dosya sistemleri farklı yapı ve özelliklere sahiptir.
🛡️ Disk Alanı Yönetimi: Disk alanının etkin bir şekilde kullanılmasını sağlayan yöntemlerdir. Bağlantılı liste, indeksli tahsis, bit eşlem gibi yöntemler kullanılır.