İşletim Sistemlerine Giriş

İç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:

  1. Hız: Veriye erişim ve okuma/yazma hızı.
  2. Maliyet: Depolama sisteminin maliyeti.
  3. 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:

  1. Kernel Yüklenir: İşletim sisteminin çekirdeği (kernel) hafızaya yüklenir.
  2. 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)

Zaman paylaşımı (çoklu görev – multitasking), CPU’nun çok sık iş geçişi yaparak kullanıcıya tüm işlemlerle etkileşim imkanı verdiği bir yapıdır. Bu durum interactive computing (etkileşimli hesaplama) olarak adlandırılır.
  • 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ç, yürütülen bir programın sistemdeki iş birimidir. Program pasif bir varlıkken, süreç aktif bir varlıktır. Görevini yerine getirebilmek için çeşitli kaynaklara ihtiyaç duyar. Bu kaynaklar; işlemci, bellek, G/Ç cihazları, dosyalar ve başlangıç verileridir. Tüm kaynaklar geri alındığında süreç sonlanmış kabul edilir. Tek thread’li süreçlerde, bir program sayacı (program counter) bulunur ve yürütülecek bir sonraki komutun konumunu belirtir.
  • Süreç, komutları birer birer ve sırayla yürütür.
Çok parçalı süreçlerde (multithreaded), her iş parçası (thread) başına bir program sayacı bulunur. Sistemde birçok süreç olabilir; bunların bazıları kullanıcı süreçleri, bazıları ise bir veya birden fazla CPU’da çalışan işletim sistemi süreçleridir. Eşzamanlılık (Concurrency), CPU’ların süreçler veya iş parçaları arasında çoklama (multiplexing) yapılarak sağlanı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

Bellek Yönetimi, bellekte bulunan verilerin takibini ve işlemci kullanımını optimize ederek kullanıcıya hızlı yanıt verme kapasitesini sağlar. Bellek yönetim eylemleri şunlardır:
  • 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

Dosya Sistemi Yönetimi, depolama için tek tip bir mantıksal görüntü sunar ve fiziksel özellikleri mantıksal birime (dosya) soyutlar. Her ortam, ilgili cihaz tarafından denetlenir (örneğin, disk sürücü, bant sürücü). Dosya sistemi yönetiminde yapılan işlemler:
  • Dosyalar genellikle dizinler içerisinde organize edilir.
  • Çoğu sistemde, kimin hangi dosyalara erişebileceğini belirlemek için erişim denetimi bulunur.
İşletim sistemi, dosya yönetimi kapsamında şu etkinlikleri gerçekleştirir:
  • 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

  1. Kocaeli Üniversitesi Doç. Dr. Suhap Şahin
  2. Operating System Concepts, 10th Edition Abraham Silberschatz, Peter B. Galvin, Greg Gagne

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön