İşletim Sistemleri Neyi İşletir? NE
İşletim Sistemi (İS) kavramı 25 yılını doldurmuş durumda ve bugün çok çeşitli tipte örnekleri mevcut. Üzerine çok sayıda kitap yazılmış olan bu konu artık olgunlaşmış olmasına rağmen, gene de bazı temel sorular sürekli soruluyor: İşletim sistemi nedir; fonksiyonları nelerdir; diğer yazılım unsurlarıyla nasıl bağlantı kurulmalıdır; bir kullanıcı için ne ifade eder; hassas, doğru ve güvenli sistemler nasıl oluşturulabilir.
Harold Lorin'den derleyen Şahin BEYGU
Yakın zamanda bu alanda gerçekleşen yenilikler, donanımların kapasite ve maliyetlerindeki önemli değişikliklerin sonucudur. Bu yenilikler yeni bilgisayar tipleri ve yeni kullanıcı tiplerine zemin sağlamıştır. Nitekim, yoğun olarak paylaşılan çok büyük on-line (çevrim-içi) veri tabanı yönetim sistemlerinden, küçük kişisel bilgisayarlara kadar çok çeşitli özel kapasiteleri bulabilmek artık mümkün. İşletim sisteminin donanımdaki akış içindeki rolü, kullanım kavramları ve hızla değişen ekonomik tablolar yeniden keşfediliyor. Ek olarak, yazılım mühendisliği ve programlama yöntemindeki yeni kavramlar, işletim sisteminin nasıl oluşturulması ve kullanıcıya nasıl verilmesi gerektiğine ilişkin temel görüşleri etkiliyor.
Çalıştığı donanımın yapısı bir tarafa bırakılırsa, bir işletim sisteminin tasarımını etkileyenler arasında sisteme getirilen iş yükünün çeşidi, sistemi kuran ve bakımını sürdüren kişilerin düzeyi, uygulama amacıyla sistemi kullanan kişilerin niteliği sayılabilir. Genelde; bir işletim sisteminin temel fonksiyonları şunlardır: 1. Kullanılacak fiziksel araçlara göre, çalışılması daha uygun olan mantıksal araçlar kullanarak soyut bir makine tasarlamak. 2. Paylaşılan bir çevrenin doğruluk ve tutarlılığını sağlamak üzere bu çevredeki mantıksal ve fiziksel araçların kullanımını kontrol etmek. 3. Bilgisayarın olanaklarını (araçlarını), bu araçların kullanım yoğunluğuna ve kullanıcıya cevap ölçüsüne bağlı olarak ayıracak kararları yorumlamak ve uygulamak; kullanıcılar arasında araçların paylaşım çekişmesini çözmek. Kuşkusuz bu kadar geniş bir fonksiyonlar öbeği; özel fonksiyonların mevcudiyetine, özel bir fonksiyon için sağlanan desteğin düzeyine ve fonksiyonların birbirleriyle bağıntı biçimlerine bağlı olarak hayli çeşitlilik getirir. Büyük makinelerin olanaklarını verimli yönetmek üzere çok çeşitli organizasyon tipleri vardır. Ek olarak bunlar tek kullanıcılı küçük sistemlere program geliştirme araçları sağlayan işletim sistemlerinin kullanıcısına da hizmet sunabilirler.
İŞLETİM SİSTEMLERİNİN ÇEŞİTLERİ
İşletim sistemlerini sınıflamaya temel olarak resmi bir sınıflandırma şeması gerçekte yoktur. Sınıflamada daha çok, kullanıcıya sunulan arabirimlerin yapısı ve sağlanan fonksiyonun genelliği gibi birbiriyle kesişen, yer yer örtüşen ölçütler kullanılmaktadır. Kullanım ve donanım tiplerindeki yenilikler işletim sistemi tiplerinin sayısını da sürekli değiştirmektedir. Bugün mevcut sistemler anahatlarıyla aşağıdaki tiplere ayrılabilir.
Genel Amaçlı Büyük
İşletim Sistemleri
Bu sınıftaki sistemler esas olarak büyük makineler içindir. Farklı kullanım çeşitlerinden oluşan bir çevreye sahip makinenin çok sayıdaki aracını yönetmeye yöneliktirler. İşletim sistemi burada on-line ya da batch (deste) durumunda çalıştırılan uygulama programlarına hizmet verebileceği gibi, sırasında uygulama programlarını destekleyici bir ortam oluşturan bir alt-sisteme de destek sağlayabilir. Çağdaş bir büyük işletim sisteminin hizmet sunabileceği alt-sistemler veri tabanı yönetimi, program geliştirme, hatta kişisel bilgisayar sistemlerini kapsar. Bu tür büyük işletim sistemleri arasında IBM'in MVS'si, UNIVAC'ın OS 1100'ü, Honeywell'in HECOS ve MULTICS'i sayılabilir.
Gerçek Zamanlı İşletim
Sistemleri
Sıkı zaman kısıtları içinde çalıştırılması gereken tek bir uygulamanın bulunduğu bir çevre için, genel amaçlı büyük işletim sistemleri çoğu durumda uygun değildir. Bunlarla kıyaslandıklarında gerçek zamanlı işletim sistemleri daha az fonksiyona ve farklı bir yapıya sahiptir. Sundukları tek hizmet, izleme altındaki bir olay grubuna bilgisayarın belirli periyotlar içinde ve en kısa sürede cevap vermesidir. Örneğin füzelerin konumunu izlemekte kullanılan sistem, klasik bir gerçek zamanlı işletim sistemidir. Gerçek zamanlı işletim sistemleri kimi zaman, destekleyecekleri uygulama için özel olarak yazılır. Bu durumda yalnızca uygulama için gerekli fonksiyonları kapsarlar ve donanımın verimli kullanımını izlemek daha az zahmetlidir. Cevap süresi öylesine önem taşır ki, fonksiyonların zamanında yürütülmesini sağlamak için makinenin verimliliğinden fedakarlık edilebilir. Genelleştirilmiş gerçek zamanlı işletim sisteminin en eski örneği UNIVAC 490 için yazılan Omega sistemidir. Diğer sistemler arasında IBM'in Havaalanı Kontrol Programı (şimdi havacılık endüstrisinin yanısıra bankacılıkta da kullanılıyor), Data General'in RDOS'u ve Digital Equipment'ın PDP-1'i için geliştirilen çeşitli işletim sistemleri sayılabilir. Gerçek zamanlı işletim sistemlerinde kullanılan tasarım yaklaşımı, “mini” ve “mikro” bilgisayarların işletim sistemlerini tasarlamada da sık sık kullanılmaktadır. Fonksiyonun ve genel masrafların en aza indirilmesi kimi zaman on-line sistemi bulunan diğer ortamlarda da uygun olmaktadır. Bu durum özellikle, uygulama geliştiren uzman programcıların, daha küçük bir makine kullanırken uygulamalarına temel olacak bir ana işletim sistemi gereksindiği yerlerde geçerlidir. Intel'in RMX-80'i bu tür mikroişlemcili işletim sistemlerine örnek olarak verilebilir.
Tek Kullanıcılı İşletim
Sistemleri
Bilgisayarların maliyeti, kişisel kullanımı mümkün kılacak ölçüde düşmüştür. Böyle sistemler, maksimum kullanım kolaylığı sağlamaları ve minimum mesleki destek gerektirmeleri amacıyla yapılır. Bu tür ortamlarda, verimli kullanıma ilişkin işletim sistemi fonksiyonları tümüyle ortadan kalkma eğilimindedir. Hatta kullanıcı, böyle nitelikler taşıyan bir işletim sistemiyle karşı karşıya bulunduğunu fark etmeyebilir bile. Kişisel bilgisayar sistemleri kullanıcıya, veri ve program yalama ve üzerinde değişiklik yapma ya da sınıflama gibi bir dizi temel veriişleme fonksiyonu sağlamaktadır. Bu işletim sisteminin özellikleri kurulmalarını kolaylaştırır, üstelik kullanılmaları mesleki hazırlık da gerektirmez.
Program Geliştirme
Sistemleri
Genel amaçlı sistemler, hem program geliştirme hem de üretmeye yönelik, gerçek zamanlı sistemler ise neredeyse yalnız üretmeye yönelik hizmetlerle donatılmıştır. Bunların dışında, esas olarak kişisel bilgisayarlarda geliştirilen programlardan daha zengin ve karmaşık programlar geliştirmeyi destekleyen bir tür de bulunmaktadır. Program geliştirme araçları, tüm yüksek düzeyli program dilleriyle derleyici hizmetlerini, program modül yönetimi, düzenleme, deneme, hata bulma (debug) işlemlerini kapsar. Yukarıda sözedildiği gibi, programlama sistemleri genel amaçlı büyük işletim sistemlerinin alt-birimleri olabilir; ayrıca, programlama fonksiyonuna tahsis edilecek makineler için kendi başına çalışan (stand-alone) işletim sistemleri durumuna da getirilebilirler. UNIX işletim sistemi, program geliştirme ortamlarında kullanılabilme özelliğiyle önem taşımaktadır. IBM'in VM'i de yaygın olarak kullanılan bir diğer program geliştirme sistemidir.
İŞLETİM SİSTEMİNİN FONKSİYONLARI
Buraya kadar genel olarak işletim sistemi tiplerinin ayrımlarını gözden geçirdik. Şimdi işletim sistemlerinin bazı özgül fonksiyonlarını ayrıntılarıyla inceleyeceğiz.
İşlemci Yönetimi
Adından da anlaşılacağı gibi işlemci yönetimi, işlemcilerin yönetimi için hazırlanmış bir dizi program demektir. Bunlar arasında girdi/çıktı talebinin tamamlanması gibi sisteme ilişkin bir olay nedeniyle programın yarıda kesilmesini ve sonra da doğru biçimde yeniden işleme girmesini sağlayan kesinticiler (interrupt handlers), sistemi paylaşan bir dizi program arasında işlemcinin ilgisini bir programdan diğerine kaydıran gönderici (dispatcher) program, iki programın bir sistem hatasına yolaçabilecek biçimde aynı kaynağı kullanmalarını engelleyen programlanmış mekanizma sayılabilir. İşlemci yönetiminin ayrıntıları, işletim sistemini çalıştıran işlemcinin özgül yapısına bağlıdır. Kesinti ve görev kaydırma işlemlerinin ikisinde de, program verilerinin belleğin belirli bir yerinde bir sicilin içindekiler gibi saklanması sözkonusudur; böylece, durdurulan program doğru biçimde yeniden işleme sokulabilir. Görev kaydırma program statüsünün depolanmasını, arkadan gelecek olan programın statüsünün işlemci sicillerine kaydedilmesini ve belki de yeni program için bir tür ilk bellek yükünün oluşturulmasını içerir. Yeni program, bilgisayarda kullanılacak programları kapsayan bir gönderme listesinden seçilir. Zaman paylaşımının ya da çoklu programlamanın sözkonusu olduğu ortamlarda, bir terminal üzerinde, ya da batch'li bir program karışımı haliyle işlem gören programların aralıklı olarak çalıştırılıp durdurulmaları yaygın rastlanan bir durumdur.
Bellek Yönetimi
Bellek yönetimi, bir sistemin bellek içeriğini yöneten bir dizi program anlamına gelir. Bu yönetim, programların belleğe yerleştirilmelerini, program parçaları ve verilerin belleğe ve saklayıcı ortamlara giriş çıkışlarını düzenler. Belleğin yönetimi statik ya da dinamik olabilir. Statik durumda programın tümü, çalıştığı süre boyunca bellekteki konumunda tutulur. Dinamik yönetimde ise her kullanım anında programın gerekli parçası, her defasında farklı bir bellek bölgesine yerleştirilebilme olasılığıyla belleğe çağrılır.
Program Yönetimi
Program yönetimi, sistemde çalışmakta olan uygulama programlarını yöneten programlardan oluşur. Sistemin bazı kaynaklarına yerleşmiş ve sistemi kullanmak isteyen her program, işlem kontrol bloğu adı verilebilecek bir yapıyla temsil edilmektedir. Bu blok bir yazılım olarak tanımlanmış, uygulanacak kodu ve gerekli verileri saptayan bir yapıdır. Görev aktarımı için durdurulan bir program için saklanan siciller, o programı temsil eden işlem kontrol bloğunda depolanır. Sistemi kullanabilecek programların gönderme listesi bu kontrol bloklarının listesinden oluşur. Görev aktarımı, sırasını bekleyen işlemlerin işlemci tarafından belirli bir düzenle devreye sokulmaları etkinliğidir. Buna ek olarak bir işletim sistemi, işlemler (işlem kontrol blokları) oluşturma, işlemlerin birbirine mesaj göndermesini sağlama, işlem kontrol bloklarını silme, bu blokların çalışabilir ya da çalışamaz durumda olduklarını belirleme gibi özellikler de taşımalıdır. Bloke olmuş bir işlem kontrol bloğu, bir kaynağı kullanabilmeyi ya da bir olayın tamamlanmasını beklediği için çalışmayan bir programı temsil eder. Bir işletim sisteminin önemli bir fonksiyonu da, çalışmakta olan programlar arasında haberleşmeyi sağlayacak mekanizmaları oluşturmaktadır. Bu özelliğe genellikle işlemlerarası iletişim adı verilir. Böylece aralarında CALL/RETURN ilişkisi olmayan programlar iletişim kurabilmektedir.
Veri Yönetimi
Veri yönetimi, sistemin olanaklarını denetleme, tamponda boşluk bulma, girdi/çıktı isteğinde bulunan bir uygulama programı adına kayıt tutma ve girdi/çıktı isteklerinin statülerini saptayıp bildirmeye yönelik hizmetleri kapsar. Bunlara ek olarak genellikle, disk alanları üzerindeki alan dağılımını denetleme, on-line veri kataloglarını saklama, dosyaların kopyalama kontrollarını yapma fonksiyonları da vardır. Veri elemanları arasındaki karmaşık mantıksal ilişkiler ve sözlükler türünden daha kapsamlı bir veri yönetimi, veri tabanlı yönetim altsistemlerinde daha yaygın olarak görülür.
Kaynak Yönetimi
Kaynak yönetimi bir makinenin kullanımı ve kullanıcılara cevap verme yetisine ilişkin stratejiler uygulamak üzere öncelik, acillik gibi kavramlardan yararlanan bir dizi programdan oluşur. Büyük, çok amaçlı ve çok kullanıcılı sistemlerde işyükü ve kullanımın yönetimi özellikle önem taşır.
Bir işletim sisteminin gönderme listesi genel olarak, sistemin belirli kullanıcılara hizmet verme ve kaynakları verimli biçimde kullanmaya yönelik hedeflerini yansıtacak şekilde düzenlenir. Ayrıca IBM/MVS tipinde büyük bir işletim sisteminde, kaynak kullanımını ve programın ilerleyişini denetlemek üzere kesin sıra ve listeler de bulunabilir. Böylece işletim sisteminin planlama fonksiyonu, gönderme listesindeki düzene göre çalıştırılacak bir sonraki programın seçimi yanısıra, bir dizi programdan hangilerinin planlanmış belirli bir zaman aralığında işleme girmek için çekişebileceklerini belirlemeyi, sistemin tüm yükünü gözönüne alarak kaynakları kullanan program sayısını değiştirebilmeyi ya da belirli bir kaynağın yükünü değiştirebilmeyi vb. mümkün kılar. Çok kullanıcılı genel amaçlı büyük işletim sistemlerinde kaynak yönetiminin fonksiyonları da çok kapsamlı olabilir: Çeşitli kaynakların taşıdığı yük, belleğin, kanalların ve bilgi işlem biriminin kullanımına ilişkin sürekli veri toplanır. Ayrıca sistem, bir kullanıcıya sunulması amaçlanan hizmet düzeyinin yanısıra, kullanıcının öncelik durumuna göre gereksindiği hızda hizmet görüp görmediğini de gözönüne alır. Bir makinenin varolan durumunu kontrol etmek için zaman ve belleğin geniş tutulması şu gerekçeye dayanır: Kullanılan kaynakların, bunları verimli şekilde kullanmak için yapılan çok sıkı bir yönetim için harcanacak kaynaklara yetmemesi olasıdır. Yönetilecek daha az olan ve dolayısıyla kapasite-altı kullanılma riskiyle daha az karşı karşıya gelen küçük sistemler, evrensel olarak, pek hırslı denemeyecek kaynak yönetim stratejilerinden yararlanırlar. Kaynakların daha verimli kullanılmasıyla ulaşılacağı tahmin edilen düzey, en uygun kullanıma karar vermek için harcanan kaynakların altındadır.
Açık ve Kapalı
Fonksiyonlar
İşletim sisteminin bazı fonksiyonları, çalışmakta olan bir program tarafından, çalışma ortamında açık olarak çağrılır. İşletim sisteminin bu tür çağrıları WRITE, GET STORAGE, GET BUFFER SPACE, WAIT (bir olay için), CREATE PROCESS gibi fonksiyonlardır. Bu çağrılabilir fonksiyonların, bir makinenin komutlar dizisini tamamlayan ve karmaşık hizmetler sunan birtakım uzantıları olduğu düşünülebilir. İşletim sisteminin, işlenmemiş donanım kaynaklarından daha kolay yönlendirilebilen bir dizi soyut kaynak sağlayan yönü de budur. İşletim sistemi, donanımın kontrol mekanizmalarının uzantıları gibi düşünülebilecek bir dizi fonksiyonu da mümkün kılar. Bu fonksiyonlar belirli bir programın içinden çağrılmayıp, sistemin istediği anda yerine getirilir. Paylaşılan kaynakları korumak üzere kilitleme, program durdurma, görev aktarma ve bellek bölümlerinin kullanımını dinamik biçimde saptama, kapalı fonksiyonlara örnek olarak verilebilir. İşletim sistemleri arasındaki fark, kimin efendi kimin köle olduğuyla ilintilidir. Genel amaçlı işletim sistemi çoğunlukla uygulama programının, sistemin uygun gördüğü anda çalışmasını sağlayacak konumdadır. Gerçek zamanlı küçük sistemlerin bazıları ise, uygulama programını efendisi olarak görür, hizmet vermek onun sorumluluğudur. Bu iki konum arasındaki fark şu soruyla daha iyi ifade edilebilir: “Program bir girdi kütüğünden bir kayıt isterse ve o kayıt kütükte yoksa ne olur?” İşletim sistemi açıkça efendi durumundaysa, programı durdurur ve yerine bir başkasını geçirir. Uygulama programı hükmettiği zaman ise işletim sistemi basitçe durumu programa rapor eder. Bir işletim sistemi çalışma ortamında yürütülen fonksiyonların yanısıra bir programın bilgisayarda çalıştırılmasından önce ya da sonra gerçekleştirilen belli hizmetler de görür. Bu hizmetler, programı çalıştırmak ve sonuçlarını sergilemek için gereken kaynakları betimleyen bir kontrol dilinin kullanımı yoluyla çağrılır.
YAPIYA İLİŞKİN TEMEL KAVRAMLAR
Bir işletim sisteminin, sağladığı tüm hizmetleri temsil eden komutların çeşitliliği, sistemin fonksiyonlarının çeşitliliği kadar yüksektir. Hedeflediği fonksiyonlar açısından fazla iddialı olmayan küçük bir işletim sistemi 8 K düzeninde; daha büyük işlemcilerin bulunduğu büyük ve iddialı bir genel amaçlı işletim sistemi ise 8 Mbyte düzeninde olabilir. Modül değeri, modüllerin birbirleriyle ilişkisi ve modeller arasındaki veri akışı bakımından böyle programların organizasyonu büyük ilgi uyandırmaktadır. Kolayca kurulup değiştirilebilen, güvenilirliği kanıtlanmış sistemlerin bir programlama yöntemine uygun olarak inşa edilmeleri gerekir. İşletim sistemlerinin yapısal tutarlılığını artırma girişimi olarak, yazılım mühendisliği, bileşik tasarım, yapılaşmış programlama vb. konularında ortaya atılan düşüncelerin ışığında pek çok çalışma yapılmıştır.
Kaynak/Operatör Eşlemeleri
İşletim sistemi, iş yapan kaynaklar ile operatörler arasındaki işlemleri yerine getirir, bütünler. Böyle bir bütünlükte kaynaklarla operatör arasında çeşitli eşlemeler yapmak mümkündür. Bunlardan biri, operatörden kaynağa eşlemedir. Burada, sistemdeki her türlü kaynak üzerinde etkili olacak READ, WRITE, DESTROY, CREATE gibi bir dizi kapsamlı operatör tanımlanır. Örneğin READ operatörü, sistemin READ etmesi istenen herhangi bir kaynağını semantik olarak anlamlı bir eylemle görevlendirir. Diğer alternatif, tahmin edilebileceği gibi, kaynaktan operatöre eşlemedir. Böyle bir organizasyonda, özgül bir kaynağa sunulabilecek fonksiyonların tümüne ilişkin yöntemler tanımlanır. CREATE, READ, WRITE, DESTROY Object of Type A, A kaynağına yönelik herhangi bir fonksiyonun nesneye ait genelleştirilmiş operatör tarafından yerine getirilmesi demektir. Bu genelleştirilmiş operatörlere monitör adı verilir. Monitör yapımının ardında yatan düşünce, bilgi saklama kurallarından yararlanmak ve özgül bir programı özgül bir kaynak ya da kaynaklar grubu çevresine yaymaktır. Bu durum bir yandan kaynağın organizasyonuna ilişkin ayrıntıları değiştirebilmeyi, diğer yandan da programın yalnızca kendi monitöründen etkilenmesini sağlar. Örneğin, tüm programların monitör aracılığıyla bir tablo ya da listeye gönderme yaptığı düşünülürse, tablo ya da listenin yapısındaki herhangi bir değişimin yalnızca monitörü etkilemesi önem kazanır. Gerçek zamanlı işletim sistemleri genellikle bu iki eşlemenin bileşiminden oluşur. Çağdaş işletim sistemi tasarımındaki sorunlardan biri, daha küçük işletim sistemlerine tutarlılık kazandıran belirli yapısal yaklaşımların çok büyük işletim sistemlerinde de verimli biçimde göstermektir. Çok fazla çevre kaynağı olan ve büyük çeşitlilik gösteren bir sistem için gerekli eşlemeler, yapısal kavramların uygulanabildiği küçük sistemlere özgü esnekliği ortadan kaldırabilir.
Hiyerarşik Yapı
İşletim sistemlerini açıklayan temel kavramlardan biri hiyerarşidir. Hiyerarşik bir sistemde çeşitli fonksiyonlar, iyi tanımlanmış program katmanları halinde yapılaşmışlardır. Belli bir basamaktaki her program ancak daha üst bir basamakta yeralan bir programla tamamlandığında da kontrol için tekrar üst basamağa dönebilir. Hiyerarşi ilkesinin bir kullanımı, yükselen ayrıcalık düzeylerini gösteren basamaklardır. Belli bir dosya üzerinde oynama ya da belli bir tabloyu inceleme hakkı, belli bir düzeydeki programa aittir. Daha alt düzeydeki bir programla ilintili bir kaynak üzerinde çalışmayı isteyen bir programın fonksiyonunu yerine getirebilmesi için, uygun basamaktaki programı aşağıdaki yapıya çağırması gerekmektedir. Tam bir hiyerarşi amaçlandığında, işletim sisteminin bileşenleri fazlasıyla sıkı yapılara dönüşebilir. Hata bulma kolaylığı ve koruma avantajları yitirilmeden, sıkı hiyerarşik yapının ne dereceye kadar gevşetilebileceği üzerine çalışmalar yapılmaktadır.
TASARIMA
İLİŞKİN EĞİLİMLER VE ETKİLER
Donanım ve İşletim Sistemleri Karşılıklı Etkiler
İşletim sistemiyle donanım tasarımı arasındaki ilişki esas olarak çift yönlü olmuştur. İşletim sistemlerine ilişkin kavramlar geliştikçe dikkatler, donanım/yazılım arabirimi ve donanımın fonksiyonlarıyla işletim sisteminin sundukları arasındaki sınır üzerinde yoğunlaşmaya başlamıştır.
1960'ların başına gelindiğinde makinelerin yapı ve tasarımlarında, uygulama programlarının bir işletim sisteminin yanısıra çalışacağı ve makinelerin bir şekilde paylaşılacağı genel kabulünden yola çıkılmaktaydı. Görünen (virtual) bellek yapısında çalışan bir programda yeralan adresler, donanım belleğindeki mevcut konumları göstermez. Amaç, bir program için, makinenin belleğinden daha geniş bir adresleme alanı sağlamaktır. İşletim sistemi böyle bir yapıda, derlenen programdaki adresleri gerçek bellek konumlarına çeviren bir tablo kullanır. Her bellek referansının, ona karşılık düşen gerçek bellek konumunu bulmak için bu tabloya başvurulur. Bellek genel olarak, sayfa adı verilen yapılara ayrılmıştır ve her program bellek adresi, sayfadaki başlangıç yerine ek olarak bir boşluk bırakmak suretiyle işlem görür. Programın kullandığı bir bellek adresi, bellek çeviri tablosuyla temsil edilmediğinde, program adresini içeren sayfanın disk ya da tamburdaki konumunu bulmayı sağlayan bir sinyal işletim sistemine verilir. Sonra sistem, sayfayı alacak genişlikte bir alanı kendi belleğinde ayırır, sayfayı bu bellek bloğuna taşır ve sayfanın bellekteki yerini bellek tablosunda belirtir.
görünen tam adres
Şekil. Çeviri Tamponu gerçek — referans adres — biti 8192 0 12288 4098 —— 1 8192 16384 —— 1 16384 65536 —— 0 — 65536 20480 32768 —— 1 128 24576 ——— 61440 —— 1 “55664 32768 —— 12788 ——0 40960 —— 36864 —— O Notlar
a. Görünen adresin üst kısmı anahtardır b. Array'in paralel taraması gerçek taban adresini verir c. Düşük düzeyli bitler özel gerçek adresleri verir d. Referans biti, sayfaya yakın zamanda başvurulup başvurulmadığını gösterir.
Belirli bir sayfanın bellekte olup olmadığını saptama işlemini hızlandırmak için yeni bilgisayarların çoğu çeviri tamponu (bkz. Şekil) adlı bir donanım mekanizması kullanır. Bu tampon, bir adresin aranma ve çevrilmesinde bellek mantığı yerine işlemci mantığı hızıyla çalışır. En son başvurulan sayfaların bellek konumları tamponda belirtilir. Bir sayfa için işletim-sistemi-esaslı yazılım tablosuna başvurmak, yalnızca bu sayfanın çeviri tamponunda bulunmaması durumunda gerekli olur. Böylece, gereksindiği toplam bellek hacmi, belleğin fiziksel hacmini aşan bir işletim sistemine, önemli bir donanım desteği sağlanmış olur. Donanımın yapısı, makinenin paylaşılma durumuna ve bir dizi programın doğru çalıştırılması için belli fonksiyonların koordine edilme gerekliliğine göre değişir. Örneğin çoğu donanım yapısı bir girdi/çıktı komutunun kontrol durumunda olmayan bir program tarafından kullanılmasına elvermez.
Programlar sistemin olanaklarını paylaşırken birbirlerinin sistemdeki varlıklarından haberdar olmayabilirler; bu yüzden işletim sisteminin, makineyi kullanan programlarla, program referansları arasında koordine edici bir mekanizma işlevini görmesi gerekir. İşletim sistemi kontrol durumunda çalışır ve sıraya koyma, uyarma, koordine etme fonksiyonlarını üstlenir.
Yakın zamanlarda donanım arabirim alanını büyüterek, işletim sisteminin fonksiyonlarına donanım desteğini arttıracak çalışmalar yapılmaktadır. Artık birtakım yapılar, işletim sisteminin işlem kontrol bloğuna donanım desteği vermekte ve temel veri yapılarının daha verimli yönlendirilmesini kolaylaştıran komutları da içermektedir. Böylece işletim sisteminin sıraya koyma, yönetme, yer bulma, bağlantı kurma fonksiyonları daha az komutla yürütülebilmektedir. Bazı donanımlarda program hiyerarşisi, basamaklar halinde hiyerarşik bir yapıya sahip işletim sistemi fonksiyonlarını temsil eden çoklu kontrol durumlarıyla desteklenir. Bunun sonucunda, kontrol ve kontroldışı durumları yerine birçok kontrol düzeyi bulunabilir. Her kontrol düzeyi, işletim sisteminin bir düzeyiyle ilişkili ayrıcalık ve otorite düzeyine karşılık düşer.
Kernal Kavramları ve