İşletim Sistemlerine Giriş Hafta_2 İşletim Sistemlerine Giriş
İşletim Sistemlerine Giriş İşletim Sisteminin Tanımı : İşletim sistemi; "Bilgisayar donanımı ile kullanıcı programları arasında yer alarak kullanıcıların bilgisayar sisteminden kolayca yararlanabilmelerini sağlayan hizmet yazılımıdır." Yada başka bir ifade ile; "İş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."
İşletim Sistemlerine Giriş Bir bilgisayar sitemi dört kısımdan oluşur: Donanım (Hardware): Bilgisayarı oluşturan fiziksel parçalar. İşlemci, anakart, hdd, ram vb. İşletim Sistemi (Operating Systems): İşletim sistemi, donanım ile kullanıcı modu arasında bir konumdadır. Uygulama Yazılımları (Application Programs): Kullanıcıların ihtiyaçlarını karşılayan yazılımlardır. Word, veri tabanı vb. Kullanıcılar (Users): İnsanlar, makineler, diğer bilgisayarlar
İşletim Sistemlerine Giriş İşletim Sistemi; Birçok uygulama ve kullanıcı tarafından donanımın kullanılmasını, kontrol edilmesini ve koordine edilmesini sağlar. 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. İşletim sistemleri, çirkin donanımı güzel soyutlamalar haline getirir.
İşletim Sistemlerine Giriş İşletim Sistemleri hangi olanakları sağlar? İşletim sistemi ile donanıma özgü karmaşık ayrıntıların bilinme zorunluluğu ortadan kalkar. İşletim sistemleri, donanım bileşenlerinin sürülmesine dönük yordamları hazır işlevler olarak içerirler. Dolaysıyla işletim sistemi uygulamaların donanıma erişimi için güvenli bir yol sağlar. Kullanıcılara, bilgisayar sistemine dönük yalın bir görünüm ve kolay bir kullanım ortamı sunulur. Bilgisayar sistem kaynaklarının düzenli, kontrollü tahsisini sağlar.
İşletim Sistemlerine Giriş İşletim Sistemleri hangi olanakları sağlar? Tutarlı bir uygulama arabirimi sağlar. Diğer yazılımlar işletim sisteminin kütüphanelerini kullanır. Bunlara API Application Program Interface denir. Böylece yazılımcıların kullandıkları üst seviyeli dille yazılmış olan programlar diğer bilgisayarlarda da çalışır. Tüm bilgisayarların donanım özelliklerinin farklı olmasına rağmen işletim sistemi yazılımlar için eşit bir zemin sunar. Ayrıca program geliştirme süreçleri kısaltılarak kullanım kolaylığı sağlanır.
İşletim Sistemlerine Giriş İşletim Sisteminin Yükümlü Olduğu İşlevler : Kullanıcılar için kullanım kolaylığı sağlamak. Kullanıcıların bilgisayar sistem kaynaklarından kolayca yararlanmalarını sağlamak. Sistem kaynaklarının hem verimli kullanımını hem de hızlı bir şekilde işletimini gözeterek paylaştırılmasını sağlamak. Birim zaman içinde, aynı sayıda kaynakla daha çok hizmet üretme olanağı sağlamak. Bilgisayar ortamında saklanan bilgilerin, gerek bozulmalara, gerekse izinsiz erişimlere karşı korunmasını sağlamak.
İşletim Sistemi Olmasaydı!! Farzedelim ki, işletim sistemi olmayan bir bilgisayarda disket sürücüsünde bulunan bir disketteki “ABC” isimli program çalıştırılmak istensin. İşletim sistemi olmaksızın yapılması gereken, daha doğrusu verilmesi gereken komutlar şu şekilde olacaktır.
İşletim Sistemi Olmasaydı!! 1. Disket sürücüsü takılı mı? 2. Takılıysa disket sürücüde disket var mı ve dönüyor mu? 3. Dönüyorsa doğru hızda mı dönüyor? 4. Disket sürücüsünün okuyucu kafası disketin neresinde duruyor? 5. “ABC” programının disket üzerindeki yeri neresi? Örneğin üzerinde 80 kayıt izi bulunan bir diskette, programın kaydedilmeye başladığı iz hangisi, toplam program uzunluğu kaç iz tutuyor? 6. Sürücünün kafasını uygun izin üzerine gönder... 7. Uygun izin üzerine geldi mi?
İşletim Sistemi Olmasaydı!! 8. Geldiyse, izin başlangıç noktasının okuyucu kafanın altına gelmesini bekle. 9. Disket sürücüdeki kayıtları okumaya başla ve belleğe taşı. (tabii belleğin program yüklemeye uygun bir noktasından başlayarak, bellekte boş yer yoksa bellekteki kullanılmayan bilgileri sil, bilgiler kullanılıyorsa bu bilgileri diskin boş bir yerine geri almak üzere kaydet ve belleği boşalt.) 10. Birinci iz bitince, okuyucu kafayı bilginin devam ettiği bir sonraki izin üstüne gönder ve bu hareket tamamlanıncaya kadar bekle... 11. İzleri okumayı ve belleğe yerleştirmeyi program dosyasının sonuna gelinceye kadar tekrarla. 12. Disketten okuma tamamlanınca, disket sürücüyü durdur ve programı çalıştırmaya başla.
İşletim Sistemi Olmasaydı!! Bu uzun liste bile abartılı şekilde kısaltılmış bir listedir. Sürücünün okuyucu kafasının belirli izin üzerine gönderilmesi bile başlı başına bir iştir aslında. Oysa; işletim sistemi olan bir bilgisayarda, kullanıcının tek yapması gereken çalıştırmak istediği programın adını klavyeden yazıp ENTER tuşuna basmak veya simgesine (icon) tıklamaktır. Program dosyasının disket sürücüdeki yerinin bulunması, sürücüyü denetleyen kontrol devreleriyle gerekli görüşmeleri yapıp kafanın gerekli hareketleri yapmasını sağlayarak kayıtların belleğe aktarılması işinin sağlıklı bir şekilde yapılması, tamamen işletim sisteminin sorumluluğundadır.
İşletim Sisteminde Aranan Ö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şe başlama süresi kısa olmalıdır. 3. Kullanılmayan CPU zamanı: Merkezi işlem biriminin (CPU) kullanmadığı süre 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.
İşletim Sisteminde Aranan Özellikler 5. Cevap verme süresi: Sistemin cevap verme süresi kısa olmalıdır. Kısa zamanda çok iş yapılmalıdır. 6. 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.
İşletim Sistemlerinin Tarihi Birinci nesil (1945-1955) vakum tüpleri. İkinci nesil (1955-1965) transistör ve toplu işlem yapan sistemler. Üçüncü nesil (1965-1980) Entegre devreler (ICs) ve çoklu programlama. Dördüncü nesil (1980-günümüze) kişisel bilgisayarlar. Beşinci nesil (1990-günümüze) mobil bilgisayarlar.
Birinci nesil (1945-1955) vakum tüpleri Tek kullanıcılıdırlar. İşletim sistemi kullanılmamıştır. Aynı anda sadece bir iş yapılmaktaydı. Bilgi girişi ve çıkışı için kartlar kullanılmaktaydı.
İkinci nesil (1955-1965) Transistör ve Toplu İşlem Yapan Sistemler Erken Dönem bir Toplu İşlem Sistemi Otomatik olarak birden fazla işin arka arkaya yapılması sağlandı. Kart okuyucular kullanılmaktaydı.
Üçüncü nesil (1965-1980) Entegre devreler (ICs) ve Çoklu Programlama : Çoklu programlama aynı anda birden fazla programın çalıştırılması anlamına gelmektedir. (Zaman paylaşımlı -Timesharing) Bu işleri yaparken bir donanım belirli zamanlarda farklı işleri yapılması için tahsis edilir. Bu sistemlerde işlemci zamanlaması, bellek yönetimi gibi işlemler sistem tarafından yapılmaktaydı. Bellekte üç iş olan bir çoklu programlama sistemi.
Dördüncü nesil (1980-günümüze) kişisel bilgisayarlar Beşinci nesil (1990-günümüze) mobil bilgisayarlar Donanım ebatlarının küçülmesi ile masaüstünde yer alan bilgisayarlardır. G/Ç aygıtları kullanılmaktadır. Farklı teknolojiler adapte edilebilmektedir. İşletim sistemi kullanmaktadır.
İşletim Sistemlerinin Sınıflandırılması ve Çeşitleri Tek Kullanıcı Tek Görev (Single User Single Task) Tek Kullanıcı Çok Görev (Single User Multi Task) Çok Kullanıcı Tek Görev (Multi-User Single Task) Çok Kullanıcı Çok Görev (Multi-User Multi Task) Mainframe Operating Systems Server Operating Systems Multiprocessor Operating Systems Personal Computer Operating Systems Handheld Computer Operating Systems Embedded Operating Systems Sensor Node Operating Systems Real-Time Operating Systems Smart Card Operating Systems
1. Tek Kullanıcı Tek Görev (Single User Single Task) Bu sınıftaki işletim sistemleri aynı anda tek kullanıcıya hizmet verebilir ve tek program çalıştırabilir. Bu programların bilgisayardaki tüm kaynaklara (bellek, disk gibi) tam erişim hakkı vardır. Çalışmakta olan program zaman zaman kesilerek işletim sisteminin yapmakla sorumlu olduğu işler yerine getirilebilir. Bu işlemler sistemin saatinin ve tarihinin ilerletilmesi ya da klavyeden girilen bir tuşun kaydedilmesi olabilir. Bu yolla tek kullanıcılı sistemlere değişik programları aynı anda çalıştırabilme özelliği eklenmiştir. Birden fazla yerleşik program bellekte birlikte tutulabilir. MS-DOS bu işletim sistemlerine örnektir.
2. Tek Kullanıcı Çok Görev (Single User Multi Task) Birçok bilgisayar kullanıcısı için bilgisayarında tek bir program çalıştırmak yeterli olacaktır. Birçok uygulama için bu yeterlidir. Bununla birlikte bir program çalıştırmak bilgisayar kaynaklarını etkili bir biçimde kullanmayı engeller. Örneğin, bir bilgi işlem programında yazılan programın yazıcıya aktarılması yazıcının bu dokümanı basmasına oranla çok daha hızlıdır. Eğer tek program çalıştırabiliyorsa merkezi işlemci yazıcının işinin bitmesini beklemek zorundadır. Çok görevli çalışabilmeye çok programlı çalışmak denir. Bu terim birden fazla programı paylaşımlı şekilde çalıştırabilme yeteneği için kullanılır.
2. Tek Kullanıcı Çok Görev (Single User Multi Task) Merkezi işlemci değişik programları sırayla çalıştırdığında ve sürekli olarak birinden diğerine çok süratli geçiş yaptığında bu programların paralel çalıştıkları izlenimi doğmasına yol açar. Değişik kaynakları kullanan programlar bir arada çalıştırıldıklarında bu yöntem çok verimli olur. Bu durumda bir program örneğin, yazıcıyı beklerken, diğer bir program merkezi işlemciyi kullanabilir. Bu tür işletim sistemlerine örnekler IBMOS/2 ve Microsoft Windows’tur.
3. Çok Kullanıcı Tek Görev (Multi-User Single Task) Bilgisayar kaynaklarının verimli kullanılmasına bir çözüm de kaynaklara birden fazla kullanıcının erişmesine izin vermektir. Burada koşul her kullanıcının aynı programı kullanmasıdır. Bu sistemde her kullanıcı merkezi bilgisayara bir terminal yoluyla bağlanır ve bilgisayar sistemindeki kaynaklara diğer kullanıcılarla zaman paylaşımlı olarak erişir.
3. Çok Kullanıcı Tek Görev (Multi-User Single Task) İşletim sistemi, merkezi işlemciyi programlar arasında hızlı bir şekilde anahtarlar. Bu tür uygulamalar için güçlü merkezi işlemcilere gereksinim vardır. Eğer bilgisayar arızalanırsa tüm kullanıcılar çalışmalarını durdurmak zorunda kalır. Buna karşılık çok kullanıcı tek görev ilkesine göre çalışan işletim sistemleri kullanıcıların veri tabanı türü kaynakları paylaşmalarına ve birbirlerine mesaj göndermelerine olanak sağlar. Bu işletim sistemleri özel uygulamalarda kullanılmaktadır.
4. Çok Kullanıcı Çok Görev (Multi-User Multi Task) Bu işletim sistemleri zaman paylaşımı ve çok görevli çalışma kavramlarını birleştirir. Birçok kullanıcı aynı anda birden fazla programı çalıştırabilir. Genellikle daha güçlü bilgisayarlarda çalışan bu tür işletim sistemlerine UNIX iyi bir örnektir.
İşletim Sistemi Bileşenleri (Operating System Components) İşletim sistemlerinin temel öğeleri şunlardır: 1- İşlem Yönetimi (Process Management) 2- Ana bellek Yönetimi (Main-Memory Management) 3- ikincil Bellek Yönetimi (Secondary- Storage Management) 4- Giriş-Çıkış Yönetimi (I/O System Management) 5- Dosya Yönetimi (File Management) 6- Güvenlik Yönetimi (Protection System Management) 7- Ağ Yönetimi (Network Management) 8- Komut Yönetimi (Command Interpreter System Management) 9- Kesmeler (Interrupts) 10- Aygıt Sürücüleri (Device Drivers)
İşletim Sistemi Hizmetleri İşletim sistemleri, kullanıcı ve programlar için çeşitli hizmetler sağlar. Program koşturulması (Program Execution) İşletim sistemi, programları ana belleğe yükleyebilmeli ve programları çalıştırabilmelidir. Örneğin bir kelime işlemci programının çalıştırılması. Girdi / Çıktı işlemleri (I/O Operations) Çalışan bir program G/Ç (girdi / çıktı) işlemine gereksinim duyabilir. Bu G/Ç işlemi bir dosya ya da G/Ç aygıtı olabilir. İşletim sistemi bu tür ihtiyaçları karşılar. Örneğin bir kelime işlemci programından daha önceden yazılan ve saklanan bir dosyanın tekrar açılması gibi.
İşletim Sistemi Hizmetleri Dosya sistemi yönetimi (File System Manipulation) İşletim sistemi, programların ya da kullanıcıların bir dosyayı okuma, yazma, oluşturma ya da silme işlemlerini gerçekleştirir. Örneğin bir kelime işlemci programı ile daha önceden yazılan ve saklanan bir dosyanın tekrar açılarak üzerinde değişiklikler yapılması ve yeni haliyle bu dosyanın tekrar kaydedilmesi gibi.
İşletim Sistemi Hizmetleri İletişim (Communication) Bir işlem diğer bir işlemle bilgi alış verişinde bulunmak isteyebilir. Bu iletişim sırasında işlemler aynı bilgisayarda olabileceği gibi; bir ağ ortamında bulunan iki farklı bilgisayarda da bulunabilirler. İşlem arasındaki bu tür iletişimler, ya bellek paylaşımı ya da mesajlaşma gibi çeşitli tekniklerle işletim sistemi tarafından gerçekleştirilir. Örneğin bir kelime işlemci programından daha önceden yazdığımız ve sakladığımız bir dosyanın açılarak yazıcıdan çıktısı alınmak istenebilir. Bu durumda bu aygıttan dosyanın yazdırıldığına dair bir mesajın ekrana gelmesi gibi.
İşletim Sistemi Hizmetleri Hata Tespiti (Error Detection) İşletim sistemi bilgisayar sisteminde meydana gelen her türlü hataları algılayabilmelidir. Bu hatalar CPU, bellek, G/Ç aygıtı ya da kullanıcı programında meydana gelmiş olabilir. Meydana gelen hataya uygun gerekli eylem ya da düzeltme işlemi işletim sistemi tarafından gerçekleştirilir. Örneğin bir kelime işlemci programından daha önceden yazdığımız ve sakladığımız bir dosyanın açılarak yazıcıdan çıktısı alınması istenebilir. Fakat yazıcı bu işlemi gerçekleştirirken, yazıcıda kağıt bittiğine dair mesaj ya da yazıcının açık olmadığına dair gelen mesaj gibi.
İşletim Sistemi Hizmetleri Kaynakların paylaştırılması Bir çok kullanıcının ya da bir çok programın aynı anda çalıştığı durumlarda elde bulunan tüm kaynakların paylaştırılması ve düzenli kullanılması gerekir. İşletim sistemi birçok farklı kaynağın düzenli bir şekilde kullanılmasını sağlar. Örneğin bir ağ ortamında yazıcının paylaştırılması ve birçok kullanıcının bu yazıcıyı kullanabilmesi gibi.
İşletim Sistemi Hizmetleri Kullanıcı işlemleri Çok kullanıcılı ortamlarda hangi kullanıcının hangi haklara sahip olduğu ve sistem kaynaklarından ne kadar yararlanabileceği işletim sistemi tarafından yönetilir. Güvenlik işlemleri Çok kullanıcılı ortamlarda ya da ağ ortamlarında tüm bilgilerin güvenliği işletim sistemi tarafından sağlanır.
İşletim Sistemi Mimarisi
İşletim Sistemi Mimarisi Monolitik işletim sistemi mimarisi (Monolithic OS architecture) : 1970–1990 arasında kullanılan ilk mimaridir. Burada tüm yazılımlar, sürücüler işletim sisteminin kernel’inde yer almaktadır. Boyutu büyüktür. İşletim sisteminin her bileşeni kernel içinde bulunduğundan, doğrudan diğer bileşenlerle iletişim kurulabilir ve sınırsız sistem erişimi mevcuttur. Bu yüzden hatalı veya kötü amaçlı kod nedeniyle yüksek bir hasarlanma riskine sahiptir. Performansı yüksektir.
İşletim Sistemi Mimarisi Katmanlı İşletim sistemi mimarisi (Layered OS architecture) : Her katman hemen üstündeki ve altındaki katmanlarla iletişim kurar. Her bir katman sadece kendisinden aşağı seviyedeki katmanların fonksiyonlarını ve servislerini kullanabilmektedir. Katman yaklaşımının sağladığı en büyük avantaj modülerlik ve hata ayıklama kolaylığıdır. Tüm katmanların sisteme sınırsız erişimi olduğundan, kernel hatalı veya kötü amaçlı kodlara açıktır. Microsoft Windows ve Linux da dahil olmak üzere bugünün işletim sistemlerinin birçoğu, bir miktar katmanlama uygulamaktadır.
İşletim Sistemi Mimarisi Mikrokernel işletim sistemi mimarisi (microkernel OS architecture) : Process yönetimi ve aygıt yönetimi gibi çoğu işletim sistemi bileşeni kernel dışında daha düşük seviyede bir sistem erişimi ile çalışır. Çekirdekten “kullanıcı” alanına doğru kayma sağlanır. İletişim kullanıcı modülleri arasında haber göndermekle gerçekleştirilir. Küçük boyutlu. Avantaj: İşletim sistemini yeni mimarilere taşımak kolaydır. Daha güvenilirdir (daha az kod kernel modunda çalışmaktadır) Dezavantaj: Sistem performansını düşürebilen, modüller arası iletişimin artan seviyesidir.
İşletim Sistemi Mimarisi İşletim sistemi, sistem kaynakları üzerinde tam kontrole sahip olabilmek için kernel mode denilen ayrıcalıklı bir kipte çalışır. Kullanıcı programları user mode’da çalışır. Mobil işletim istemleri sadece kernel’a sahip değildir, middleware’e de sahiptirler. Middleware, uygulama geliştiricilere ek servisler sağlayan framework (platform) yazılımlarıdır. Apple iOS ve Google Android, middleware yazılımları ile veritabanı, multimedya ve grafik desteği sağlayan mobil işletim sistemleridir.
Kernel (Çekirdek) Kernel, bilgisayarda donanım (hardware) ve yazılım (software) arasındaki bağlantıyı sağlayan arabirime verilen isimdir. Kernel bilgisayar sistemi açılırken belleğe yüklenir ve sistem kapatılıncaya kadar ana bellekte kalır. Kernel gereksinim duyulan diğer işletim sistemi parçalarını ikincil bellekten ana belleğe yükler. Kernel, bilgisayarın donanımıyla doğrudan etkilenen işletim sisteminin bir parçasıdır. Kernel bilgisayar sisteminin tüm işlemlerini kontrol eder. Kaynakların atanması, process’lerin sıraya konması, giriş-çıkış işlemlerinin yerine getirilmesi gibi görevleri yerine getirir.
Kernel (Çekirdek) En önemli Kernel fonksiyonları: Kaynak Yönetimi : Kaynak yönetimi hangi kaynağın, hangi kullanıcı tarafından ne zaman kullanılacağını kontrol eden işlevdir. Özellikle çok kullanıcılı sistemlerde önem kazanan bu işlev aynı anda kaynaklara erişmek isteyen kullanıcıların erişimini en iyi şekilde düzenler. Kesmelerin Ele Alınması : Kesmeler çalışmakta olan bir programın daha acil bir işleme hizmet vermek üzere kısa süreli durdurulmasıdır. Sistem Durum Denetimi : Bir işletim sisteminin önemli görevlerinden birisi de sürekli olarak sistemi denetlemek ve oluşan hataları az sorun yaratarak çözmektir.
Kernel (Çekirdek) Process Yönetimi : Process yürütülmekte olan programa verilen isimdir. Birden fazla programı aynı anda çalıştırabilen işletim sistemlerinde her bir program birden fazla parçadan oluşur. Aslında işlemci aynı anda sadece bir programı çalıştırmaktadır. İşlemcinin zamanı değişik programlar arasında paylaştırması aynı anda birden fazla işlemi çalıştırdığı izlenimini uyandırır.
Kernel (Çekirdek) Veri Kontrolü : Veri girişinin sağlanması, girilen verilerin ana belleğe ve oradan da ikincil belleğe aktarılması ve verilerin çıkış birimlerine yazılması uygulama programları tarafından işletim sistemine bildirilir. Veri kontrol yazılımları genellikle giriş/çıkış ve depolama birimlerini kontrol eden alt düzey programlardır. Bu alt düzey etkinliklerin yanı sıra bir işletim sisteminin veri kontrol programları tampon, veriyolu ve havuz yöneticilerini de kontrol eder. Tampon, değişik hızlarda çalışan ya da değişik öncelikleri bulunan donanım aygıtları ve program işlemleri tarafından paylaşılan veri alanıdır. Havuz yönetimi, birden fazla kullanıcı programın aynı anda yazıcıya çıktılarını gönderebilmelerini ve bu sırada da çalışmalarını sürdürebilmelerini sağlayan işlemlerdir. Programlar önce sabit diske gönderilir. Buradan alınıp yazıcıya aktarılır.
Donanım Koruması Process: sınırlı haklarla çalışan bir program örneği. Bir process herhangi bir komut yürütebilir mi? HAYIR Eğer her komut doğrudan yürütülecek olsaydı; Sistem yapılandırmasını değiştirebilir. Yetkisiz belleğe erişebilir. Yetkisiz I / O'ya erişebilir. vb.
Donanım Koruması Çift modlu çalışma En az iki işletim modu arasında ayrım yapmak için donanım desteği sağlanır: 1. user modu - yürütme bir kullanıcı adına yapılır. 2. kernel modu - yürütme işlemi, işletim sistemi adına yapılır. "İmtiyazlı" komutlar (privileged instructions) sadece kernel modunda çalıştırılabilir. user modunda ayrıcalıklı komutların çalıştırılması, kernel modunda "traps" adı verilen işlemle yerine getirilir. Traps, bir hata veya bir kullanıcı isteği sonucunda bir yazılım tarafından oluşturulan kesme işlemidir. Geçerli modu belirtmek için bilgisayar donanımına eklenen mod biti: kernel (0) veya user (1). Bir kesme veya trap oluştuğunda, donanım kernel moduna geçer.
İşlemci modları ve işletim sistemi Koruma mekanizmasına sahip olan işlemcilerde en azından iki çalışma modu bulunur. Bunlardan birine kernel mod, diğerine ise user mod denilmektedir. İşlemcide, bir programın çalışma yeteneğini gösteren bir mod biti bulunmaktadır. İşlemci kernel modda iken donanımsal her tür komutu çalıştırırken user modunda ise bazı komutları çalıştırabilir. Kernel modda çalışan komutlara supervisor, imtiyazlı, öncelikli veya korunmuş komutlar denilmektedir. İşletim sistemi programları kernel modda çalışırken diğer tüm yazılımlar user modunda çalışmaktadır.
İşlemci modları ve işletim sistemi Genel olarak; işlemcinin mod biti işletim sisteminin koruma haklarından biridir. İşletim sistemi kernel modda çalışmakta ve user moduna göre belleğe ve öncelikli komut kümesine ulaşmakta daha fazla haklara sahip olmaktadır. İşlemci kernel moda geçtiğinde işletim sisteminin kodlarını çalıştırmaktadır. User modundaki bir işlem işletim sistemini çağırdığında işlemci hemen kernel moda, mod bitini kullanarak geçer ki bu duruma sistem çağrısı (system call) denilmektedir.
Kernel (Çekirdek) Mode İşletim sistemi çekirdeği (Kernel), ayrıcalıklı bir işlem seviyesi olan Kernel modda çalışır. Bu işlem seviyesinde çalışan kod, donanıma ve sistemin tamamına tam yetki ile müdahale edebilir. Eğer bir kod kernel modunda çalıştırılıyorsa işlemci çalışmakta olan koda yönelik hiçbir erişim kontrolü uygulamaz. Yani kernel modunda çalışan kodlar belleğin her yerine erişebilir, her makina komutunu işletebilir. Fakat güvenli bir sistemde sıradan proseslerin bazı makina komutlarını kullanamaması gerekir. MS-DOS'ta sistem dosyaları olarak bilinen msdos.sys ve io.sys dosyaları, bu işletim sisteminin Kernel dosyalarını oluşturmaktadır.
User (Kullanıcı) Mode Uygulama programları ise, User Mode denilen daha kısıtlı bir işlem seviyesinde çalışır. User modda çalışan programlar bellekte ancak kendileri için ayrılan alanlara erişebilirler ve ancak zararsız makina komutlarını işletebilirler. User modda çalışan uygulamalar, Kernel ya da başka uygulamaların bellek bölgelerine erişemezler, bazı kısıtlanmış işlemci komutlarını çalıştıramazlar ve donanım kaynaklarına doğrudan müdahale edemezler.
İntel işlemci modları Intel işlemcilerinde çalışan her koda 0, 1, 2, 3 biçiminde belirtilen öncelik derecelerinden biri atanır. 0 en yüksek önceliği, 3 en düşük önceliği belirtir. Yani bu işlemcilerde kernel mode ve user mode biçiminde 2 çalışma modu değil, toplam 4 çalışma modu vardır. Ancak Windows ve Linux gibi işletim sistemleri yalnızca 0 ve 3 modlarını kullanırlar. 0 kernel modunu, 3 ise user modunu temsil eder. 8086/8088 gibi eski işlemcilerde mod biti bulunmadığı için kernel ve user komutları arasında bir ayrım yapılmamaktadır.
Shell (Kabuk) Shell kullanıcı ile çekirdek arasında bulunan bir yazılım katmanıdır. Shell bir yorumlayıcıdır (command interpreter) Shell kullanıcılardan veya yazılımlardan gelen komutları algılar, düzenler ve Kernel ‘a iletir. Bir çok sistemde Shell ve Kernel kavramları birbiri ile iç içedir. İki farklı Shell çeşidi vardır: Komut istemi (CLI: command-line interface) kullanan Shell işlemlerin daha hızlı yapılmasını sağlar. (DOS, UNIX, LINUX) MS-DOS işletim sisteminde Shell olarak command.com kullanılır. Grafiksel arayüz (GUI: graphical user interface) kullanan Shell ise kullanıcının yapmak istediği işlemleri daha hızlı tarif edebilmesini sağlar. (Windows)
Sistem Çağrıları (System Calls) Bir sistem çağrısı bir user process’in kernel’dan bir hizmet isteği yapması için kullanılır. Hizmet genellikle, G/Ç işlemleri gibi sadece kernel ayrıcalığında olan şeylerdir. Sistem çağrıları, işletim sistemleri tarafından sunulan bir arayüzdür. Bu arayüz, user mode ile kernel mod arasında yer alır. Bir user kodu, bir trap’a neden olan bir sistem çağrısı yapabilir. Kernel, sistem çağırma işlemini gerçekleştirir.
Sistem Çağrıları (System Calls) Sistem Çağrıları sayesinde yazılımcı doğrudan donanıma müdahale etmez. Donanım üzerinde gerçekleştireceği işlemi sistem çağrısı kullanarak gerçekleştirir. Bu sayede olası sistem hatalarından kaçınılmış olur.
Sistem Çağrısı Çeşitleri Sistem Cağrısı Tipleri Process Control (Süreç Kontrolü) Process bitirme, iptal etme, yükleme, çalıştırma, create process(süreç yaratma), terminate process(süreç sonlandırma), process attributelerini getirme, process'e attribute atama, belli bir süre bekleme, bekleme event'ı, sinyal event'ı, memory bölgesini allocate, free işlemleri File Management (Dosya Yönetimi) dosya oluşturma, dosya silme, açma, kapama, okuma, yazma, konumunu değiştirme(reposition), dosya attributelerini getirme, atama Device Management (Aygıt Yönetimi) request device, release device, okuma, yazma, reposition, device attributelerini getirme, atama, mantıksal olarak aygıtları ilişkilendirmek, ayırmak Information Maintenance (Bilgilendirme Hizmeti) zamanı veya tarihi getirme, atama, sistem verisini getirme, atama, process, dosya veya device attributelerinin getirilmesi, atanması Communications (İletişim) iletişim bağlantısının yaratılması, silinmesi, mesaj alma, gönderme, durum bilgisinin transferi Protection (Koruma) dosyaların yazma, okuma, çalıştırma izinleri, kullanıcıların system call'lar üzerindeki yetkileri
Sistem Çağrısı Çeşitleri
Modern İşletim Sistemleri
UNIX İşletim Sistemi UNIX çok kullanıcılı ve çok görevli bir işletim sistemidir. Önce Bell laboratuvarlarında geliştirilmiş daha sonra da üniversitelere dağıtılmıştır. C programlama dili ile yazılmış ve programlama kodu ile araştırmacılara verilmiş olduğundan önemli gelişmeler ve eklere sahip olmuştur. Bugün hemen hemen tüm platformlarda çalışabilen jenerik bir işletim sistemidir. UNIX kontrolündeki bilgisayarlarda bir çok kullanıcı aynı anda bir çok programı çalıştırabilir. Bunun yanı sıra birçok servis programı ve program kütüphanesinin varlığı program geliştirmeyi kolaylaştırmaktadır. Yeni başlayanlar için öğrenilmesi ve kullanılması zor bir işletim sistemi olması UNIX’in olumsuz bir yönüdür.
UNIX İşletim Sistemi Katmanları Sürücü Arayüzü Monolitik Çekirdek Modülleri İşlem yönetimi Bellek yönetimi Dosya yönetimi Aygıt yönetimi altyapısı Sistem çağrı arayüzü Kütüphaneler Komutlar Uygulama Programları Sürücü Donanım Katmanı
LINUX Helsinki Üniversitesi'nde bilgisayar mühendisliği öğrencisi olan Linus Torvalds'ın 1991 yılında Intel'in yeni işlemcisi 80386'nın korumalı kip mimarisini denemek üzere geliştirmeye başladığı Unix tabanlı bir işletim sistemi çekirdeğidir. Linux tüm dünyadan birçok yazılımcının da desteği ile hızla gelişmiş ve halen aynı destek ile gelişmekte olan açık kaynak kodlu, özgür bir yazılımdır. Gömülü sistemlerden, süper bilgisayarlara kadar birçok donanım türünde kullanılan Linux dağıtımları da vardır.
0S/2 İşletim Sistemi OS/2, IBM ve Microsoft tarafından geliştirilmiş tek kullanıcılı ve çok görevli bir işletim sistemidir. DOS altında geliştirilmiş bir çok programı DOS uyumlu pencerede çalıştırabilir. DOS gibi komut bazlı bir işletim sistemi olmakla birlikte ek olarak bir de grafik tabanlı pencere ortamı içermektedir. Sunum yöneticisi denilen ara yüzle kullanım kolaylığı artmıştır. OS/2‘de DOS’tan ayrı olarak bir program çalışırken yeni bir ekran grubu açılarak yeni bir program çalıştırılabilir. 16 ekran penceresini aynı anda çalıştırabilir. OS/2 altında çalışan uygulama programlarının sınırlı olması nedeniyle beklenildiği kadar yaygınlaşmamıştır.
OS/2 Sistem Yapısı OS/2 Sisteminin Yapısı.
MS-DOS İşletim Sistemi DOS’un Microsoft tarafından satılanı MS-DOS, IBM tarafından satılanı PC- DOS (veya IBM-DOS) adıyla bilinir. Eski olmasına rağmen, MS-DOS (Microsoft Disk Operating System) hala kişisel bilgisayarlarda yaygın olarak kullanılan bir işletim sistemidir. MS-DOS tek kullanıcılı ve tek görevli bir işletim sistemidir. Değişik üreticilerin makinelerinde çalışmakla birlikte yine de IBM ve Microsoft tarafından lisans altında olduğu için tam anlamıyla jenerik bir işletim sistemi olarak sınıflandırılamaz. MS-DOS, UNIX işletim sisteminden bazı kavramları almıştır. Komutlara dayalı bir işletim sistemidir. Son sürümlerinde bazı menü tabanlı ara yüzler geliştirilmiştir.
MS-DOS Sisteminin Yapısı MS-DOS –küçük bellek alanında pek çok işlevin sağlanabilmesi için yazılmıştır: - Modüllere bölünmez; - Arayüzler ve işlev seviyeleri kesin ayrılmamıştır. a) Sistemin başlangıç durumu, b) Programın çalışması durumu
Windows İşletim Sistemi Windows işletim sistemi PC’lerde en yaygın kullanılan işletim sistemidir. 1985 yılında piyasaya sürülen ilk Windows sürümü aslında DOS üzerinde çalışan bir grafiksel kullanıcı arayüzünden ibarettir. 1993 tarihten sonra geliştirilen tüm Windows işletim ise sistemleri NT (New Technology) çekirdeğine sahiptir.
Windows NT/2000/XP İşletim Sistemi Katmanları İşlemci Ana Bellek Aygıtlar NT Yürütücüsü (Executive) Kütüphaneler İşlem Supervisor İşlem yönetimi Bellek yönetimi Dosya yönetimi Aygıt yönetimi altyapısı G/Ç Alt sistemi Nt Çekirdeği Donanım Soyutlama Katmanı Kullanıcı Altsistem
Macintosh/MacOS İşletim Sistemi Bu işletim sistemi Motorola Firmasının mikroişlemcileri üzerinde çalışırlar. Grafik arayüzü olan ilk işletim sistemi MacOS’tur. Bu işletim sistemi diğer işletim sistemlerine grafik arayüzü açısından öncülük etmiştir.