İçerik

Von Neumann Mimarisi Modern bilgisayar çalışma prensipleri, Von Neumann’ın 1945’de geliştirdiği
mimariyi temel almaktadır.

Bir işletim sistemini orkestrayı yöneten bir maestro gibi düşünebilirsiniz. Bir
orkestrayı yöneten biri olmadığında, enstrümanlardan çıkan sesler birbiriyle uyumlu
olmayacaktır. İşte işletim sistemi de bir bilgisayar sisteminin maestrosudur;
bilgisayarın donanım elemanlarının birbiri ile haberleşmesini, birbirini tanımasını,
kısacası birbiri ile uyumlu bir şekilde çalışmasını sağlar.
İşletim sistemi aynı zamanda, kullanıcı ve donanım, yazılım ve donanım ve son
olarak yazılım ve yazılım arasındaki ara yazılımdır. Kullanıcı ve donanımın, donanım ve
yazılımların ve birçok farklı yazılımın etkileşimini, birbirini anlamasını ve birbiri ile
çalışabilmesini sağlar.

İşletim sistemi; bilgisayar sistemini oluşturan donanım ve yazılım nitelikli
kaynakları kullanıcılar arasında kolay, hızlı ve güvenli bir işletim hizmetine olanak
verecek biçimde paylaştırırken bu kaynakların kullanım verimliliğini en üst düzeyde
tutmayı amaçlayan bir yazılım sistemidir.
Bir bilgisayar sistemindeki MİB, bellek, soyut bellek, G/Ç aygıtları ve dosyalar
gibi kaynakları kontrol eden program modülleri topluluğudur. Bu modüller sistemin
daha etkili ve performanslı kullanılmasını sağlar. Bunlar kullanıcı ve donanım arasında
bir arabirim gibi çalışırlar.

Tarihsel Gelişim:

1. Eski Sistemler (Mainframe)
a) 1950’lerdeki sistemlerdir. Tek kullanıcılıdırlar. İşletim sistemi
kullanılmamıştır. Örn: Eniac da işletim sistemi yoktu
b) Sadece tek bir iş: Aynı anda sadece bir iş yapılmaktaydı. Kısacası doğrusal
çalışıyorlardı.
c) Bilgi girişi ve çıkışı için kartlar kullanılmaktaydı.
2. Toplu İşlem Sistemleri (Batch Systems):
a) Monitor programları geliştirilerek otomatik olarak birden fazla işin arka
arkaya yapılması sağlandı. Bir işe örnek olarak “şu programı çalıştır” veya “şu
programı derle” komutları verilebilir.
b) Kart okuyucular kullanılmaktaydı.
3. Zaman paylaşımlı sistemler (Timesharing Systems)
a) Diskteki veya bellekteki farklı işleri aynı anda yapabilmektedir.
b) Bu işleri yaparken bir donanımı belirli zamanlarda farklı işleri yapılması için
tahsis ederdi. Örneği MİB farklı işleri aynı anda yapmıyor ama bu işlerin
belli görevlerini yerine getiriyordu. Örneğin aynı anda 3 iş yapması
gerekiyorsa öncelikle 1. işin ilk görevini sonra 2. işin ilk görevini ve 3. işin ilk
görevini yapıyordu ve bu şekilde devam ediyordu. Kullanıcı bu işleri aynı anda
yaptığını zannetse de aslında bu işlerin belli görevleri arasında değişim
yapıyordu. İşte bu özelliğe ‘Çok görevli (Multitasking)’ denilmektedir. “Çoklu
programlama (multiprogramming)” sistemleri ise aynı anda birden fazla
programın çalıştırılması anlamına gelmektedir. Bu sistemlerde MİB
zamanlaması (scheduling), bellek yönetimi gibi işlemler sistem tarafından
yapılmaktaydı.
c) Kart okuyucu olmadan kullanıcı ile iletişimde bulunabilmektedir.
4. Kişisel Bilgisayar sistemleri (Personal Computer Systems)
a) Donanım ebatlarının küçülmesi ile masaüstünde yer alan bilgisayarlardır.
b) G/Ç aygıtları kullanılmaktadır. Farklı teknolojiler adapte edilebilmektedir.
c) İşletim sistem

