Isletim sistemi, bilgisayarimizla yasadigimiz tecrübelere temel
olusturur. Bilgisayarimizi açtigimizda karsimiza çikan ilk
yazilimken, bilgisayarimizi kapattigimizdaysa gördügümüz son
yazilimdir. Diger bütün programlari kullanmamiza imkan veren
yazilimdir. Isletim sistemi, masanizin üstündeki ve elinizin
altindaki bütün donanimimizi organize ve kontrol eder. Buna ragmen
birçok kullanicinin isletim sisteminin ne oldugu hakkinda hemen
hemen hiçbir bilgisi yoktur.
Bu bölümde, bir yazilim parçasinin isletim sistemi olarak
adlandirilmasi için neler yapmasi gerektigini okuyacak ve bir
donanim toplulugunu güçlü bir islem cihazina dönüstürmek için
isletim sisteminin nasil çalistigini göreceksiniz.
Temel yapi Bütün bilgisayarlarin isletim sistemlerinin
olmadigini bilmek önemli bir seydir. Örnegin, mutfaginizdaki
mikrodalga firini kontrol eden bilgisayar, bir isletim sistemine
ihtiyaç duymaz. Yapmasi gereken çok basit görevleri vardir; çok
basit giris ve çikis metotlari (bir LCD ekran ve küçücük bir
klavye) ve basit, kontrol gerektirmeyen asla degismeyen bir
donanim. Hiçbir karmasik islemin gerekmedigi böylesi bir bilgisayar
için bir isletim sistemi gereksiz bir yük olacaktir. Mikrodalga
firinin içindeki bilgisayarda, gerekli tüm zamanlarda sadece tek
bir program çalisir.
Mikrodalgayi asan bir karmasikliktaki bir bilgisayar sistemi
için, maalesef, bir isletim sistemi daha büyük çalismalarin etkin
bir sekilde gerçeklesmesi ve kolay uygulamalarin gelisimi için bir
anahtardir. Bütün masaüstü bilgisayar sistemlerinin isletim
sistemleri vardir. Bunlar arasinda en çok bilineni Windows, UNIX ve
Macintosh isletim sistemi aileleridir. Yukarida saydiklarimizin
disinda, çok özel amaçlar için gelistirilmis yüzlerce farkli
isletim sistemleri vardir: Örnegin, özel bir amaç için
gelistirilmis büyük sistemler, robotlar, çesitli üretim alanlari,
gerçek zamanli kontrol sistemleri gibi...
Çok basit bir sekilde ifade edersek, bir isletim sistemi iki
sey yapar:
Bilgisayar sisteminin donanim ve yazilim kaynaklarini
yönetir. Bu kaynaklar, islemci, bellek, disk alani gibi seyleri
içerir. Detayli bir sekilde donanimin ne oldugunu bilmeksizin,
uygulamalarin donanimlarla kararli ve tutarli bir sekilde
çalismalarini saglar.
Donanim ve yazilim kaynaklarini idare etmek olarak tanimlanan
birinci görev çok önemlidir, çünkü çesitli programlar ve giris
metotlari kendi özel amaçlari için merkezi islemci biriminin
(CPU/Central Processing Unit) dikkatini çekmek için rekabet
ederlerken, giris/çikis (I/O) bant genisligi, depolama ve bellek
talep ederler. Bu kapasite içinde, isletim sistemi iyi bir ebeveyn
rolü oynar, hiçbir uygulamayi göz ardi etmeden, her bir uygulamanin
gerekli kaynaklari alip almadigini kontrol edip, çok daha faydali
bir sekilde sistemin sinirli kapasitesini bütün kullanici ve
uygulamalara idareli bir sekilde kullandirir.
Eger isletim sistemini sadece belirli tip bir bilgisayardan
daha fazlasi kullanacaksa ya da eger degisikliklere açik
bilgisayara yeni donanimlar ekleniyorsa, tutarli bir uygulama
arabirimi (arayüzü) saglamak olarak ifade edilen ikinci görev,
hayati bir önem tasir.
Tutarli bir uygulama programi arayüzü (API/Application
Program Interface), bir program gelistiricinin bir bilgisayar
üzerinde çalisan bir uygulama yazmasina izin verirken, bu iki
makinede hafiza ya da depolama kapasitesi farkli dahi olsa, ayni
tip bir diger bilgisayarda bu uygulamanin çalisacagina tartismasiz
bir sekilde güven vermelidir.
Essiz bir bilgisayar olsa dahi, o bilgisayarda çalisan
isletim sistemi donanimda güncellemeler ve yenilenmeler oldugunda
uygulamalarinin sorunsuz çalismasini garanti eder, çünkü
bilgisayarin kaynaklarini dagitan ve yöneten uygulamalar degil
isletim sistemidir. Windows XP bir isletim sisteminin
saglayabilecegi esneklige çok güzel bir örnektir. Windows XP,
binlerce saticinin donanimlari üzerinde çalisir. Binlerce farkli
yazici, disk sürücü ve mümkün olan binlerce çesit kombinasyondaki
özel yan donanimlarin birlikte sorunsuz çalismasini saglar.
Destekledikleri uygulamalarin çesidi ve kontrol ettikleri
bilgisayarlarin türünün temeli üzerinde kategorize edilmis isletim
sistemlerinin genis aileleri içinde dört çesit vardir:
? Gerçek zamanli isletim sistemi
(RTOS/Real-time Operating System): Gerçek zamanli isletim
sistemleri, makineleri, bilimsel cihazlari ve endüstriyel
sistemleri kontrol etmek için kullanilir. Bir RTOS tipik olarak çok
az kullanici-arabirimi yetenegine sahiptir ve son kullanicinin
faydalanabilecegi bir sey degildir, ta ki "mühürlenmis kutu" olarak
kullanim için teslim edilinceye kadar. RTOS'un en önemli parçasi,
bilgisayarin kaynaklarini yönetmesidir, ki böylece belirli bir
islem her zaman oldugu gibi ayni zamanda kesinkes ayni performansi
gösterebilir.
Karmasik bir makinede, bir islemi sistem kaynaklari uygun
oldugu için daha hizli devreye sokmak, sistem mesgul oldugunda onu
hiç hareket ettirmemek kadar vahim olabilir.
? Tek kullanici, tek görev: Isminin de ima
ettigi gibi, bu isletim sistemi, belirli bir anda belirli bir
görevin bir kullanici tarafindan etkin bir sekilde yapilmasini
saglamak üzere bilgisayari yönetmek için tasarlanmistir. Avuçiçi
bilgisayarlardan Palm'in PalmOs'u modern tek kullanicili, tek
görevli isletim sistemlerinin en iyi örnegidir.
? Tek kullanici, çok görev: Bu, tam da bugün
birçok insanin kullandigi masaüstü ve dizüstü bilgisayarlardaki
isletim sistemi türüdür. Windows XP ve MacOS, her ikisi birden, tek
kullanicinin çok sayida programi ayni anda çalistirdigi isletim
sistemlerinin en iyi örnekleridir. Örnegin bir Windows kullanicisi
için, bir taraftan kelime islemciye bir not yazarken bir taraftan
da yazicidan bir e-mail mesajinin çiktisini almak ve bunlari
yaparken bir taraftan da internetten bir dosya indirmek kesinlikle
mümkündür.
? Çok kullanici: Bir çok kullanicili isletim
sistemi, çok sayida farkli kullanicinin es zamanli bir sekilde
bilgisayarin avantajlarindan yararlanmasina izin verir. Isletim
sistemi kullanicilarin tümünün ihtiyaçlarinin dengeli bir sekilde
karsilandigindan ve herhangi bir problemde bir kullanicinin bütün
kullanicilari etkilememesi için kullanilan her bir programin
ayrilmis kaynaklardan yeterli bir sekilde yararlandigindan emin
olmalidir. Bu isletim sisteminin örneklerini Unix, VMS ve büyük
bilgisayar isletim sistemleri, örnegin MVS olarak siralayabiliriz.
Bir agi destekleyen çok kullanicili isletim sistemleriyle tek
kullanicili isletim sistemlerini birbirlerinden ayirmak çok
önemlidir.
Windows 2000 ve Novell Netware, yüzlerce hatta binlerce ag
sebekesi kullanicilarini destekleseler de, bu isletim sistemlerinin
kendileri gerçek çok kullanicili isletim sistemleri degillerdir.
Sistem yöneticisi (administrator) Windows 2000 ya da Netware'in tek
kullanicisi"dir. Ag destegi ve bütün uzaktaki kullanicilarin
sisteme girisleri isletim sistemi tarafindan yönlendirilen Network
tarafindan yapilir. Sistem yöneticisi isletim sisteminin yetkili
kullanicisidir.
Sira, bir isletim sisteminin temel islevlerini incelemeye
geldi. Yukarida saydigimiz farkli tip isletim sistemlerini
aklimizda tutarak, isletim sistemlerinin temel islevlerini gözden
geçirelim.
Uyandirma çagrisi
Bir bilgisayar çalismaya basladiginda harekete geçen ilk
program, sistem donanimlarinin uygun bir sekilde çalisip
çalismadigini kontrol eden bilgisayarin ROM'unda (Read Only
Memory/Sadece Okunabilir Bellek) muhafaza edilen komut setidir. Bu
ilk açilistaki bilgisayarin kendi kendini testi (POST/Power On Self
Test) sirasinda, islemci, bellek ve BIOS'ta (Basic Input Output
Systems, temel giris çikis sistemleri) hatalar olup olmadigi
kontrol edilir ve sonuç özel bir bellek alanina kaydedilir.
POST islemi basarili bir sekilde tamamlandiginda, ROM'da
yüklü olan yazilim (bazen firmware de denir), bilgisayarin disk
sürücülerini etkinlestirmeye baslayacaktir. Çogu modern
bilgisayarlarda, bilgisayar sabitdisk sürücüsünü
etkinlestirdiginde, isletim sisteminin ilk parçasini bulur: Ön
yükleyici (bootstrap loader)...
Tek bir islevi olan bu küçük programa ön yükleyici (bootstrap
loader) denir: Ön yükleyici bellek içine isletim sistemini yükler
ve onun çalismaya baslamasina izin verir. En temel biçimde ön
yükleyici, küçük sürücü programlarini arayüzleriyle birlikte kurar
ve bilgisayarin çesitli alt sistem donanimlarini kontrol eder.
Isletim sisteminin tuttugu bellegin bölümlerini, kullanici
bilgilerini ve uygulamalari kurar. Bilgisayarin uygulamalari ve alt
sistemleri arasinda iletisim trafigini ayarlayan çok sayida
sinyali, sag'leri ve semaforlari tutan veri altyapilarini
olusturur. Ardindan da, bilgisayarin kontrolünü isletim sistemine
birakir.
Genelde isletim sisteminin görevleri, 6 kategoride ele
alinir.
?Islemci yönetimi
?Bellek yönetimi
?Cihaz yönetimi
?Depolama yönetimi
?Uygulama arayüzü
?Kullanici arayüzü
alti görevden daha fazlasini yaptigini söyleyenler olsa da ve
bazi isletim sistemi saticilari çok daha yardimci ve faydali islevi
kendi isletim sistemlerinde insa etseler de, bu temel 6 görev,
bütün isletim sistemlerinin özünü tanimlar.
Simdi de sira, tüm bu fonksiyonlarin islemesinde kullanilan,
isletim sisteminin araçlarina bakmaya geldi.
Islemci yönetimi
Islemci yönetiminin özü iki ilgili konuya
indirgenebilir.
? Düzgün bir sekilde görevi yerine getirmek için uygulama ve
islemlerin yettigi kadar islemci zamani almasini saglamak.
? Gerçek is için mümkün olan sayida islemci döngüsünü
kullanmak. Isletim sistemi tarafindan islemlerin siralanmasi için
uygulamaya konan temel yazilim birimi islemci tarafindan
çalistirilir;
Isletim sisteminin yapisina göre islem ya da izlek (thread)
tarafindan.
Bir islemin bir uygulama gibi oldugunu düsünmek çok caziptir,
fakat bu islemcilerin donanim ve isletim sistemiyle nasil
iliskilendirilebilecegine dair tamamlanmamis bir resim verir. Sizin
gördügünüz uygulama (bir kelime islemci ya da grafik ya da bir
oyun) aslinda, bir islemdir, fakat bu uygulama cihazlarin
birbiriyle ya da bilgisayarin diger bilgisayarlarla iletisim
kurmasi gibi çesitli görevler için birçok diger islemin baslamasina
sebep olur. Ayrica, hep orada olup da size çalistigina dair bir
kanit vermeye gerek duymadan çalisan çok sayida islem vardir. Bir
islem, bir kullanici tarafindan, diger uygulamalar tarafindan ya da
isletim sistemi tarafindan kontrol edilebilen ve bazi hareketlerin
yapilmasini saglayan yazilimdir.
Bu, bir uygulamadan daha ziyade, isletim sisteminin merkezi
islemci birimi (CPU) vasitasiyla uygulanmak üzere kontrol edip ve
planladigi bir islem ya da süreçtir. Tek görevli sistemlerde,
çizelge ya da planlama dosdogru gider ya da tek yönlüdür. Isletim
sistemi, kullanici girisi ve kesilmelerde yürütmeyi belirli bir
süre askiya almak disinda, uygulamalarin çalismaya baslamasina izin
verir. Kesmeler (interrupt) donanim ya da yazilimlar tarafindan
CPU'ya gönderilen özel sinyallerdir. Çok canli bir toplanti
sirasinda, CPU'nun dikkatini çekmek üzere bilgisayarin bazi
parçalarinin birdenbire ayni anda ellerini kaldirmalarina
benzetilebilirler. Bazen isletim sistemi islemlerin önceligini
planlayarak, kesmeleri saklar ya da tutar. Bu, isletim sisteminin
belirli isin mümkün olan en hizli zamanda bitmesi için kesmeleri
bazi kaynaklara göstermemesi demektir.
Bellekle ilgili problemler ya da hata durumlarindaki gibi
bazi kesmeler, o kadar önemlilerdir ki asla görmezlikten
gelinemezler. Bu gizlenemez kesmelerle (nonmaskable/NMIs), diger
görevlerin ne olduguna bakmaksizin, mümkün oldugunca en hizli bir
sekilde ilgilenilmelidir.
Kesmeler, tek görevli sistemlerde islemlerin yürütülmesinde
bazi karisikliklara yol açsalar da, isletim sisteminin isi bir çok
görevli sistem içinde çok daha karmasik olacaktir. Simdi, isletim
sistemi uygulamalarin çalismasini düzenlemelidir, öyle ki siz
böylece birkaç seyin bir anda olduguna inanirsiniz. Bu çok
karmasiktir, çünkü CPU belirli bir zamanda sadece tek bir sey
yapar. Ayni zamanda birçok seyin bir arada olabildigi görüntüsünü
vermek için, isletim sistemi bir saniyede binlerce kez birbirinden
farkli islemler arasinda bir degis tokus yapmak zorundadir.
Bunun nasil oldugunu asagidaki sirali açiklamadan
izleyebilirsiniz:
? Bir islem RAM'in (Random Access Memory/Rasgele Erisim
Bellegi) belirli bir kismini isgal eder. Ayni zamanda, CPU ve
isletim sisteminin bellek alani içinde kaydin girisini yapar,
siralar ve bu kayitlari yigar.
? Iki islem çok görevli oldugu zaman, isletim sistemi belirli
bir sayida CPU çalisma döngüsünü bir programda paylastirir.
? Bu döngülerin siralanmasindan sonra, isletim sistemi bütün
kayitlarin kopyalarini çikarir, islemler sirasinda kullanilmis
olanlari siralar ve yigar ve bu yürütmenin içinde hangi islemlerin
durdurulacagini not eder.
?Ardindan ikinci islem tarafindan kullanilan bütün kayitlari
yükler, yigar ve siralar ve belirli bir sayidaki CPU döngüsüne izin
verir.
?Bunlar tamamlandiginda, ikinci program tarafindan
kullanilmis bütün kayitlarin kopyasini alir, yigar ve siralar ve
birinci programi yükler.
Bu degisimler sirasinda, bir islemin izlerini muhafaza etmek
için ihtiyaç duydugu bütün bu bilginin içinde tutuldugu veri
paketine, islem kontrol blogu (process control block) denir. Bir
islem kontrol blogu sunlari kapsar;
?Islemi tanimlayan bir kimlik numarasi,
? Program içindeki yerlesimlerin ve islemin en son görüldügü
yerin verilerinin göstergeleri,
?Kayit içerigi,
?Çesitli bayrak (sag) ve anahtarlarin durumu,
? Islem için gereken bellegin alt ve üst sinirlarinin
göstergeleri,
? Islem tarafindan açilan dosyalarin listesi,
?Islemin önceligi,
?Islem tarafindan ihtiyaç duyulan giris-çikis (I/O)
cihazlarinin konumu...
Islemin statüsü degistiginde, (örnegin aktif durumdan bekleme
durumuna ya da askiya alinmis konumdan çalismaya geçtiginde) islem
kontrol blogu içindeki bilgi, herhangi baska bir programda oldugu
gibi, isletim sisteminin görev anahtarlama bölümünün dogrudan
isledigi veriler gibi kullanilmalidir.
Dogrudan kullanici müdahalesi olmaksizin bu islem degis
tokusu olur ve her bir islem, makul bir zaman içersinde görevini
tamamlamak için yeterli CPU döngüsü alir. Eger kullanici ayni
zamanda birden fazla islemi bir arada çalistirmak isterse, basini
belaya sokabilir. Isletim sisteminin kendisi, uygulama islemlerinin
yigin ve siralari olmak üzere bütün kayitlarini muhafaza etmek veya
degis tokus yapmak için bazi CPU döngülerine ihtiyaç duyar. Eger
yeterli islem baslatilirsa ve eger isletim sistemi dikkatli bir
sekilde tasarlanmamissa, sistem, çalismaya devam eden islemler
yerine islemler arasindaki degis tokus için CPU döngülerinden
kullanilmaya hazir olanlarin büyük bir çogunlugunu kullanmaya
baslayabilir.
Böyle bir sey oldugu zaman bu durum sistemin çökmesi
(thrashing) olarak adlandirilir ve genellikle islemlerin
durdurularak düzeninin yeniden saglamasi için kullanici
müdahalesine ihtiyaç duyulur.
Iletim sistemi tasarimcilari için çökme ihtimallerini
azaltmanin yolu, çok çesitli görevlerin sergilenmesi için yeni
islemlere olan ihtiyaci azaltmaktir. Bazi isletim sistemleri izlek
(thread) adi verilen modüller kullanirlar. Bu modüller normal
islemlerin gerektirdigi bütün CPU yogunluklu islerle ugrasir, ama
çesitli giris/çikis islemleriyle ugrasmaz... Bir islem birçok izlek
ya da farkli islemlerle baslayabilir, fakat bir izlek bir islemle
baslamaz.
Simdiye kadar tartistigimiz planlamalarin hepsi sadece bir
CPU ile ilgiliydi. Iki ya da daha fazla CPU olan bir sistemde,
isletim sistemi is yükünü CPU'lar arasinda bölüstürmeli, gerekli
islemlerin taleplerini farkli CPU'lar üzerindeki mümkün olan
döngülerle dengelemeye çalismali. Simetrik olmayan isletim
sistemleri kendi ihtiyaçlari için bir CPU kullanir, uygulama
islemlerini ise geri kalan CPU'lar arasinda bölüstürür. Simetrik
isletim sistemleri kendilerini çesitli CPU'lar arasinda
bölüstürürler, dengelenmis talep ile isletim sisteminin kendisinin
çalismasinin devam ettigi zamanlarda dahi mevcut CPU'larla karsi
karsiyadir. Isletim sistemi eger yürütme ihtiyacindaki tek bir
yazilim olsa dahi, CPU planlama için tek bir kaynak degildir. Bütün
islemlerin düzgün bir sekilde çalistigindan emin olmak için gereken
bundan sonraki en önemli adim bellek idaresidir.
Bellek ve depolama yönetimi
Bir isletim sistemi bilgisayarin bellegini yönettigi zaman,
tamamlanmasi gereken iki büyük görev vardir:
? Her islem yürütme içersinde yeterli bellege sahip olmalidir
ve bir baska islemin bellek alaninda çalisamayacagi gibi baska bir
islem tarafindan da çalistirilamaz.
? Her bir islemin en etkin bir sekilde çalismasi için
sistemdeki farkli bellek tiplerinin uygun bir sekilde kullanilmasi
gerekir.
Isletim sisteminin yapmasi gereken birinci görev, yazilim
biçimleri ve bireysel uygulamalar için bellek sinirlari (memory
boundaries) olusturmaktir.
Bir örnek verirsek, 128 megabyte'lik RAM'e sahip bir
sistemimizin oldugunu farz edelim. Baslangiç islemi sirasinda bizim
hayal ürünü bilgisayarimizin isletim sistemi mümkün olan bellegin
en üstüne gitmek ve ardindan isletim sisteminin kendisinin
ihtiyaçlariyla bulusmak üzere yeterli bir sekilde geri dönmek için
tasarlanmistir. Isletim sisteminin çalismak için 64 MB'a ihtiyaç
duydugunu farz edelim. Simdi, isletim sistemi RAM havuzunun en
altina gider ve bilgisayarin donanim alt sistemlerini kontrol etmek
için gereken çesitli sürücü yazilimlari insa etmeye baslar. Bizim
hayal ürünü bilgisayarimizda, sürücüler sadece 30 MB'i alabilirler.
Isletim sisteminin tamamen yüklenmesinin ardindan da, geriye
uygulamalarin çalismasi için 34 MB kaliyor. Uygulamalar bellege
yüklenmeye baslandigi zaman, isletim sistemi tarafindan belirlenmis
bir blok boyutuna yüklenir. Eger blok boyutu 2 kilobyte ise,
yüklenmis her bir islem, boyutu 2 kilobyte'in kati olan bir bellek
parçasi olusturur. 8 ya da 4 byte'lik kelimelerden olusmus sinirlar
üzerindeki bloklarin baslangiç ve bitisiyle birlikte, uygulamalar
bu sabitlenmis blok boyutuna yüklenir. Bu bloklar ve sinirlar
uygulamalarin yetersiz hesaplanmasindan dolayi baskasinin alanina
yüklenmemesini saglamaya yardim eder. Burada en önemli soru, tüm bu
garanti yöntemlerine ragmen, 34 MB'lik uygulama alani doldugunda ne
yapilacagidir.
Birçok bilgisayarda, orijinal kapasitenin üstüne yeni bellek
eklemek mümkündür. Örnegin, RAM'i 128'den 256 megabyte'a
yükseltebilirsiniz. Böyle bir sey yapmak gayet mantiklidir, fakat
göreceli olarak da epey pahaliya patlayabilir. Ayni zamanda
hesaplamanin temel bir gerçegini de görmezden gelir; bir
uygulamanin bellege kaydettigi bilgilerin çogu verili bir zamanda
kullanilmaz. Bir islemci bir zamanda sadece bir yerdeki bellek
içerigine erisebilir, böylece RAM'in büyük bir kismi herhangi bir
anda kullanilmamis olur. RAM ile karsilastirildiginda disk alaninin
daha ucuz olmasina karsi, bilginin RAM'den sabitdisk'e hareket
edisi, RAM alanini masraf olmaksizin genisletir. Bu teknik, sanal
bellek yönetimi (virtual memory management) olarak
adlandirilir.
Disk deposu, sadece isletim sistemi tarafindan yönetilmek
zorunda olan bir bellek tipi ve ayni zamanda en yavas olandir. Bir
bilgisayar sistemindeki bellek tiplerini hiza göre
siralarsak;
Yüksek hizli önbellek (cache):
En hizli baglantilarla CPU kullanimina sunulan, göreceli
olarak küçük ama en hizli bellektir. Önbellek (cache)
denetleyicileri (controller), CPU verilerinin hangi parçasinin bir
sonrakine ihtiyaç duyacagini ve hangisinin ana bellekten bunu çekip
sistem performansini hizlandirmak için yüksek hizli önbellek içine
çekecegini önceden tahmin ederler.
Ana bellek (main memory):
Bu RAM'dir. Bir bilgisayar aldiginizda, RAM'in megabyte'larla
ölçüldügünü görürsünüz.
Ikincil bellek (secondary memory):
Çogunlukla kullanima uygun veri ve uygulamalari muhafaza eden
manyetik depolamanin dönüsümünün bir çesididir ve isletim
sisteminin kontrolü altindaki sanal RAM gibi hizmet verir.
Isletim sistemi çesitli islemlerin ihtiyaçlariyla farkli
bellek tiplerinin uygunlugunu dengelemeli, islem sirasinin
gerektirdigi bir sekilde verileri mevcut bellekler arasinda blok
blok (yani sayfalar halinde) tasimalidir.
Cihaz yönetimi
Bütün sanal donanimlar (yani bilgisayarin anakarti üzerinde
olmayanlar) ile isletim sistemi arasindaki yolu, sürücü adi verilen
özel programlar kurar. Bir sürücünün üstlendigi islevlerin büyük
bir bölümü, donanim alt sistemlerinin elektrik sinyalleri ile
uygulama programlari ve isletim sisteminin üst düzey programlama
dilleri arasinda çevirmenlik yapmaktir. Sürücüler, isletim
sisteminin dosya olarak tanimladigi verileri alir ve onlari
depolama cihazlarinin üzerindeki özel yerlerde bulunan bit akisina
ya da yazicida bir lazer darbecikleri dizisine çevirir. Çünkü,
sürücülerin kontrol ettigi donanimlar arasinda ve sürücü
programlarinin islevlerini yerine getirme biçimleri arasinda çok
büyük farklar vardir, fakat bunlarin çogu ilgili cihaza gerek
duyuldugunda çalistirilir; sürücü programlari da baska herhangi bir
islem gibi islev üstlenir. Isletim sistemi sürücülere sik sik
yüksek öncelikli bloklar verir ve böylece donanim kaynaklari
serbest kalabilir ve olabildigince hizli bir sekilde yeniden
kullanilmaya hazir hale getirilir. Sürücülerin isletim sisteminden
ayri olmasinin baska bir sebebi de, isletim sisteminin kendisini
yenilemek, yeniden derlemek ve çesitli görevlerle donatmak geregi
duyulmaksizin sürücülerin -ve dolayisiyla donanim alt
sistemlerinin- yeni islevler üstlenmelerine imkân vermektir. Yeni
donanim cihaz sürücülerinin gelismesiyle birlikte, (ki bu gelisme
isletim sistemini üreten firmalardan çok alt sistem üreticileri
tarafindan saglanir ya da bunun maliyeti yine alt sistem
üreticileri tarafindan karsilanir) bütün sistemin giris/çikis
yetenekleri bir hayli artiriliyor.
Giris ve çikisi yönetmek aslinda büyük ölçüde islemlerin
siralanmasini, tampon bellekleri, bir cihazdan (diyelim ki bir
klavye ya da bir seri porttan) bit akisini alan, bu bitleri tutan
ve bunlari CPU'ya isleyebilecegi bir hizda gönderen özel depolama
araçlarini yönetmektir. Bu islev özellikle çok sayida islem
yapildiginda ve islemcinin basini kaldirmaya vakit bulamadigi
zamanlarda çok önemli bir hal alir. Isletim sistemi, bir tampon
bellege, bir cihazdan girisleri almaya devam etmesi, fakat giris
islemi askiya alindiginda CPU'ya veri göndermeyi durdurmasi için
komut verecektir. Ardindan, girise ihtiyaç duyan islem yeniden
aktif hale getirildiginde, isletim sistemi tampon bellege verileri
göndermesi için komut verecektir.
Bu islem, bir klavyeyle ya da bir modemin harici
kullanicilarla ya da bilgisayarlarla büyük bir hizla basa çikmasini
saglar; hatta CPU'nun bu kaynaklardan gelen girisleri kullanamadigi
zamanlarda bile...
Bilgisayar sisteminin bütün kaynaklarini idare etmek, isletim
sisteminin en önemli islevleri arasindadir ve gerçek zamanli
isletim sistemleri söz konusu oldugunda gereken islevlerin
neredeyse tamami bundan ibarettir. Diger isletim sistemlerine
gelince...
Uygulamalar ve insanlar için kullanilacak görece basit ve
tutarli bir yol bulma imkani varsa da donanimin gücü bu isletim
sistemlerinin var olma sebebinin asli parçasidir.
Uygulama Arayüzü
Nasil ki sürücüler uygulamalara donanimin isleyisinin bütün
ayrintilariyla bilmeksizin donanim alt sistemlerinden yararlanma
imkani veriyorsa, uygulama program arayüzleri (APIs/application
program interfaces) uygulama programcilarina, dogrudan dogruya CPU
isleyisinin bütün ayrintilarinin izini sürmeksizin, bilgisayarin ve
isletim sisteminin islevlerini kullanmalarina izin verir. Bunun
neden bu kadar önemli oldugunu anlamak için, verileri tutacak bir
sabitdisk dosyasinin olusturulmasi örnegine bakalim. Bir bilimsel
araçtan veri kaydetmek için bir uygulama yazan bir programci, bilim
adamina yaratilan dosyaya bir isim vermek imkani tanimak
isteyebilir. Isletim sistemi, dosya yaratmak için MakeFile adli bir
API islevi saglayabilecektir. Programi yazarken, programci araya
asagidaki gibi bir satir girecektir. MakeFile [1, %Name, 2] Bu
örnekte, komut, isletim sistemine kendi verilerinin rasgele
girisine izin verecek (1), kullanicinin girdigi bir ismi alacak
(%Name) bir dosya yaratmasini ve bu dosyanin, içine depolanmis
verilerin büyüklügüne göre degisen bir ölçü almasini (2)
söyler.
Simdi de, isletim sisteminin bu komutu eyleme geçirmek için
ne yaptigina bakalim. Isletim sistemi disk sürücüsüne, mevcut ilk
serbest depolama konumunun yerini sorar. Bu bilgiyle birlikte
isletim sistemi, dosya sisteminde dosyanin baslangiç ve bitis
konumlarini, dosyanin adini, dosyanin tipini, dosyanin bir arsiv
dosyasi olup olmadigini (yani hangi kullanicinin dosyaya bakma ya
da onu biçimlendirme izninin oldugunu), dosyanin ne zaman
yaratildigini gösteren bir giris izni yaratir.
Isletim sistemi dosyanin baslangicina dosyayi tanimlayan,
olasi erisim tipini belirleyen ve dosyayi uygulamaya baglayan diger
bilgileri içeren bilgileri yazar. Bu bilgilerin tümü, disk sürücüsü
ile dosyanin baslangiç ve bitis noktalarinin adresleriyle ilgili
sorgular, büyük ölçüde disk sürücüsünün modeli ile üreticisinin
belirledigi formatlardadir.
Programci disk depolamada API kullanacak programini
yazdigindan, komut kodlariyla, veri tipleriyle ve olabilecek her
tür sabitdisk ve bant sürücüsüne response kodlariyla ugrasmasi
gerekmez. Çesitli donanimin alt sistemlerini kontrol etmek için
sürücülere bagli olan isletim sistemi, bir donanimdan öbürüne
farklilik gösteren ayrintilarla ugrasir. Programcinin API için kod
yazmasi yeter, gerisini isletim sistemi halledecektir. API'ler
yakin zamanlarda bilgisayar sektörünün en hararetli rekabet
alanlari arasina girdi.
Kullanici arayüzü
Nasil ki API, uygulamalara bilgisayar sisteminin kaynaklarini
kullanmalari için tutarli bir yol sagliyorsa, bir kullanici arayüzü
(UI/User Interface) kullanici ile bilgisayar arasindaki etkilesimi
yapilandirir. Son on yil içinde, kullanici arayüzündeki
gelismelerin neredeyse hepsi, grafik kullanici arayüzü
(GUI/graphical user interface) alaninda görüldü. Bunun da iki model
üzerinde yogunlastigini izledik:
Apple'in Macintosh'u ve Microsoft'un Windows'u...
Baska isletim sistemlerinde baska kullanici arayüzleri de
var. Sözgelimi, Unix, "shell" (kabuk) olarak adlandirilan bir
kullanici arabirimi sunuyor. Bu kabuklar standart isletim
sisteminin metin tabanli arayüzünden çok daha esnek ve güçlü. Korn
Shell ve C Shell gibi programlar metin tabanli arayüzlerdir, önemli
yararli araçlar sunanlar, fakat asil amaçlari isletim sisteminin
fonksiyonlarini yürürlüge koymak ve kullanicilara kolaylik
saglamaktir. Baska grafik kullanici arayüzleri de vardir. Gnome ya
da X-Windows gibi...
Bunlar kullanicilarin görüs açilarindan Unix ve Linux gibi
isletim sistemlerini Macintosh ve Windows'lara benzetir.
Bu örneklerin hepsinde kullanici arayüzünün isletim
sisteminin üstünde bir katman gibi yer alan bir program ya da bir
programlar setinden olustugunu unutmamakta fayda vardir. Farkli
mekanizmalara sahip olsalar da, Windows ve Macintosh isletim
sistemleri için de dogrudur bu. Isletim sistemi fonksiyonlarinin
özü, yani bilgisayar sisteminin yönetilmesi isletim sisteminin
çekirdeginde yatar. Altta yatan çekirdege siki sikiya bagli olsa
bile ekran yöneticisi (display manager) ayridir. Isletim sisteminin
çekirdegi ile kullanici arayüzü, yararli araçlar (utilities) ve
baska yazilimlar arasindaki bag, bugünün isletim sistemlerindeki
farkliliklari belirler ve gelecekte de belirlemeye devam
edecektir.
Curt Franklin
Copyright 2000 HowStuffWorks.com