Error reading XSLT file: \xslt\[UmBox]ListMedia.xslt

Bookmark and Share

Isletim Sistemi Nasil Çalisir?

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

Özdemir Oto Kiralama

Avukat Nilay ERGÜN