5. Paralel veya Çok İşlemcili Sistemler (Paralell Systems):
a) Birden fazla MİB’nin kullanılabildiği sistemlerdir. MİB’leri, belleği ve diğer
donanım kaynaklarını paylaşırlar.
b) Simetrik çoklu işleme: Her işlemci işletim sisteminin ayrı bir kopyası
üzerinde çalışır. İhtiyaç olduğunda birbirleri ile haberleşirler.
c) Asimetrik çoklu işleme: Her işlemci ayrı bir iş için tahsil edilmiştir. Master
olan bir işlemci vardır ve görev ve iş dağılımlarını yapar, slave için işleri
sıraya sokar ve zamanlar.
6. Dağıtık Sistemler (Distributed Systems):
a) Bu sistemler internet ve ağ teknolojilerinin gelişmesi ile ortaya çıkmıştır. Bir
ağ üzerinde kuruludur. Ancak bir ağdan farklı olarak ağ üzerinde gerçekleşen
işlemler kullanıcıya görünmektedir. Kullanıcı, bir işlemci ve bir arayüz
olduğunu düşünse de bu sistemler, değişik bilgisayar sistemleri üzerindeki
verileri ve işlemleri bir bütün olarak işleyebilir ve çalıştırabilirler.
b) Her işlemcinin kendine ait belleği vardır ve diğer işlemcilerle iletişim hatları
üzerinden haberleşirler.
c) Kaynak paylaşımı sağlanır. Bu kaynak MİB, diğer donanım elemanları
olabileceği gibi veriler, dosyalar da olabilir.
d) Dağıtık sistemlere; bilgisayar ağları, Sunucu-İstemci Sistemleri, Peer-to-
Peer (Noktadan noktaya) ve Internet örnek olarak verilebilir.
7. Gerçek-Zamanlı Sistemler (Real-Time Systems):
a) Çok kısa sürelerde örneğin milisaniyelerde çalışan sistemlerdir. Belli bir
sistemi kontrol amacıyla kullanılır. Örneğin bir işlemciye çok yoğun bir veri
akışı olduğunda veya bir uygulamanın kontrolü için ayrılan bir aygıt için
kullanılır.

b) Bilimsel deneyleri kontrol eden, gösterim sistemleri, endüstriyel kontrol
sistemleri vb. gerçek zamanlı sistemlerdir.
8. Gömülü Sistemler (Embedded Systems):
a) Gerçek-zamanlı işletim sistemlerini çalıştıran sistemlerdir. Bunlarda
genellikle bir kullanıcı arayüzü olmaz, sadece donanımları izleme ve yönetme
işlemlerini yaparlar.
b) Örneğin router’larda bulunan ayrı işletim sistemleri, firewall’lar, otomobil
motorları, nükleer reaktörün soğutma işlemleri.
Modern bir işletim sistemleri yukarıdaki farklı işletim sistemlerinin özelliklerini
kapsamaktadır.


İşletim Sisteminin Yerine Getirmesi Gereken Fonksiyonlar

Bir işletim sistemi şu fonksiyonları yerine getirebilmelidir:
1. İşleri sıraya koymalıdır
2. İşi kontrol eden dili yorumlayabilmelidir
3. Hata durumlarında ilgili işlemleri sonuçlandırmalıdır
4. Giriş/Çıkış işlemlerini sonuçlandırmalıdır
5. Kesmelerin gereğini yerine getirmelidir
6. İşlerde öncelik tanıyabilmelidir
7. Kaynakları kontrol etmelidir
8. Kullanıcıların birbirlerinin haklarına müdahalelerini önlemelidir
9. Bilgisayara birden fazla erişim sağlamalıdır
10. İyi bir ara yüzü olmalıdır
11. Bilgisayar kaynaklarının hesabını tutmalıdır.
12. Bilgileri uzun vadede saklamalıdır.

