İçindekiler
- İşletim Sistemleri Ne Yapar?
- Bilgisayar Sistem Yapısı
- İşletim Sistemi Nedir?
- Bilgisayar-Sistem Organizasyonu
- Kesmeler
- G/Ç Yapısı
- Depolama Yapısı
- Doğrudan Belleğe Erişim
- İşletim Sistemi İşlemleri
- İşletim Sistemi Yapısı
- İşletim Sistemi Operasyonu
- Timer
- Süreç Yönetimi
- Bellek Yönetimi
- Dosya Sistemi Yönetimi
İşletim Sistemleri Ne Yapar?
Bilgisayar Sistem Yapısı
Bilgisayar sisteminin 4 temel yapısı vardır: Donanım, İşletim Sistemi, Uygulama Programları ve Kullanıcılardır.
- Donanım
- İşletim Sistemi
- Uygulama Programları
- Kullanıcılar: insanlar, makineler, diğer kullanıcılar
İşletim Sistemi Nedir?
İşletim sistemi, bir bilgisayar kullanıcısı ile bilgisayar donanımı arasında aracı görevi gören programdır. İşletim sisteminin temel amaçları:
- Bilgisayar donanımını etkin kullanmak
- Kullanıcı memnuniyeti sağlamak
- Programları çalıştırmak ve kullanıcı problemlerini çözmek
Kaynak kullanımı, doğrudan kullanıcıları ilgilendirmez. İşletim sistemleri, donanımı verimli bir şekilde kullanarak, kullanıcıların programlarını çalıştırmasına yardımcı olan kaynak yönetimi ve kontrol programlarıdır.
İşletim sisteminin bileşenleri şunlardır:
- Kernel: Bilgisayarlarda sürekli çalışan ve işletim sisteminin temel işlevlerini yürüten ana programdır.
- Kullanıcı Arayüzü (Sistem Programı): İşletim sistemini kullanmamızı sağlayan grafiksel veya komut satırı arayüzüdür.
- Uygulama Programları: İşletim sisteminden bağımsız çalışan tüm programlardır.
Bilgisayar-Sistem Organizasyonu
Bilgisayar başlatıldığında veya yeniden başlatıldığında, ilk olarak bootstrap programı çalışır. Bu program genellikle ROM (Read Only Memory) veya EPROM içinde saklanır ve firmware olarak bilinir. Bootstrap programı, sistemin tüm bileşenlerini yükler; CPU kayıtlarından cihaz kontrolüne ve hafıza içeriklerine kadar çeşitli görevleri yerine getirir.
Bootstrap programı, işletim sistemini nasıl çalıştıracağını bilmek zorundadır. Bu program, doğrudan kernel içindedir ve buradan hafızaya (RAM) yüklenir. Kernel dışında kalan diğer sistem programları, kernel’den bağımsız olarak hafızaya yüklenir.
NOT: Firmware, bir bilgisayarda işletim sisteminin üzerinde çalıştığı ROM tabanlı kod olarak tanımlanabilir.
Bilgisayar-Sistem İlişkileri: Bir veya daha fazla işlemci ve cihaz kontrolcüsü, ortak belleğe ortak yol (bus) aracılığıyla erişim sağlar. CPU ve cihazlar, bellek döngüleri için yarışırken eş zamanlı olarak yürütülür.
Bilgisayar-Sistem İşlemlerinde:
- I/O cihazları ve CPU eşzamanlı olarak çalışabilir.
- Her cihaz denetçisi, belirli bir cihaz türünden sorumludur ve bu tür cihazlarla ilgili işlemleri yönetir.
- Her cihaz denetçisi, verilerin geçici olarak tutulduğu yerel bir arabelleğe (buffer) sahiptir.
- CPU, verileri bellekten cihaz denetçisinin yerel arabelleğine veya tam tersi yönde taşır.
- Giriş/çıkış işlemleri, doğrudan cihazdan cihaz denetçisinin yerel arabelleğine gerçekleşir.
- Cihaz denetçisi, bir interrupt (kesme) oluşturarak CPU’ya işlemin tamamlandığını bildirir.
Kesmeler
Kesme (interrupt): CPU’nun dışındaki bir dış etken tarafından oluşturulan, CPU’nun o an yaptığı işi durdurup özel bir kod parçacığını çalıştırmasını sağlayan elektriksel bir sinyaldir. Kesme gerçekleştiğinde çalıştırılan bu kod parçasına Kesme Servis Rutini (Interrupt Service Routine, ISR) denir.
Kesme oluştuğunda, ISR’ye geçilmeden önce CPU, programın o anki konumunu kaydeder. ISR’nin işlemi tamamlandığında, CPU kaldığı yerden programı yürütmeye devam eder.
Hata ya da kullanıcı isteği sonucu yazılım tarafından oluşturulan kesmelere trap (tuzak) veya exception (istisna) adı verilir.
İşletim sistemleri, kesme odaklı bir çalışma prensibiyle (interrupt driven) hareket eder.
Özet olarak:
Kesme, denetimi Kesme Servis Rutini’ne (ISR) aktarır. Bu aktarım, tüm servis rutinlerinin adreslerini içeren kesme vektörü (interrupt vector) aracılığıyla gerçekleştirilir. Kesme mimarisinde, kesilmiş olan komutun adresi mutlaka kaydedilmelidir. İşletim sistemi, işlemcinin durumunu korumak amacıyla register’ları ve program sayacını kaydeder, ardından hangi tür kesmenin gerçekleştiğini belirler:
- Polling (Yoklama)
- Vektörlü Kesme Sistemi
Her bir kesme türü için gerçekleştirilecek eylemler, ilgili kod parçaları tarafından tanımlanır.
Kesmeler asenkron olarak gerçekleşir. Bu nedenle CPU, kesmenin tam olarak ne zaman oluşacağını önceden bilemez.
G/Ç Yapısı
G/Ç yönetimi, iki farklı şekilde gerçekleşir. G/Ç başladıktan sonra kontrol, kullanıcıya şu durumlarda verilir:
- G/Ç işlemleri bittiğinde kontrolün verilmesi:
- Bir sonraki kesmeye kadar işlemci boşta bekletilir.
- Bekleme döngüsü uygulanır (Belleğe erişim çabası).
NOT: Aynı anda en fazla bir G/Ç isteği olabilir. Eş zamanlı G/Ç işlemi gerçekleşmez.
- G/Ç işlemlerinin bitmesi beklenmeden kontrolün verilmesi:
- Sistem çağrısı: Kullanıcı, G/Ç işlemleri bitene kadar işletim sistemine bekleme isteği gönderir.
- Cihaz durum tablosu: Her bir G/Ç cihazının türü, adresi ve durumu tablo içerisinde tutulur.
NOT: İşletim sistemi, G/Ç cihaz tablosunu inceleyerek cihaz durumuna karar verir ve tablodaki girdiyi, kesmeyi dahil edecek şekilde düzenler.
Depolama Yapısı
Depolama sistemleri, hiyerarşik bir yapı içerisinde düzenlenir. Bu yapı aşağıdaki kriterlere göre sıralanır:
- Hız: Veriye erişim ve okuma/yazma hızı.
- Maliyet: Depolama sisteminin maliyeti.
- Uçuculuk/Kalıcılık: Verinin kalıcı mı yoksa geçici mi olduğu.
NOT: Görseller, referansta belirtilen kitaptan alınmıştır.
Caching: Bilginin daha hızlı depolama sistemine kopyalanması işlemidir. Ana bellek, ikincil depolama için bir cache olarak kullanılabilir.
Device Driver (Cihaz Sürücüsü): Her cihaz denetçisi, G/Ç yönetimi için denetçi ve çekirdek arasında tek tip bir arayüz sağlar.
Doğrudan Belleğe Erişim
Doğrudan Belleğe Erişim (DMA), yüksek hızlı G/Ç cihazları için kullanılır. Bu yöntem, bellek hızlarına yakın hızlarda veri aktarımı sağlar. Cihaz kontrolcüsü, işlemcinin müdahalesi olmadan ara depolamadan ana belleğe doğrudan veri blokları taşır. Bu işlem sırasında, her bayt için değil, her blok için bir tane kesme oluşur.
İşletim Sistemi İşlemleri
Önyükleme programı, sistemi başlatıp kerneli yükleyen basit bir koddur. Sistemin başlatılması sırasında aşağıdaki işlemler gerçekleşir:
- Kernel Yüklenir: İşletim sisteminin çekirdeği (kernel) hafızaya yüklenir.
- Sistem Daemonları Başlatılır: Kernel dışındaki hizmetler olarak bilinen sistem daemonları çalıştırılır.
NOT: Kernel, kesme (interrupt) ile çalışır. Kesme türleri şunlardır:
- Donanımsal Kesme: Bir cihaz tarafından oluşturulur.
- Yazılımsal Kesme (Exception veya Trap): Yazılım hatası (örneğin, sıfıra bölme), işletim sistemine yapılan bir istek (sistem çağrısı), sonsuz döngü veya işlem modifikasyonları gibi sorunlar nedeniyle oluşur.
İşletim Sistemi Yapısı
Çoklu programlama (toplu komut sistemi), verimlilik sağlamak amacıyla kullanılır. Bu yapı, CPU’nun her zaman yürütecek bir işinin olmasını sağlayarak kaynakları daha etkin kullanır.
- Tek bir kullanıcı, CPU ve I/O cihazlarını sürekli meşgul tutamaz.
- Çoklu programlama, işleri (kodu ve veriyi) organize ederek CPU’nun sürekli çalışmasını sağlar.
- Sistemdeki işlerin bir alt kümesi bellekte tutulur.
- Bir iş seçilir ve çalıştırılır – job scheduling (iş planlama).
- İş beklemek zorunda kalırsa (örneğin, I/O beklerken), işletim sistemi başka bir işe geçiş yapar.
Zaman Paylaşımı (Multitasking)
- Yanıt süresi (response time): < 1 saniye olmalıdır.
- Her kullanıcının bellekte yürütülen en az bir programı vardır → process (süreç).
- Aynı anda çalışmaya hazır birden çok iş varsa → CPU scheduling (CPU zamanlama) yapılır.
- Süreçler belleğe sığmadığında, swapping (değiş-tokuş) ile bellek yönetimi sağlanır.
- Sanal bellek, tamamen bellekte olmayan süreçlerin yürütülmesini sağlar.
İşletim Sistemi Operasyonu
Çift modlu operasyon, işletim sisteminin kendisini ve diğer sistem bileşenlerini korumasını sağlar. Bu iki mod:
- Kullanıcı modu: mod biti “Kullanıcı” olarak ayarlanır.
- Kernel modu: mod biti “Kernel” olarak ayarlanır.
NOT: Kullanıcının mod bitini özellikle “kernel” moduna değiştirmediğinden emin olmak için, sistem çağrısı modu çekirdek moduna geçirir. Çağrıdan dönüş ise modu kullanıcı moduna geri alır.
Bazı komutlar ayrıcalıklı komutlar olarak belirlenmiştir ve yalnızca kernel modunda çalıştırılabilir.
Zamanlayıcı (Timer)
Timer (Zamanlayıcı), sonsuz döngüleri veya kaynakları tek başına tüketen süreçleri engellemek amacıyla kullanılan bir mekanizmadır. Timer, işletim sisteminin süreci kontrol etmesine ve gerektiğinde müdahale etmesine olanak tanır.
- Zamanlayıcı, belirlenen bir süreden sonra bilgisayara bir kesme sinyali gönderir.
- Fiziksel saat (clock), zamanlayıcıdaki sayacı eksiltir ve süreyi takip eder.
- İşletim sistemi, sayacı kurar ve bu işlem ayrıcalıklı bir komut olarak gerçekleştirilir.
- Sayaç 0 olduğunda, bir kesme (interrupt) oluşur.
- Bu durumda, işletim sistemi kontrolü yeniden ele alır ve süreci planlamadan önce gerekirse programı sonlandırır.
Süreç Yönetimi
- Süreç, komutları birer birer ve sırayla yürütür.
İşletim sistemi, süreç yönetimi kapsamında aşağıdaki etkinliklerden sorumludur:
- Kullanıcı ve sistem süreçlerini oluşturmak ve silmek
- Süreçleri askıya almak ve yeniden devam ettirmek
- Süreç senkronizasyonu sağlamak
- Süreçler arası iletişim için mekanizmalar sağlamak
- Ölümcül kitlenme (deadlock) yönetimi sağlamak
Bellek Yönetimi
- Belleğin hangi parçalarının kim tarafından kullanıldığını takip etmek
- Süreçlerin ve verilerin belleğe giriş ve çıkışını kontrol etmek
- Bellek alanı tahsis etmek ve gerektiğinde geri almak
Dosya Sistemi Yönetimi
- Dosyalar genellikle dizinler içerisinde organize edilir.
- Çoğu sistemde, kimin hangi dosyalara erişebileceğini belirlemek için erişim denetimi bulunur.
- Dosya ve dizinleri oluşturmak ve silmek
- Dosya ve dizinlerde değişiklik yapmak için yollar sağlamak
- Dosyaları ikincil depoya eşlemek
- Dosyaları kalıcı depolama ortamlarına yedeklemek
Referanslar
- Kocaeli Üniversitesi Doç. Dr. Suhap Şahin
- Operating System Concepts, 10th Edition Abraham Silberschatz, Peter B. Galvin, Greg Gagne
