Ders Kitapları ve Notlandırma İşletim Sistemlerine Giriş Ahmet Burak Can Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr Ders kitapları İşletim Sistemleri, Ali Saatçi Modern Operating Systems, Andrew Tanenbaum Notlandırma Arasınav - %40 Final Sınavı - %50 Katılım - %10 1 2 Ders İçeriği İşletim Sistemlerine Giriş Giriş/Çıkış Sistemi Görev Yönetimi Görevler arası Zamanuyumlama Ana Bellek Yönetimi Kütük Yönetimi Dağıtılmış İşlem Güvenlik ve Koruma İşletim Sistemi İşletim sistemi, bilgisayar sistem kaynakları ile kullanıcılar arasında bir konumdadır. İşletim sistemi, sistem kaynakları üzerinde tam kontrole sahip olabilmek için kernel mode dediğimiz ayrıcalıklı bir modda calışır. Kullanıcı programları user mode da çalışır. 3 4
İşletim Sistemi Sabit Diskin Fiziksel Yapısı Donanım öğelerinin hizmet üretebilmesi, programlanarak işe koşulmasıyla sağlanır. Giriş/Çıkış birimleri gün geçtikçe çeşitlenmekte: Klavye, Fare Webcam, Fotoğraf Makinaları, Video kameralar Yazıcılar, Tarayıcılar Sabit diskler, Harici diskler, Flash bellekler Giriş/Çıkış birimleri ile yapılan bağlantı türleri de çeşitlenmekte: RS232, PS/2, USB, IEEE 1394 (firewire) VGA, HDMI 5 6 İşletim Sistemi Kullanım kolaylığı açısından, donanımla ilgili ayrıntıların bir soyutlama katmanı ile kullanıcıya yansıtılmadan halledilmesi gerekir. Örnek: Klavyeden, fareden gelen imlerin okunması Sabit disk üzerindeki bir kütüğün okunması Ana belleğin programlarca kullanılması Ana İşlem Biriminin (AİB) programlar arasında paylaşılması Sistemin sunduğu yazılım kaynakları da kullanıcı tarafından kolaylıkla kullanılabilmelidir. İşletim Sistemi Kullanım kolaylığı yanında, sistem kaynaklarının verimli kullanımı da önemlidir. Verimli kaynak kullanımı, kaynakların mümkün olduğunca çok kullanıcı arasında paylaştırılarak boşta kaldıkları sürelerin en düşük tutulmasını gerektirir. Kullanıcıların programlarının hızlı işletimini sağlamak da gereklidir. Kaynakların verimli kullanım amacıyla kullanıcılar arasında paylaştırılması, programların tek başına işletimine göre, genelde işletim hızını düşürür. Kaynak kullanım verimliliği ve hızlı işletim genelde çelişen iki parametredir. 7 8
İşletim Sistemi Çok Kullanıcılı Bilgisayar Sisteminin Evrimi Bilgisayar ortamında saklanan bilgilerin bozulma ve izinsiz erişimlere karşı koruma ve güvenliğinin de sağlanması gereklidir. Bu hususlar gözününe alınarak tanım yapılacak olursa: İşletim sistemi, bilgisayar sistemini oluşturan donanım ve yazılım nitelikli kaynakları, kullanıcılar (programlar) 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. 9 10 Bilgisayar Yapısı Von Neumann Bilgisayarı Ana İşlem Birimi (AİB) Yazmaç/Sayaç Takımı Aritmetik Mantık Birimi Denetim Birimi Ana Bellek Giriş/Çıkış (G/Ç) birimleri G/Ç sürücüsü G/Ç arabirimi 11 12
Adres ve Veri Yolları Adres yolu, AİB nin okuma/yazma yapmak amacıyla erişmek istediği, ana bellek sözcüğü ya da G/Ç arabirimi yazmacını belirlemede kullandığı genelde tek yönlü hat grubudur. Veri yolu, kimliği adres yolu üzerinde bulunan bellek sözcüğün ya da arabirim yazmaç içeriklerinin AİB yazmaçlarına ya da tersi yönde iletildiği çift yönlü hat grubuna verilen addır. Adres ve veri yolu üzerindeki imler bir bütün olarak (birlikte kullanıldığında) anlamlıdır. Denetim Yolu Denetim yolu, AİB ile ana bellek ve G/Ç arabirimleri arasındaki veri aktarımlarının zamanuyumlaması için kullanılan imleri taşır. Denetim yolunu oluşturan hatlar, zaman içerisinde birbirlerinden bağımsız olarak gelişen imleri taşırlar. Örneğin: Saat imi Okuma-yazma imleri Kesilme istemi imleri Doğrudan bellek erişim istemi imleri gibi 13 14 Bir Bilgisayar Sistemindeki Temel Veri Aktarım İşlemleri Pentium İşlemcilerin Yapısı DBE? 15 16
Zaman Çizeneği İşin (Job) Tanımı İş, kullanıcıların sistemden bir bütün olarak ele alınmasını istedikleri işlem takımıdır. UNIX te örnek bir iş tanımı: 17 18 Tek İş ve Çok İş Düzeni Tek iş düzeni (monoprogramming): Bir bilgisayar sisteminde, aynı anda tek bir iş işletime alınabiliyor ise kurulan işletim düzenine denir. Çok iş düzeni (multiprogramming): Bir bilgisayar sisteminde, aynı anda birden çok iş işletime alınabiliyor ise kurulan işletim düzenine denir. Çok iş düzeni, sistem kaynaklarının daha etkin kullanımına olanak sağlar. Dezavantajı ise işler arasındaki bağlam değiştirme maliyetidir. Niçin Çoklu İşlem? G/Ç işlemleri AİB nin işlem hızına göre çok yavaş kalır. AİB nin, G/Ç işlemi yapan bir işi beklemesi uzun süre boşta kalmasına neden olur. Verimli kullanım için, AİB nin boşta kaldığı zamanların en aza indirilmesi gerekir. Herhangi bir anda, işletimi birlikte sürdürülen iş sayısı, sistemin o anki çok iş düzeyini belirler. Çok iş düzeyinin artması belli bir sınıra kadar faydalıdır. Bu sınırdan sonra, işlemler arası bağlam değiştirme çok artacağı için işlerin sonlandırma zamanları artar. 19 20
Bilgisayar Bileşen Hızları Örnek: G/Ç işlemi ve AİB hızı 3600 rpm hızında dönen, 12 ms lik ortalama yatay erişim süresine sahip, her izinde 512 byte lık 63 sektör bulunan bir disk sürücüde 2 sektörlük bir öbeğe erişim süresi: Ortalama yatay erişim süresi: 12 ms Ortalama döngüsel gecikme süresi: (1/60)(1/2) = 8.3 ms Öbeğin sürücüden arabirime aktarılması: (1/60)(2/63) = 0.06 ms Toplam yaklaşık 20 ms 500 Mhz saat imiyle çalışan ve komutları 10 saat periyodunda işletebilen bir AİB için komut işletim süresi 20 ns kadardır. Yani yukarıdaki G/Ç işlemi süresinde, 1 milyon makina komutu işletilebilir. 21 22 Çok İş İşletimine Bir Örnek Görev Görev (task) herhangi bir programın işletimine verilen addır. Program, durgun komut dizisini tanımlarken, görev bu komut dizisini işletim boyutuyla ele alan bir kavramdır. Görev İskeleti: İşletimi kesilen programın işletimine, ileride kalınan yerden devam edilebilmesi ve işletim bütünlüğünün korunabilmesi için işletimin kesildiği konuma ilişkin durum bilgilerini saklayan veri yapılarıdır. 23 24
Çok Görevli İşlem Çok görevli işlem (multitasking), herhangi bir kullanıcının aynı anda birden çok görev tanımlayarak işletebilmesine olanak veren işlem türüdür. UNIX, Windows? MS-DOS? Cep telefonlarındaki işletim sistemleri? Toplu İşlem / Etkileşimli İşlem Toplu işlem (batch processing): İşler biriktirilerek veya dönem dönem sisteme sunulduğu işlem türüdür. Sisteme sunulan işler, sunuş anından başlayarak sonlanıncaya kadar kullanıcının her türlü müdahalesine kapalı biçimde işletilir. Etkileşimli işlem (interactive processing): Kullanıcıların iş adımlarını adım adım işletebildiği, adımlar arasında işletim akışını izleyebildiği ve işletim akışına müdahale edebildiği işlem türüdür. Çok kullanıcılı bilgisayar sistemlerinde toplu ve etkileşimli işlem birlikte kullanılabilir. Etkileşimli işlemler daha öncelikli olarak ele alınır. 25 26 Gerçek Zamanlı İşlem / Çevrimiçi İşlem İşletim Sistemi Kesimleri Gerçek zamanlı (real-time) işlem: Etkileşimli işlemde, sistemin yanıt süresine bir üst sınır konulabilmesi durumunda yapılan işlem türüne denir. Çevrim içi (online) işlem: İşlenecek verilerin bilgisayar sistemine dolaysız ve aracısız bir biçimde aktarılmadır. WWW ve ATM üzerinden banka işlemleri Bir fabrikadaki (veya bir uçaktaki) bilgisayar sisteminin, algılayıcı (sensor) aygıtlardan gelen verileri işlemesi Ögrenci verilerinin optik formlardan aktarılması, çevrim içi işleme örnek değildir. 27 28
G/Ç Yönetimi G/Ç birimleri, verilerin bilgisayar sistemi ile dış ortam arasında iki yönlü aktarımını sağlayan ve bilgisayar ortamında saklanmasına yarayan birimlerdir. Bir G/Ç birimi sürücü ve arabirimden oluşur. Bir G/Ç birimi ile yapılacak işlemler arabirimin çalışma mantığını bilmeyi gerektirir. Örneğin terminalden bir karakter okunup ekranda görüntülenmesi ilgili arabirimin durum ve güdüm yazmaçlarının okunması ve yazılmasını gerektirir. G/Ç Yönetimi AİB nin birden çok G/Ç arabirimini eşanlı olarak denetleyebilmesi ve bunların zamanuyumsuz istemlerine cevap verebilmesi için kesilme uyarıları kullanılır. Kesilmeler arası öncelik denetlemesi gerekir. G/Ç birimleri ile ana bellek arası veri aktarımın AİB yi meşgul etmeden yapılabilmesi için doğrudan bellek erişim denetleme birimi kullanılabilir. 29 30 AİB (Görev) Yönetimi AİB birden çok görevi birlikte işletmek zorundadır. AİB görevler arasında paylaşılan en önemli kaynaktır. Görevler AİB ye anahtarlanacağı zaman AİB görev iskeletleri arasında geçişler yapılır. Görevler arası geçiş sırasında, görev iskeletlerinin ve AİB yazmaçlarının günlenme işlemlerini görev yönetici dediğimiz özel bir sistem görevi gerçekleştirir. AİB (Görev) Yönetimi Bir görev işletime başladıktan sonra 3 durumdan birinde bekler. AİB üzerinde çalışır Anahtarlanmaya hazır durumda G/Ç bekler Herbir durum için ayrı bir görev kuyruğu vardır. Görevin durum değiştirmesi görev iskeletinin bir kuyruktan diğerine aktarılması ile sağlanır. 31 32
Zamanuyumlama Düzenekleri Kilitlenme (Deadlock) Görevler sistem kaynaklarını paylaşmak zorundadırlar. Aynı anda birden fazla görev tarafından erişilmek istenen kaynaklar olduğunda, işletim bütünlüğünün korunması için görevler arasında zamanuyumlama olması gereklidir. İşletim sistemi, kaynak paylaşımında işletim bütünlüğünü korumak için özel programlama araçları sağlar. Örnek: Semafor, Mutex işleçleri (a) Potansiyel bir kilitlenme (b) Gerçek bir kilitlenme 33 34 Ana Bellek Yönetimi Kütük Yönetimi Programlar işletime alınmadan önce ana belleğe yerleşmesi gereklidir. Programlar bir bütün veya parçalar halinde mi ana belleğe yerleşmeli? Günümüzde programlar, kesimler veya sayfalar halinde parçalanarak ana belleğe yerleştirilir. Bazı durumlarda programların fiziksel bellek sığasından fazlasına ihtiyaç duyduğu durumlarda, sabit diskin bir kısmının ana belleğin uzantısı gibi görülmesini sağlayan görüntü bellek (virtual memory) yöntemi kullanılır. Kütük yönetiminde, kütük işlemlerinin diske ait yüzey, silindir, sektör bilgileri gibi fiziksel ayrıntılardan arındırılarak yapılabilmesine olanak sağlanır. Disk alanının etkin ve verimli şekilde kullanılması için düzenlenmesi, boş alanların izlenmesi, kütüklere erişimin en hızlı olabileceği şekilde disk yerleşiminin planlanması gereklidir. Aramaları kolaylaştıracak dizinleme mekanizması sağlanmalıdır. 35 36
Kütük Yönetimi Kütüklerin görevler arasında eşzamanlı paylaşımına olanak sağlanmalıdır. Kütük yönetimi, kütüklerin bozulma ve silinmelere karşı korunmasını sağlayarak, güvenli bir işletim ve saklama ortamını yaratmakla da yükümlüdür. Güvenli bir işletim ortamı, bilgilerin gizliliğin sağlanmasını gerektirir. Bu amaçla kütük yönetim sistemi, kütüklere erişimleri denetim altında tutar. Sistem Komut Yorumlayıcısı Sistem komut yorumlayıcısı, kullanıcıların, terminalleri başından girdikleri komutları yorumlayarak bu komutlarla tanımlanan işlemleri yerine getirir. Örnek MS-DOS komutları: dir [kütük adı] copy [kütük adı-1] [kütük adı-2] cd [alt kılavuz adı] del kütük adı md alt kılavuz adı type kütük adı Modern işletim sistemlerinin grafik arayüzleri de bir komut yorumlayıcısıdır. 37 38 Sistem Çağrıları Sistem Çağrısı Yapılması Sistem çağrı düzeneği, işletim sistemince verilen hizmetlerin, donanımın ayrıntısından soyutlanmış, kolay anlaşılır şekilde sunulmasını sağlayan bir düzenektir. Sistem çağrısı yapmak işletim sistemine sapmak anlamına gelir. İşletim sisteminde sistem çağrıları, işleyicilerin yazılım kesilmesi (trap) olarak bilinen komutları ile gerçekleştirilir. 80X86 türü işleyicilerde,int xx komutları ile yazılımı kesilmesi üretilir. read (fd, &buffer, nbytes) çağrısının adımları 39 40
Örnek Sistem Çağrıları Örnek Sistem Çağrıları 41 Metrik Birimler 43 42