Bir İşletim Sisteminde İstenilen Özellikler

1. Etkinlik: İşletim sistemi, bir işi etkin ve verimli bir şekilde yapmalıdır.
2. İşler arasındaki zaman: Bir işi bitirip diğer işi başlama süresi kısa olmalıdır.
3. Kullanılmayan MİB zamanı: Merkezi işlem birimin kullanmadığı süre kısa olmalıdır.
Yani mikroişlemciden belleğe aktarılacak veya bellekten alınacak bilginin erişim süresi
kısa olmalıdır.
4. Toplu işlemler arasındaki zaman: Toplu işlem dosyalarının işlenmesi arasındaki süre
kısa olmalıdır.
5. Cevap verme süresi: Sistemin cevap verme süresi kısa olmalıdır.
6. Az zamanda çok iş yapılmalıdır.
7. Güvenirlik: Sistem tamamen hatalardan arındırılmış olmalıdır.
8. Süreklilik: Sistem bakım yapılabilir ve dokümanı bol olmalıdır.
9. Düşük boyut: Sistem kendinden taviz vermeden küçük boyutta olmalıdır.

 İŞLETİM SİSTEMLERİ KATMANLARI
Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu
bulunmaktadır;
1. Performans: İşletim sistemi, makine kaynaklarını (özellikle MİB zamanı ve
bellek alanı) en etkili şekilde kullanılmasını sağlayacak şekilde tasarlanmalıdır.
Makinenin donanımsal performansını en iyi şekilde kullanabilmelidir.
2. Kaynakların özel kullanımı: İşletim sistemi, kaynakların yalıtımını sağlamalıdır,
diğer bir deyişle bir işlemin diğer işleme ait kaynaklara olan müdahalesine veya
bu işleme ait bilgilerin silinmesine izin vermeyen bir koruma mekanizması
geliştirmelidir. Her işletim sisteminin kaynaklara ulaşımı yönetmede kullandığı
stratejiyi belirleyen bir güvenlik politikası vardır.

Her işletim sisteminin tasarımında olan üç temel unsur ise şunlardır;
1. İşlemci modları
2. Çekirdek (Kernel)
3. Sistem servislerini uyarma metodu

İşlemci Modları
İşlemcide, bir programın çalışma yeteneğini gösteren bir mod biti
bulunmaktadır. Bu bit ‘supervisor (kernel)’ veya ‘kullanıcı’ modunu belirlemede
kullanılır. İşlemci supervisor modda iken donanımsal her tür komutu çalıştırırken
kullanıcı modunda ise bazı komutları çalıştırabilir. Supervisor moda çalışan
komutlara supervisor, öncelikli veya korunmuş komutlar denilmektedir. İşletim
sistemi programları supervisor moda çalışırken diğer tüm yazılımlar kullanıcı
modunda çalışmaktadır. Örneğin giriş/çıkış işlemleri supervisor moda çalışmakta,
kullanıcı modunda yer alan bir program herhangi bir giriş/çıkış işlemi yapılmasını
istediğinde bunu işletim sisteminin yapmasını istemektedir.
Sistem aynı zamanda mod bitini kullanarak bellek alanları tanımlar. Eğer mod biti
supervisor modda olacak şekilde ayarlandığında işlemcide çalışan işlem hem belleğin
supervisor hem de kullanıcı alanlarına ulaşabilir. İşlemci kullanıcı modunda çalışırken
ise bu işlem bellekte sadece kullanıcı alanına ulaşabilir. İşletim sistemlerinde bu
alanlara kullanıcı ve sistem (supervisor, çekirdek veya korunmuş) alanı denilmektedir.

