İŞLETİM SİSTEMLERİ - 1 | |
İşletim sistemleri konusu, bilgisayar bilimleri kapsamındaki en temel konulardan birini oluşturmaktadır. İşletim sistemleri, bilgisayar sistemlerinin gelişmesine paralel olarak gelişme göstermiştir. Çünkü, yeni gelişen bilgisayar mimarisi, yeni istekler ve ihtiyaç duyulan güvenliğe göre işletim sistemleri gelişmiştir. Bu nedenle, kullanıcı ile bilgisayar arasında bir köprü görevi yürüten ve donanıma en yakın yazılım birimi olan işletim sisteminin ayrıntılarını incelemeye geçmeden önce, bir bilgisayar sisteminin yapısını genel olarak ele almak gerekmektedir.
Bir bilgisayar sisteminin genel olarak 4 bileşeni vardır.
Donanım (İşlemci (CPU), bellek ve I/O üniteleri gibi)
İşletim Sistemi (Ms-Dos, Unix, OS/2 gibi)
Sistem Yazılımları (Derleyiciler, Veritabanı ve Network Yazılımları)
Uygulama Yazılımları (Kullanıcıların kendi geliştirdikleri yazılımlar)
Bu noktada şu hususu açıklamak gerekir ki CPU (Central Processor Unit) bilindiği gibi bir bilgisayar sisteminin en temel bileşeni olup, aynı şekilde bilgisayar sistemlerindeki disk, printer, disket, terminal (ana makineye bağlı, sıradan uç kullanıcılar) vs. gibi I/O (Input/Output) üniteleri donanım kısmı olmaktadır.
Yazılım (software) ise, hem bilgisayar sistemini oluşturan donanım birimlerinin yönetimini hem de kullanıcıların işlerini yapmak için gerekli olan programlardır. Yazılım olmaksızın bir bilgisayar sistemi, bir takım elektronik kartlar, kablolar ve mekanik bazı parçalardan ibaret bir cihazdır. Bir bilgisayar sistemi, üzerine işletim sistemi (Operating Systems) ve onun üzerine de diğer yazılımların yüklenmesi ve çalıştırılmasından sonra gerekli işlevleri yerine getirebilmektedir.
Bilgisayar yazılımları genel olarak 2 ana grupta incelenebilir.
· Sistem Yazılımları (System Software)
· Uygulama Yazılımları (Application Software)
Sistem Yazılımları (System Software); bilgisayarın kendisinin işletilmesini sağlayan, işletim sistemi, derleyiciler (compilers) (Yazılım programında, yazılan programı makine diline çeviren program), çeşitli donatılar (facility) gibi yazılımlardır.
Uygulama Yazılımları (Application Software); bu kullanıcıların işlerine çözüm sağlayan örneğin çek, senet, stok kontrol, bordro, kütüphane kayıtlarını tutan programlar, bankalardaki müşterilerin para hesaplarını tutan programlar vs. gibi yazılımlardır.
Bütün sistem programları içinde en temel yazılım işletim sistemidir ki, bilgisayarın bütün donanım ve yazılım kaynaklarını kontrol ettiği gibi, kullanıcılara ait uygulama yazılımlarının da çalıştırılmalarını ve denetlenmelerini sağlar.
Modern bir bilgisayar sistemi, bir veya birden fazla işlemci (ya da diğer bir söylemle "CPU"), gerçek bellek (RAM), saatler, terminaller, diskler, bilgisayar ağı (network) birimleri, yazıcı üniteleri, CD sürücüsü, disket ve teyp üniteleri gibi I/O ünitelerinden oluşmaktadır. Doğal olarak bir bilgisayar sistemi oldukça karmaşık bir yapıdadır.
Programcıları, donanımın bu karmaşık yapısından etkilenmemelerini sağlamak ve disk gibi donanım ünitelerinin nasıl çalıştıklarını anlamak zorunda bırakılmamaları için, donanımın üzerine ilave edilen yazılımların katmanlar şeklinde (layered system) oluşturulmaları ve bu sayede çok daha kolay bir şekilde, sistemin bütün parçalarının yönetilebilmesi şeklinde bir yapılanma, uzun yıllar önce geliştirilmiş bir yaklaşımdır.
Bu yapının en alttaki üç katmanı donanımı oluşturmaktadır. En alttaki katman, fiziksel üniteler, entegre devreler, kablolar, power (elektrik destek) üniteleri, disket sürücüleri, disk üniteleri ve diğer benzeri donanım birimlerinden oluşmaktadır. Bu katmanın mimari yapısı ile ilgilenmek ve bunları çalışma prensiplerini geliştirmek elektronik mühendislerinin işidir.
Fiziksel üniteleri (donanım) doğrudan kontrol eden ve fiziksel katmanın bir üstündeki en ilkel yazılım düzeyini oluşturan katman, "microprogram" dır. Bu katman genellikle "read-only" (yalnızca okunabilir) bellek (ROM) sahasında bulunur. Microprogram da ekleme (add), taşıma (move), karşılaştırma (compare) gibi makine diline ait temel komutları adım adım yerine getirir. Microprogram, örneğin, Add işlemini yerine getirmek için eklenecek sayının nerede yer aldığını saptar ve üzerine eklenecek sayıyı ilave ettikten sonra sonucu elde eder.
Microprogramın yorumladığı komut seti (instruction set), makine dili (machine language) katmanını oluşturur ki, bu gerçekte makinenin gerçek bir donanım parçasını oluşturmakta ve bir bilgisayar da donanımın gerçek bir parçasıymış gibi nitelenebilmektedir. Bu nedenle bazı makinelerde Microprogram, donanımın içinde varsayıldığından ayrı bir katman şeklinde bulunmaz.
Makine dili, genel olarak 50 ile 300 arasında komuta (intruction) sahiptir. Veri taşıma, aritmetik işlem yapma ve değerleri kıyaslama gibi işlevleri yerine getirir. Makine dili, yazıcı ve disket sürücü gibi I/O (input/output) ünitelerinin denetimini özel yüklenmiş bilgiler sayesinde yapmaktadır.
Bir bilgisayar sisteminin dördüncü katmanında yer alan işletim sisteminin temel işlevi, donanımın karmaşıklığını kullanıcıya yansıtmamak ve daha elverişli ortam hazırlayıp, kullanıcının kolayca işini yapmasını sağlamaktır.
İşletim Sistemi Olmasaydı : Diyelim ki, işletim sistemi olmayan bir bilgisayarın önünde oturuyorsunuz ve bu bilgisayarın disket sürücüsüne disketinizi taktınız ve bu disketteki "LATS" isimli oyun programını çalıştırmak istiyorsunuz. İşletim sistemi olmaksızın yapmanız gereken, daha doğrusu vermeniz gereken komutları şöyle bir hayal etmeye çalışın.
1. Disket sürücüsü takılı mı?
2. Takılıysa disket sürücüde disket var mı? ve dönüyor mu?
3. Dönüyorsa doğru hızda mı dönüyor?
4. Disket sürücüsünün okuyucu kafası disketin neresinde duruyor?
5. "LATS" programının disket üzerindeki yeri neresi? Örneğin üzerinde 80 kayıt izi bulunan bir diskette, programın kaydedilmeye başladığı iz hangisi, toplam program uzunluğu kaç iz tutuyor?
6. Sürücünün kafasını uygun izin üzerine gönder. . .
7. Uygun izin üzerine geldi mi?
8. Geldiyse, izin başlangıç noktasının okuyucu kafanın altına gelmesini bekle.
9. Disket sürücüdeki kayıtları okumaya başla ve belleğe taşı. (tabii belleğin program yüklemeye uygun bir noktasından başlayarak, bellekte boş yer yoksa bellekteki kullanılmayan bilgileri sil, bilgiler kullanılıyorsa bu bilgileri diskin boş bir yerine geri almak üzere kaydet ve belleği boşalt. )
10. Birinci iz bitince, okuyucu kafayı bilginin devam ettiği bir sonraki izin üstüne gönder ve bu hareket tamamlanıncaya kadar bekle. . .
11. İzleri okumayı ve belleğe yerleştirmeyi program dosyasının sonuna gelinceye kadar tekrarla.
12. Disketten okuma tamamlanınca, disket sürücüyü durdur ve programı çalıştırmaya başla.
Bu uzun liste bile abartılı şekilde kısaltılmış bir listedir. Sürücünün okuyucu kafasının belirli izin üzerine gönderilmesi bile başlı başına bir iştir aslında. Tabii birde bu işlemi makinenin anlayacağı bir dille yapmak gerekiyor. Yani, ikilik düzende 1 ve 0' ları kullanarak PROM' daki temel bilgilerle (ekleme, çıkarma, karşılaştırma, vs. ) yapmak gerekiyor.
Oysa; işletim sistemi olan bir bilgisayarda, kullanıcının tek yapması gereken çalıştırmak istediği programın adını klavyeden yazıp ENTER tuşuna basmak veya simgesine (icon) tıklamaktır. Program dosyasının disket sürücüdeki yerinin bulunması, sürücüyü denetleyen kontrol devreleriyle gerekli görüşmeleri yapıp kafanın gerekli hareketleri yapmasını sağlayarak kayıtların belleğe aktarılması işinin sağlıklı bir şekilde yapılması, tamamen işletim sisteminin sorumluluğundadır.
İşletim Sistemi, üzerinde yer alan bazı yazılımlar "Sistem Yazılımı" olarak anılır. Örneğin derleyiciler (compilers) ; yazdığımız programı makine diline çeviren ara program, editörler (editors), yararlı programlar (utility) ; virüs temizleyen programlar gibi gerçek iş için yardımcılardır, veritabanı yönetim sistemleri (database management system) ve bilgisayar ağı yazılımları (network software) yine birer sistem yazılımlarıdır. Ancak bu yazılımlar İşletim Sisteminin kendi öz parçaları değildir.
Özet olarak İşletim Sistemi, aynı zamanda donanım üreticisi olan veya yalnızca yazılım geliştiren özel bir firma tarafından yazılıp pazarlanan ve bir bilgisayar sisteminin donanım ve yazılım kaynaklarını kontrol eden ve kullanıcılarında kendi çözümlerini geliştirebildikleri ortamı hazırlayan bir sistem yazılımıdır.
a) İşletim Sistemi Tanımı : En büyüğünden en küçüğüne, bütün genel amaçlı bilgisayarlarda çalışan programlar, bir işletim sistemine gereksinim duyarlar. Bu yüzden bilgisayarlarda herhangi program çalıştırılmadan önce İşletim Sistemi ile programların ana belleğine (RAM) yerleştirilmeleri gerekir. Bu işlem genellikle bilgisayar ilk açıldığı zaman otomatik olarak yapılır ve HHD' deki İşletim Sistemi ana belleğe yüklenir.
Bir işletim sisteminden beklenen hizmet, donanım ve yazılım kaynaklarının uyumlu ve verimli bir şekilde birlikte işletilmesidir. Örneğin kullanıcı Cobol veya Pascal dili ile geliştirdiği uygulama programını, bir bilgisayar sisteminde çalıştırabilmesi için, uygulama programı ve verilerini yazabileceği bir disk ünitesi, verilerini yazdıracağı yazıcı ünitesi, bu programı işletecek işlemci (CPU) ve gerçek bellek gibi donanım birimlerinin yanı sıra derleyici (compiler), yükeyici (loader) ve network yazılımları gibi yazılım birimlerine de ihtiyaç vardır.
İşletim sistemini, bir bilgisayar sisteminde kullanıcı ile iletişim kurarak, donanım ve yazılım nitelikli kaynakların kullanıcılar arasında adil bir biçimde paylaştırılmasını ve donanım ile yazılım birimlerinin etkin bir biçimde kullanılmalarını sağlayan sistem programları topluluğuna denir.
İşletim Sistemi, bilgisayar donanımı ile bilgisayar kullanıcısı arasında bir arayüz (interface) görevini gören programlar topluluğudur. Bu programlar topluluğunun genel amacı, bilgisayar kullanıcılarına programlarını çalıştırabilecekleri ortamı yaratmak ve bilgisayar sisteminin etkin ve verimli olarak kullanılmasını sağlamaktır.
b) Bilgisayar Sistem Yapıs ı: Modern ve genel amaçlı bir bilgisayar sistemi, işlemci (CPU) ve belleği paylaşmak için bir omurgaya (common bus) bağlanmış bulunan bir çok ünite kontrol biriminden (device controllers) oluşur.
Bir bilgisayar sistemi açıldığında yani akım verildiğinde (power on) veya "Boot" edildiğinde, bir başlatma programına gereksinim vardır. Bu başlatma programı, sistemin bütün birimlerini başlama pozisyonuna getirir.
Bu başlatma programı işletim sistemine nasıl yükleyeceğini bilmelidir ve işletim sisteminin çalışmasını başlatabilmelidir. Bunu gerçekleştirebilmek amacıyla da İşletim Sisteminin çekirdeğinde (Kernel) yer almalı ve onu belleğe yerleştirmelidir. Sonra işletim sistemi ilk işi (proses) işletmeli ve bazı işlevlerin tamamlanmasını beklemeye başlamalıdır. Beklediği böyle bir işlev (olay) donanım veya yazılımdan kaynaklanacak bir kesinti (interrupt) olabilir.
En basit anlamıyla Kesinti (interrupt), işletim sisteminin o sırada yapmakta olduğu işi bırakıp, kesintiyi yaratan işe (proses) anahtarlanmasıdır. Kesintiler, bir bilgisayar mimarisinin önemli bir parçasını oluşturur. Her bilgisayar tasarımı kendi kesinti mekanizmasına sahiptir. Fakat birkaç fonksiyon geneldir.