Genel olarak; mod biti işletim sisteminin koruma haklarından biridir. İşletim
sistemi supervisor modda çalışmakta ve kullanıcı moduna göre belleğe ve öncelikli
komut kümesine ulaşmakta daha fazla haklara sahip olmaktadır.
İşlemci supervisor moda geçtiğinde işletim sisteminin kodlarını çalıştırmaktadır.
Kullanıcı modundaki bir işlem işletim sistemini çağırdığında işlemci hemen
supervisor moda, mod bitini kullanarak geçer ki bu duruma supervisor çağrı (veya
sistem çağrısı) denilmektedir. Örneğin; Word’de büyük bellek gerektiren bir dosya
açınca başka işlemlerin alanlarına müdahale edilir. Bunu önlemek amacıyla yeni bir
alan bu dosya için eklenmelidir. Burada supervisor çağrı yapılmıştır.
8086/8088 gibi eski işlemcilerde mod biti bulunmadığı için supervisor ve
kullanıcı komutları arasında bir ayrım yapılmamaktadır. Bu da kaynakların
paylaşımını ve yalıtımını güçleştirmekteydi.


Çekirdek
İşletim sisteminin supervisor modda çalışan ve diğer parçaları için temel
servisleri sağlayan en önemli parçasıdır. İşletim sisteminin uzantıları kullanıcı
modunda çalışır ve daha sınırlı haklara sahip olur. Çekirdekte çalışan işletim sistemi
fonksiyonları ise belleğe ve çekirdeğin diğer bölümlerine ulaşmada daha fazla
haklara sahiptir. Kabuk (shell) veya diğer adıyla komut yorumlayıcısı ise kullanıcının
sisteme verdiği komutları anlayan ve çalıştıran bir programdır. Kabuğun genellikle
bir arayüzü bulunmaktadır; örneğin DOS’taki C:> nin göründüğü komut istemi
arayüzü ve kullanıcının girdiği DIR komutu. Çekirdek ve kabuk bazı işletim
sistemlerinde ayrı iken bazılarında da sadece kavramsal olarak ayrılmıştır.

Monolitik çekirdekler (monolithic kernel), 1970–1990 arasında kullanılan ilk
çekirdeklerdir. Burada tüm yazılımlar, sürücüler işletim sisteminin çekirdeğinde
yer almaktadır. Örnek olarak Unix verilebilmektedir. Çekirdek büyük olmasına
karşın her tür fonksiyonu içerdiği için genelde hızlıdır. Monolitik çekirdeklerin
boyutlarının çok büyük olduğu düşüncesi modüler yapıda olan mikro çekirdekleri
(microkernel) yaratmıştır. Bu çekirdeklerde sadece en önemli işletim sistemi
fonksiyonları bulunduğu için oldukça küçük boyutta olmaktadır. Yeni bir donanım
eklendiğinde onun sürücüsü de çekirdeğe tanıtılmaktadır. Bu çekirdeklere örnek
olarak MS-DOS verilebilir.
Sistem servislerini uyarma metodu
Kullanıcı işlemlerinin işletim sisteminden belli servisleri (program çalıştırma,
giriş/çıkış ve dosya işlemleri, ağ erişimi gibi) sağlaması istendiğinde oluşan bir
durumdur. Bu bir sistem fonksiyonunun çağrılması veya MİB’ne bir mesaj gönderilmesi
(message passing) ile gerçekleşmektedir. Sistem çağrıları, işletim sistemi ve işlemler
arasında bir arayüzdür. Bu çağrılar genellikle Assembly dili komutları şeklindedir. C ve
C++ gibi bazı programlama dilleri bunu direkt olarak yapabilmektedir. Microsoft
Windows ise bunu Win32 API ile gerçekleştirmektedir.

Temel İşletim Sistemi Katmanları
Bir işletim sisteminde yer alan katmanlar şunlardır; Donanım, çekirdek, kabuk ve
uygulama katmanı.

Uygulama Katmanı: Kullanılan her tür program bu katmanda yer almaktadır.
Örneğin Word, Excel vb...

Kabuk Katmanı: Genellikle kullanıcı arayüzü de denilen kullanıcı ile bilgisayarın
iletişimini sağlayan arabirimdir. Buna MS-DOS’da komut istemi arayüzü (C:>), Linux’de
root olarak giriş yapıldığında #, kullanıcı olarak giriş yapıldığında $ ile görünen
arabirim örnek olarak verilebilir. Linux’de birden fazla kabuk bulunmakta ve chsh
komutu ile bunlar arasında geçiş yapılabilmektedir. Bu katman; uygulama katmanında
kullanıcın verdiği bir komutu alarak çekirdek katmanına iletmektedir.
Çekirdek katmanı: Kabuk katmanından gelen komutlar doğrultusunda donanım
katmanı ile iletişime geçerek gerekli işlemleri yürüten kısımdır.

Donanım katmanı: Ekran kartı, ses kartı gibi donanım elemanlarının bulunduğu
kısımdır.
UNIX İşletim Sistemi Katmanları
UNIX, 1969 yılında, Ken Thompson tarafından Bell Laboratuvarlarında
geliştirilmiş, çok kullanıcılı, çok görevli yapıyı destekleyen bilgisayar işletim sistemidir.
Günümüzde Windows tabanlı sistemlerden sonra en çok kullanılan ve kökleri UNIX'e
dayanan işletim sistemi GNU/Linux'tur.
Şekil 5. Unix işletim sistemi mimarisi
Unix işletim sistemi çekirdeğinde, işletim sisteminin temel fonksiyonlarını
yapması için gerekli işlem, bellek, dosya yönetimi bulunmaktadır. Aygıt yönetimi
öncelikli olarak çekirdeğin içinde yer almaktaydı. Ancak daha sonra tek bir donanımın
eklenmesinin bile bütün çekirdeğin tekrar derlenmesini gerektirmesi nedeni ile aygıt
yönetimi yine çekirdeğin içinde olmak üzere ayrı bir bölüm haline getirilmiştir. Sistem
çağrı arayüzü yani kabuk kullanıcının uygulama katmanında gerçekleştirdiği işlemleri ve
komutları alıp yorumlayarak çekirdeğe iletmekte ve çekirdekte direkt olarak donanım
ile iletişime geçerek gerekli işlemleri yapmaktadır.

Windows NT/2000/XP Katmanları
Windows NT mimarisi donanım soyutlama katmanı, NT çekirdeği, NT yürütücüsü
ve birçok alt sistemden oluşmaktadır. Donanım soyutlama katmanı, bir donanımın
birçok detayının soyutlanması (örneğin kesme adresleri) ile işletim sisteminin
donanımsal adresleri kullanması yerine farklı soyutlamaları kullanmasını sağlamaktadır.
NT çekirdeği donanıma en yakın işletim sistemi mekanizmalarını örneğin kesmelerin ele
alınması ve iş parçacıklarının zamanlanması gibi işlemleri yürütmektedir. NT
yürütücüsü ise NT çekirdeğinin en üstünde işlemler ve kaynaklarla uğraşan ve işlem,
bellek ve dosya yönetimini yapan ve aygıt alt sistemini içeren bölümdür. Sistem çağrı
yorumlayıcısı Win32 API tarafından gerçekleştirilmektedir. G/Ç alt sistemi, sistem
çekirdek fonksiyonlarından ayrı bir alt sistem olarak tanımlanmış ve aygıt sürücülerini
içermektedir. NT alt sistemleri ise kullanıcı tarafında NT çekirdeğinin bazı işlemleri
yapabilmesi için gerekli servisleri sağlamaktadır.

Hiç yorum yok:

Yorum Gönder

Katıldığınız İçin Teşekürler.......