İŞLETİM SİSTEMLERİNE GİRİŞ 1
İşletim Sistemlerinin tanımını yapabilecek Bilgisayar teknolojilerini öğrenebilmek ve bu teknolojileri etkin olarak kullanabilmek için, işletim sistemleri konusunu iyi derecede bilmek önemli koşullardan birisidir. Çünkü işletim sistemleri, bilgisayarların hem donanımlarını hem de kullanıcı yazılımlarını kontrol eden önemli bir sistem parçasıdır. Bu açıdan bakıldığında işletim sistemlerinin, oldukça karmaşık olan bilgisayar donanımını daha kolay yönetilebilir ve programlanabilir bir seviyeye taşıdığını söylemek doğru olur. Günümüzde bir bilgisayarın birçok işi birlikte gerçekleyebildiğini bilmekteyiz. Örnek 1 Kullanıcı, bir bilgisayarda bir taraftan bir metin oluştururken diğer taraftan aynı bilgisayardan yazıcıya iş gönderebilir, müzik dinleyebilir veya film izleyebilir. bu işlemleri yapabilmek için yüksek miktarda bir koordinasyona ihtiyaç duyulur. Bilgisayar sistemlerinde bu koordinasyon görevini işletim sistemleri üstlenmiştir. 2
İşletim Sistemlerini layabilecek Bilgisayar sistemleri, donanım ve yazılım olmak üzere iki bileşenden oluşur. Sistemin donanım kısmı işlemci, ana bellek, grafik kartları ikinci seviye bellek üniteleri ve bu elemanları birleştiren kartlar gibi fiziksel bileşenlerden oluşur. Fiziksel bileşenlerin doğru olarak bir araya gelmesiyle oluşturulan bilgisayar sisteminin hizmet üretebilmesi için yazılım bileşenlerine ihtiyaç duyulur. Bilgisayar sistemlerinin yazılım bileşeni işletim sistemleri, yardımcı programlar ve uygulama programları olmak üzere üç kısımdan oluşur. 3
İşletim Sistemlerini layabilecek Kullanım kolaylığı açısından işletim sistemleri için aşağıdaki gibi bir tanım verilebilir. işletim sistemi, bilgisayar donanımı ile uygulama programları arasında yer alarak kullanıcıların bilgisayar sisteminden kolay yolla yararlanabilmesini sağlayan hizmet yazılımlarıdır. 4
İşletim Sistemlerini layabilecek uygulama programları çalışırken bilgisayarın fiziksel kaynaklarını kullanmaktadır. Bu durumu göz önüne alarak işletim sistemleri için yeni bir tanım yapılabilir. işletim sistemi, kullanıcı programlarının bilgisayarın fiziksel kaynaklarından yararlanmasını sağlayan hizmet yazılımıdır. 5
İşletim Sistemlerini layabilecek İşletim sistemleri, kaynakların kullanıcılar arasında verimli şekilde paylaştırılması, bunu yaparken verilerin bozulmaması ve izinsiz kullanıcıların verilere erişememesi gibi önlemler alınması görevleri bulunmaktadır. Bu ve bundan önceki iki slaytta verilen açıklamaları dikkate alarak kapsamlı bir işletim sistemi tanımı aşağıdaki gibi verilebilir İşletim sistemi, bilgisayar sistemini oluşturan fiziksel 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 işletim verimliliğini en üst düzeyde tutmayı amaçlayan bir yazılım sistemidir. 6
İşletim sistemlerinin sistem içerisindeki yerini tanımlayabilir İşletim sistemleri konusunun iyi anlaşılabilmesi için, bu bölümde bilgisayarın fizik bileşenleri konusu ele alınacaktır. Bilgisayar, Merkezi İşlem Birimi(CPU), Ana Bellek(RAM) ve Giriş/çıkış birilerinden oluşan bir sistemdir. Merkezi işlem birimi Yazmaç, Aritmetik-Mantık ve Denetim birimlerinden oluşmaktadır. Ana Bellek, sözcüklerden oluşan doğrusal bir dizi şeklinde düşünülebilir. Giriş/çıkış arabirimleri, giriş/çıkış sürücülerinin işlemci ve ana bellek ile bütünleşmesini sağlayan birimlerdir. Giriş çıkış birimleri, giriş/çıkış sürücüsü ve giriş/çıkış arabirimlerinden oluşur. Bu ders süresince bu iki bileşen giriş/çıkış birimi denilecektir. Merkezi işlem birimi, ana bellek ve giriş çıkış birimleri, bilgisayarın sistem donanımını oluşturmak üzere bir yol yapısı üzerinde bütünleşmiştir. 7
İşletim sistemlerinin sistem içerisindeki yerini tanımlayabilir Bilgisayarın Yapısı 8
İşletim sistemlerinin sistem içerisindeki yerini tanımlayabilir Adres yolu, merkezi işlem biriminin, okuma ya da yazma amacıyla erişmek istediği, ana bellek sözcüğü ya da giriş/çıkış arabirimi yazmacını belirlemede(adreslemede) kullanılan, genelde tek yönlü hatlardır. Veri Yolu, kimliği adres yolu üzerinde bulunan bellek sözcüğü ya da arabirim yazmaç içeriklerinin, buralardan ana işlem birimi yazmaçlarına ya da ana işlem birimi yazmaçlarından buralara iletildiği çift yönlü hatlardır. Denetim Yolu, merkezi işlem birimi ile ana bellek ve giriş/çıkış arabirimleri arasındaki zaman uyumlanmasına yarayan işaretlerin iletildiği hat grubudur. 9
İşletim sisteminin temel kavramlarını açıklayabilir İŞ : İşletim sistemlerinde iş, kullanıcıların sistemden bir bütün olarak ele alınmasını istedikleri işlemlere verilen addır. İş, program kavramının genişletilmiş şeklidir. Örnek: maaş hesabı yapan ve sonuçları bir tabloya kaydeden programla bu tablodan verileri okuyup maaş bordrosu oluşturan program birlikte bir iş oluşturabilir. Örnek: DOS(Disk Operating System) işletim sisteminde kullanıcılar, bir dosyaya birlikte işletilmesini istedikleri komut ya da program adlarını yazıp bu dosyanın uzantısını BAT olarak kaydederlerse bu tanımlama bir iş olur. Bu dosya komut satırında adı yazılarak çalıştırılabilir Benzer şekilde X tabanlı işletim sistemlerinde de iş dosyaları oluşturulabilir. 10
İşletim sisteminin temel kavramlarını açıklayabilir İŞ : İşletim sistemleri, üzerinde çalıştırılan iş sayısına göre, tek iş düzenli ve çok iş düzenli olmak üzere ikiye ayrılır. Tek İş Düzeni: Tek iş düzeni, bir bilgisayar sisteminde aynı anda tek bir işin işletime alınabildiği durumları tanımlar. Tek iş düzenine sahip bir sistem üzerinde aynı anda tek bir iş koşturulabilir. Bu durumda sistem kaynaklarının tamamı tek iş için tahsis edilir. Tek iş düzeni genel amaçlı bilgisayarların fiziksel kaynaklarının kısıtlı olduğu dönemde yaygın olarak kullanılmış ve fiziksel kaynakların artmasıyla yerini çok iş düzenine sahip sistemlere bırakmıştır. 11
İşletim sisteminin temel kavramlarını açıklayabilir İŞ : İşletim sistemleri, üzerinde çalıştırılan iş sayısına göre, tek iş düzenli ve çok iş düzenli olmak üzere ikiye ayrılır. Çok İş Düzeni: Çok İş düzeni, bilgisayar sisteminde, birden çok iş aynı anda işletime alınabildiği durumları tanımlar. Bilgisayarda merkezi işlem birimi, ana bellek ve ikinci seviye bellek ünitelerinin hızları birbirlerinden farklıdır. Tek iş düzenine sahip bir bilgisayarda ana belleğe göre çok hızlı olan merkezi işlem biriminin işleyeceği bilgilerin bulunduğu birimler yavaş olduğu için, merkezi işlem biriminin ölü zamanı çok fazla olur. Bilgisayar sisteminde, fiziksel bileşenler arasında en önemli yer tutan merkezi işlem birimini daha verimli kullanmak, bekler durumda kalmasını önlemek için birden fazla işi aynı anda işletime almak iyi bir yöntemdir. Aynı anda birden çok işin işletime alınması, bir işin işletilmesi sonlanmadan diğer işlerinde işletimlerinin başlatılması demektir. Örneğin, işletilmek olan bir iş giriş/çıkış işletimi başlattığında bu işe ait giriş/çıkış süresince merkezi işlem biriminin(mib) boş kalmasını önlemek üzere yeni bir iş işletime alınır ve böylece çok iş düzeni kurulur. 12
İşletim sisteminin temel kavramlarını açıklayabilir Üç ayrı işin bilgisayarda çalışmasını gösteren çizelge Şekilden görüldüğü gibi sistemde üç işin birlikte çalışması sırasında işlemci(mib) çok kısa bir süre boş kalıyor 13
İşletim sisteminin temel kavramlarını açıklayabilir İŞ : Alıştırma Bir sistemde üç ayrı işin birlikte çalışması yerine tek iş çalışması durumunda işlemcinin boş kalma zamanı nasıl değişir. Bir çizelge üzerinde gösteriniz? Alıştırma Aynı çizelgeyi bir sistemde 5 işin birlikte çalışma durumu için yeniden çiziniz? 14
İşletim sisteminin temel kavramlarını açıklayabilir Görev ve Çok Görevli işlem: Görev, herhangi bir programın işletimine verilen addır. Bir görevin yerine getirilmesi için yürütülmesi gereken her bir adım da işlem (Process) olarak düşünülebilir. Çok iş düzeninin uygulandığı bilgisayar sistemlerinde, aynı anda birden çok işin ele alınabilmesi, sistem kaynaklarının değişik işler ya da programlar arasında paylaştırılmasını gerektirir. Ana işlem biriminin, önemli bir kaynak olarak, programlar arasında paylaştırılması, işletilmekte olan bir programın kesilerek diğer bir programın işletime alınmasını gerektirir. İşletimi kesilen programın işletimine, daha sonra kalınan yerden devam edilebilmesi ve işletim bütünlüğünün korunabilmesi için işletimin kesildiği konuma ilişkin durum bilgilerinin saklanması gereklidir. Bu amaçla, işletilen her program için, bu bilgilerin saklandığı bir veri yapısı öngörülür. İlgili programın her kesilişinde program sayacı, yığıt sayacı gibi programın kullandığı ana işlem birimi yazmaç içerikleri, programın saklandığı kütük kimliği, programca açılmış kütüklerin bulunduğu alt kılavuz kimlikleri gibi bilgiler bu veri yapılarına saklanır. Bir program işletime alınacağı zaman, ana işlem birimi yazmaç içerikleri ve diğer işletimle ilgili değişkenler, bu bilgilerle güncellenerek işletimin kalınan yerden sürdürülmesi ve işletim bütünlüğünün korunması sağlanır. Böylece, programlar komut satırları olarak değil de, işletim bilgilerinin tutulduğu, görev iskeleti, denetim öbeği gibi adlarla anılan veri yapılarıyla ele alınmış olurlar. Sistem yönünden bakıldığında birlikte işletilen komut dizileri (programlar) yerine değişik görev iskeletleri ya da denetim öbekleri arasında anahtarlanan bir ana işlem birimi söz konusu olur. Programın, işletim aşamasında iskelet adı verilen yapısı ile ele alınan biçimine görev adı verilir. 15
İşletim sisteminin temel kavramlarını açıklayabilir Görev ve Çok Görevli işlem: Tek Görevli Sistem, aynı anda birden fazla görevin yürütülemediği, başka bir görevin başlatılabilmesi için diğer görevin sonlandırılması gerektiği sistemlerdir. (Ms-DOS işletim sistemi). Çok görevli sistem, aynı anda birden fazla görevin başlatılıp aynı anda sürdürülebildiği sistemlerdir. Bu sistemlerde, sistem kaynakları görevler arasında paylaştırılır, gerektiğinde bu kaynaklar bir diğer göreve aktarılabilir (Windows, Linux, Unix gibi). 16
İşletim sisteminin temel kavramlarını açıklayabilir Toplu İşlem Etkileşimli İşlem: Toplu işlem(batch processing), işlerin sisteme biriktirilerek aralıklarla sunulduğu durumu tanımlar. Toplu İşlem Yönteminde 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. Bu yöntemde işi oluşturan adımlar, bir bütün olarak ele alınıp topluca işletilirler. Kullanıcıların, adımlar arsında işletim akışını izleme, değiştirme imkanları yoktur. Toplu işlem bilgisayarların yeni yeni kullanılmaya başladığı 1960 lı yıllardan kalan bir işletim türüdür. Bu yıllarda kullanıcılar programların delikli kartlara yazarak bilgi işlem merkezine iletmekte, kullanıcıların kartları bilgi işlem merkezinde kutularda biriktirilmekte ve kutular dolunca okutularak sisteme sunulmaktadır. Bu işlem türüne, İngilizcede batch processing denmiştir. 17
İşletim sisteminin temel kavramlarını açıklayabilir Toplu İşlem Etkileşimli İşlem: Etkileşimli işlem, kullanıcıların işleri, 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 durumları tanımlar. Güncel işletim sistemleri, etkileşimli işlem ortamında sunulan işleri toplu işlem ortamında sunulan işlere göre öncelikli olarak ele alır. Sisteme, toplu ya da etkileşimli ortamdan sunulan işler görevlere dönüştürülür. Etkileşimli ortamdan sunulan işler doğrudan görevlere dönüştürülürken, toplu işlem ortamında sunulan işler görevlere dönüştürülmeden önce, toplu işlem kuyruğunda bekletilir. İşletim sisteminin iş yönetimi kısmı, kuyruk başında bekleyen işleri zaman zaman görevlere dönüştürerek hazır görevler kuyruğuna ekler. Toplu işlem ortamında sunulan işler, etkileşimli işlem ortamında sunulan işlerden arda kalan sürelerde sistem kaynaklarını dolu tutmak ve böylelikle kaynak kullanım verimliliği arttırmak amacıyla kullanılır. Kimi zaman işletim sistemi, dengesiz ve aşırı kaynak talep eden işleri toplu işlem kuyruklarına sunulmaya da zorlayabilir. Bu durum, işletim sisteminin görev yönetimi bölümü tarafından yönetilir. 18
İşletim sisteminin temel kavramlarını açıklayabilir Gerçek Zamanlı İşlem: Gerçek zamanlı işlem, etkileşimli işlemde, sistemin yanıt süresine bir üst sınır konabilmesi durumunda yapılan işlem türüne verilen addır. Gerçek zamanlı işlem, terminaller aracılığıyla hizmet alınan çok kullanıcılı bilgisayar sistemlerinden çok, yanıt süresinin üretilen hizmetin nitelik ve güvenliği yönünden çok kritik olduğu, endüstriyel süreç denetimi gibi özel uygulamaların yapıldığı bilgisayar sistemlerinde kullanılan bir işlem türüdür. Bir sistemde işlenecek veriler bilgisayar sistemine dolaysız ve aracısız bir biçimde aktarılıyor ise yapılan uygulama çevrim içi bir uygulamadır. 19
İşletim sisteminin kısımlarını ve bu kısımların görevlerini açıklayabilir İşletim sisteminin yerine getirdiği işlevler çoğu kere yönetim işlevidir. Buradaki yönetim sözcüğü, kaynakları, belirlenen amaca, en yüksek verimi elde edecek biçimde yönlendirme olarak düşünülmelidir. Aşağıda işletim sisteminin kısımları şekil üzerinde gösterilmiştir. İşletim sisteminin çekirdek katmanı bilgisayarın fiziksel bileşenlerine en yakın olan katmandır. Bu katmanda G/Ç sistemi, görev yönetimi ve zamanlama düzenekleri bulunur. Ana bellek yönetimi, ağ yönetimi ve dosya yönetimi kabuk ile çekirdek arasındaki ara katmanda bulunur. İşletim sisteminin kullanıcı ile iletişim kurduğu komut yorumlama kesimi kabuk katmanında yer almaktadır. 20
İşletim sisteminin kısımlarını ve bu kısımların görevlerini açıklayabilir Merkezi İşlem Biriminin(İşlemci) Yönetimi Merkezi işlem birimi(işlemci), bir bilgisayar sisteminin en önemli kaynağını oluşturur. Bu önemli kaynağın kullanıcılar arasında paylaştırılması, ana işlem biriminin yönetimi kapsamında ele alınır. Ana işlem birimi, kullanıcı programlarının birlikte işletilmesiyle paylaştırılır. Bir program tümüyle sonlanmadan bir diğerinin de işletime alınması, bu programların birlikte işletilmesi olarak bilinir. Programlar, birlikte işletimin gereği olarak zaman zaman kesilerek ana işlem birimini diğer programlara bırakmak zorunda kalırlar. Bu biçimde kesilen bir programın, işletimini sorunsuz sürdürebilmesi için kesildiği andaki işletim ortamının saklanması gereklidir. Bu amaçla işletime alınan tüm programlar için iskelet adı verilen özel veri yapıları tutulur. Bir program işletime alınacağı zaman, işletim ortamını belirleyen ana işlem birimi yazmaçları bu program iskeletindeki bilgilerle güncellenir. Program işletimi, bu biçimiyle görev olarak adlandırılır. Ana işlem birimi yönetimi, bu nedenle görev yönetimi olarak da adlandırılır. İlerleyen bölümlerde işletim sistemlerinin görev yönetimi konusu detaylı olarak ele alınacaktır. l 21
İşletim sisteminin kısımlarını ve bu kısımların görevlerini açıklayabilir Zaman Uyumlama İşlevleri Bilgisayar sistemlerinde var olan kaynak sayısı, sistemde aynı anda işletime alınan görev sayısından her zaman daha azdır. Bu nedenle görevler kaynakları paylaşmak durumunda kalırlar. Görevlerin kaynakları gerekli önlemler alınmadan rastgele paylaşması işletim bütünlüğünü bozabilir. Bu duruma en iyi örneklerden biri, bir görev bir yazıcıya iş gönderdiğinde görevin işletimi kesilerek diğer bir görevin işletime alınması ve bu görevinde yazıcıya iş gönderme durumudur. Kolayca kestirilebileceği gibi, bu şekilde gerçekleşen bir çalışma düzeni olsaydı yazıcıdan alınan çıktı anlaşılabilir bir çık olmazdı. Dolayısı ile bu örnekteki ve benzer işlemlerin bölünmez biçimde yürütülmesi gerekir. Bu nedenle kaynak paylaşımında işlem bölünmezliği, görev yapılarına zaman uyumlama işlevi, olarak adlandırılan özel bir programlama araçlarıyla gerçekleşir. 22
İşletim sisteminin kısımlarını ve bu kısımların görevlerini açıklayabilir Giriş/Çıkış Sistemi Giriş / çıkış birimleri verileri hem bilgisayar sistemiyle dijital ortam arasında iki yönlü aktarımını sağlayan hem de bunların bilgisayar ortamlarında saklanmasına yarayan bölümlerdir. Giriş / çıkış komutları, giriş/çıkış sürücüleri ve arabirimlerinden oluşur. Bilgisayar sistemi aynı anda birden çok giriş/çıkış birimini kontrol etmektedir. Bunun için çoğu kez sürücü arabirim arası aktarım işlemleri bir kez başlatıldıktan sonra, aktarım sonunda ara birimlerin ana işlem birimini uyarması öngörülür. Bu yolla ana işlem biriminin birden çok arabirimi eş zamanlı olarak denetleyebilmesi sağlanır. Arabirimler iş bittiğinde ana işlem birimine kesilme uyarıları gönderir. Değişik giriş/çıkış arabirimlerinden aynı anda ve zaman uyumsuz olarak gelen bu uyarılar hiçbir veri kaybına yol açmadan ve birimlerin öncelik sırası gözetilerek ele alınması, kesilmelerin yönetimi olarak bilinir. Kesilmelerin yönetimi giriş/çıkış kapsamında düşünülmüştür. Verilerin, giriş/çıkış birimleriyle ana bellek arasında aktarılması her zaman kesilme düzeneğine dayalı olarak yapılmaz. Özellikle disk gibi hızlı giriş/çıkış birimlerinden veriler doğrudan bellek erişimi olarak adlandırılan bir başka yöntemle aktarılırlar. 23
İşletim sisteminin kısımlarını ve bu kısımların görevlerini açıklayabilir Dosya Yönetimi Dosya Yönetimi(kütük yönetimi), kullanıcılara ana bellek dışında saklanan veriler üzerinde kolay ve hızlı işlem yapabilme imkanı veren işletim sistemi kesimidir. Dosyaların üzerinde yapılan işlemler açma, okuma, yazma ve kapamadır. Kullanıcılar bu işlemleri üst düzey programlama dilleri aracılığı ile geçekleştirir. Kullanıcılar dosyaları, gerçekliği olan mantıksal dosyalar olarak düşünür. Sistemde dosyalar ise disk üzerinde yüzey, silindir ve sektörler üzerinde fiziksel olarak bulunur. Mantıksak tutanaklar üzerinde tanımlanan işlemlerin fiziksel olarak gerçekleştirilmesi ve donanım karmaşıklığının kullanıcıdan gizlenmesi dosya yönetiminin temel işlevidir. Bundan başka disk alanlarının verimli kullanılması, bu alanlara hızlı erişim sağlanması için düzenlemeler yapılması, dosyalara yer sağlanması, boş alanların izlenmesi, dosyaların isimlendirilmesi, gruplandırılması, çok görevli sistemlerde bütünlüğün bozulmadan çalıştırılması, dosyaların bozulma ve silinmelere karşı korunması, dosya içerikleri açısından gizliliğin sağlanması dosya yönetimi kesiminin görevleri arasındadır. 24
İşletim sisteminin kısımlarını ve bu kısımların görevlerini açıklayabilir Sistem Komut Yorumlayıcı İşletim sisteminin kullanıcıyla iletişim kurduğu katman kabuk katmanıdır. Kabuk katmanında sistem komut yorumlayıcısı bulunur. Sistem komut yorumlayıcısı kullanıcıların girdikleri komutları yorumlayarak, bu komutlarla tanımlanan işlemleri yerine getirirler. Sistem komutları, kullanıcıların bilgisayar ortamında saklanan kütüklerini düzenleme, listeleme, görüntüleme, silme, kopyalama, adlandırma, iş tanımlama, iş çalıştırma, iz sürme, durum sorgulama, ileti gönderme, oturum sonlandırma gibi işlemleri yerine getirmek için kullanılır. Komutlar, yerine getirilecek işlemi hatırlatacak şekilde, kısaltarak isimlendirilir(type, list, cd, md, rm). X tabanlı işletim sistemlerinde(unix, AIX, Linux, vb) komut yorumlama işlevi SHELL tarafından yerine getirilir. MS-DOS işletim sisteminde bu görev COMMAND tarafından yerine getirilir. Bilgisayar açıldığında, işletim sisteminin ana belleğe yüklenmesinden sonra komut yorumlama kesimi çalışmaya başlar. Çok kullanıcılı bilgisayar sistemlerinde, sisteme giren her kullanıcı için, komut yorumlayıcısı ile ilgili bir görev çalıştırılır. İşletim sistemlerinin komut yorumlayıcı kesimi uygulama programları ile aynı düzeyde çalışır. 25
Görev kavramını açıklayabilir Bilgisayar sistemlerinden beklenen performansı alabilmek işlemci(cpu), Ana Bellek(RAM) ve Giriş/çıkış(I/O) birimleri gibi fiziksel bileşenlerinin programlar arasında etkin bir biçimde paylaştırılması ile doğrudan ilgilidir. Sistemde işlemcinin programlar arasında paylaştırılması, programların çalışmasının birlikte yürütülmesi yoluyla sağlanmaktadır. Anahtarlama, işlemcinin bir programın işletilmesini daha sora devam edilmek üzere bırakıp, diğer bir programın işletilmesine geçmesini tanımlar. Bu tanımdan da anlaşılacağı gibi, işlemcinin paylaşımı, değişik programların işlemciyi belirli bir sıra ile anahtarlamasına karşılık gelir. Programların ana işlem birimine hangi sıra ve hangi kurallar çerçevesinde anahtarlanacağı, ana işlem biriminin yönetimi kapsamında ele alınır. Görev, bir programın çalıştığı sırada aldığı addır. 26
Görev kavramını açıklayabilir Programların, çalışabilmek için işlemciye anahtarlanmaları zorunludur. Ancak bunun yanı Programların, sıra ana belleğe çalışabilmek yüklenmeleri, için işlemciye işletimleri anahtarlanmaları sırasında ihtiyaç zorunludur. duyacakları Ancak giriş/çıkış bunun türü yanı sıra kaynakları, ana belleğe diğer yüklenmeleri, programlarla işletimleri yarışarak elde sırasında etmeleri ihtiyaç de gerekir. duyacakları giriş/çıkış Programlar, türü kaynakları, ana diğer bellek, programlarla giriş/çıkış birimleri yarışarak gibi elde kaynakları etmeleri ara de gerekir. işlem birimi aracılığı ile kullanır. Programlarının, ana belleğe yüklenebilmeleri, giriş/çıkış birimlerinden okumayazma Programlar, yapabilmeleri, ana bellek, giriş/çıkış işletimleri birimleri sırasında gibi gereksinim kaynakları ana duyabilecekleri işlem birimi aracılığı ek bellek ile alanlarını kullanır. Programlarının, elde edebilmeleri, ana belleğe işletim yüklenebilmeleri, sistemi içinde yer giriş/çıkış alan, ilgili birimlerinden yönetici ve okumayazma yapabilmeleri, ana işlem işletimleri birimine anahtarlanarak sırasında gereksinim çalıştırılmaları duyabilecekleri sonucu ek gerçekleşebilir. bellek sürücü görevlerin Buradan, alanlarını bir elde bilgisayar edebilmeleri, sisteminde işletim paylaşılan sistemi içinde kaynaklar yer alan, arasında ilgili yönetici en önemli ve sürücü kaynağın işlemci görevlerin olduğu ana tahmin işlem birimine edilebilir. anahtarlanarak çalıştırılmaları sonucu gerçekleşebilir. Buradan, bir bilgisayar sisteminde paylaşılan kaynaklar arasında en önemli kaynağın işlemci olduğu tahmin edilebilir. 27
Görev kavramını açıklayabilir Programların, çalışabilmek için işlemciye anahtarlanmaları zorunludur. Ancak bunun yanı sıra ana belleğe yüklenmeleri, işletimleri sırasında ihtiyaç duyacakları giriş/çıkış türü kaynakları, diğer programlarla yarışarak elde etmeleri de gerekir. Görev, bir programın işletimi sırasında aldığı addır. Sistem üzerinde bir program Programlar, ana bellek, giriş/çıkış birimleri gibi kaynakları ara işlem birimi aracılığı ile çalıştırılıyorsa bu durumda sistemde en az bir görevin tanımlı olduğunu söyleyebiliriz. kullanır. Programlarının, ana belleğe yüklenebilmeleri, giriş/çıkış birimlerinden okumayazma yapabilmeleri, işletimleri sırasında gereksinim duyabilecekleri ek bellek Bir sistemde bir program birden fazla kullanıcı tarafından ayrı ayrı işletiliyorsa, örneğin öğrenci işleri programı birden fazla kullanıcı tarafından çalıştırılıyorsa, her bir işletime alanlarını elde edebilmeleri, işletim sistemi içinde yer alan, ilgili yönetici ve sürücü en az ayrı bir görev karşılık gelir. görevlerin ana işlem birimine anahtarlanarak çalıştırılmaları sonucu gerçekleşebilir. Buradan, bir bilgisayar sisteminde paylaşılan kaynaklar arasında en önemli kaynağın işlemci olduğu tahmin edilebilir. Not Bir program, aynı kullanıcı tarafından ayrı ayrı çalıştırılıyorsa, bu durumda da programın her ayrı işletimine ayrı bir görev karşılık gelir. 28
Görev kavramını açıklayabilir Örnek Web tarayıcımız ile önce sakarya.edu.tr, sonra sıra ile metu.edu.tr, Linux.org.tr ve adamyo.sakarya.edu.tr sayfalarını açalım. Daha sonra görev yöneticisinden her bir işletim için ayrı bir görev oluştuğunu izleyelim.. 29
Görev kavramını açıklayabilir Alıştırma: Bilgisayarınızda herhangi bir programı üç kez çalıştırın ve görev yöneticisinden programın her bir işletimine bir görev karşılık geldiğini izleyin İp Ucu: Görev Yöneticisine ulaşmak için Ctrl+Alt+Del Tuşlarına basınız. 30
Görev kavramını açıklayabilir Program, içerdiği komutlar yönünden tektir. Ancak, önceki slaytlarda verilen örnekten de anlaşılacağı gibi sistemde programla(ie), değişik veri takımları ile yapılan birden çok işletim, birden çok göreve karşılık gelir. Not Görev, program kavramına işletim boyutunu da katan daha geniş bir kavramdır. Program durgun komut dizisini tanımlarken görev bu komut dizisinin işletimine karşılık gelir. 31
Görev kavramını açıklayabilir işlemcinin verimli kullanımı birden çok işin (programın), paralel işletimiyle sağlanır. İşlemcinin, paralel işletimi sağlamak üzere bir işletimi bırakıp diğer bir işletime geçmesi belirli önlemler alınmadan yapılamaz. Yarım bırakılan bir işletimin, tutarlı bir biçimde, kalınan noktadan sürdürülebilmesi, işletimin bırakıldığı andaki durum bilgilerinin saklanması yoluyla sağlanır. Sistemde her görev için işletim sistemi tarafından bir veri yapısı tutulur. Bu veri yapısı, örneğin işletimin hangi komuttan başlayarak sürdürüleceği bilgisini de içeren ana işlem birimi yazmaç içeriklerini, varsa kullanılan kütüklerle ilgili (kılavuz kütük, açık kütükler gibi) kimi bilgileri içermek durumundadır. Bu yapı, görev denetim öbeği, görev iskeleti gibi adlarla anılır. 32
Görev kavramını açıklayabilir Birden çok görevin birlikte işletildiği bir bilgisayar sisteminde, birinci görev(gi) işletilirken, ikinci görev(gj), sırası gelip işlemciye anahtarlanacağı zaman, önce, o anki işlemci yazmaç içerikleri, bu yazmaçlar arasında yer alan ve görev yazmacı olarak adlandırılan yazmacın, ana bellekte gösterdiği (işletimi kesilen) görev iskeletine saklanır. Bundan sonra görev yazmacı ikinci görevin iskeletini gösterecek biçimde, işletim sistemi (görev yöneticisi) tarafından güncellenir. Ana işlem birimi yazmaçları görev yazmacının gösterdiği iskeletteki değerlerle güncellenip yeni görevin işletimi başlatılır. Görev yazmacının güncellenmesi durumunda, o anki işlemci yazmaç içeriklerinin, saklanması ve yeni göreve ilişkin değerlerle güncellenmesi genellikle ana işlem birimi tarafından otomatik olarak (herhangi bir işletim yordamı çalıştırılmaksızın) gerçekleşir. Bu işleme görev anahtarlama işlemi denir. 33
Görevlerin durumlarını tanımlayabilir Bilgisayarda çalıştırılan programlar, işletimi sırasında değişik işletim evrelerinden geçer. Bu evreler işlemcinin kullanımı bakımında kabaca çalışma ve bekleme evreleridir. Bu evrelere durum adı verilir. Bir görev, herhangi bir anda çalışır veya bekler durumda olabilir 34
Görevlerin durumlarını tanımlayabilir 35
Görevlerin durumlarını tanımlayabilir Durum Çizelgelerinde: Durumların her biri bir çember ile simgelenir. Görevin bir durumdan diğer bir duruma geçmesi oklar ile ifade edilir ve oklar geçiş olarak adlandırılır. Bir durumdan diğer bir duruma geçebilmenin gerektirdiği koşul, bu geçişi temsil eden okun üstüne yazılabilir. Bakınız: Bir önceki slayt 36
Görevlerin durumlarını tanımlayabilir Görevlerin işletimleri süresince bulunabildikleri tüm durumlar ile bu durumlar arası geçişlerden oluşan çizimlere Görev Durum Çizeneği denir. Dikkat: Görev Durum Çizeneğinde yer alan çalışır durumu, görevin işlemciyi kullanıyor olmasını, bekler durumu ise görevin işlemciyi yeniden kullanabilmek üzere, başlattığı bir işlemin (örneğin diskten okuma işleminin) sonlanmasını beklemesi anlamına gelmektedir. İşlemciyi kullanabilir duruma gelen görevler kısaca Hazır Görevler olarak anılırlar. 37
Görevlerin durumlarını tanımlayabilir Dikkat: Bu durumda, önceki şekilde bekler olarak tanımlanan görevler, daha ayrıntılı bir biçimde, bir koşulun oluşmasını bekleyen görevler ve işlemciye anahtarlanmak üzere hazır bekleyen görevler olarak ayrıştırılabilirler. 38
Görevlerin durumlarını tanımlayabilir Programlar ya da daha genel olarak işler, bilgisayar sistemine çalıştırılmak üzere sunulduklarında, iskeletleri çatılarak görev ya da görevlere dönüştürülürler. ları yapılan bu görevler hazır görev sınıfına girerler (1). Hazır görevlerden biri, Görev Yönetici diye adlandırılan özel bir sistem görevi aracılığıyla işlemciye anahtarlanır ve çalışır göreve dönüşür (2). Çalışmakta olan bir görev değişik nedenlerle bu özelliğini yitirebilir. Çalışırken giriş/çıkış işlemi başlatan bir görev, bu işlem tümüyle sonlanmadan işletimine devam edemeyeceğinden bekler görev durumuna geçer işlemciyi kaybeder (işlemciyi bırakır) (3). Çalışmakta olan bu görev, işletiminin bitmesi durumunda ana işlem biriminin yanı sıra genelde sistem içindeki tanımını ve varlığını da yitirir (4). Etkileşimli işlemin uygulandığı bir bilgisayar sisteminde görevlerin işlemciyi belirli süreler içinde, sırayla kullanmaları istenir. işlemciye anahtarlanan bir görev, kendine ayrılan süre sona erdiğinde, yeniden hazır görev durumuna getirilir (5). Giriş/çıkış istemi, zaman uyumlama gibi nedenlerle bekler duruma geçen görevler, istemin yerine gelmesi, zaman uyumlamanın gerçekleşmesi gibi hallerde de yine çalışmaya hazır görev durumuna dönerler (6). 39
Ana Bellek Yönetimi kavramını açıklayabilir. Görev Yönetimi bölümüne «Bilgisayar sistemlerinden beklenen performansı alabilmek işlemci(cpu), ana bellek(ram) ve giriş/çıkış(i/o) birimleri gibi fiziksel bileşenlerinin programlar arasında etkin bir biçimde paylaştırılması ile doğrudan ilgilidir.» şeklinde bir cümle ile başlamış ve o bölümde görev yönetimi konusunu ele almıştık. Bu bölümde de Ana Bellek Yönetimi konusunu ele alacağız ve bilgisayar sistem en önemli parçalarından biri olan ana belleğin yönetimi için aşağıdaki tanımı vereceğiz. Ana Bellek Yönetimi, Ana Belleğin görevler arasında paylaştırılmasıdır. İşletim sistemi içinde bu işlevi karşılayan kesime Ana Bellek Yöneticisi ya da kısaca Bellek Yönetici denir. 40
Ana Bellek Yönetimi kavramını açıklayabilir. Ana Bellek yöneticinin görevleri: o Programların ve islenen verilerin ana bellekte yer alacakları konumların belirlenmesi, o Programların gereksinim duyduğu alanların sağlanması, ve bu bellek alanlarının düzenlenmesi, izlenmesi o Programların kendine ayrılan alanların dışına tasmalarının denetlenmesi 41
Ana Bellek Yönetimi kavramını açıklayabilir. : Ana Bellek, Programların ve verilerin işlem aşamasında yer aldığı, işlemcinin dolaysız erişebildiği asıl bellektir. Ana Bellek, aynı zamanda canlı bellek, yarı iletken bellek, RAM bellek gibi adlarla da anılır. Üst düzey programlama dilleri ile hazırlanan kaynak kodlar(source Kod) içerisinde serbestçe belirlenen ve programın çalıştırılması sırasında işlenecek verilere karşılık gelen değişkenler, programın, çalıştırılır dosya haline getirilmesinden sonra, ana bellek için mantıksal adreslere dönüşürler. Programın çalıştırılması(ana Belleğe Yüklenmesi) sırasında bu mantıksal adresler bellekteki fiziksel adreslere dönüşürler. Bir sonraki slaytta Mantıksal ve fiziksel adres kavramları şekil üzerinde gösterilmiştir. 42
Ana Bellek Yönetimi kavramını açıklayabilir. 43
Ana Bellek Yönetimi kavramını açıklayabilir. Çok kullanıcılı-çok görev, ve Tek kullanıcılı-çok görev iş düzenlerinin sağlanabilmesi için, işlemcinin görevler arasında paylaştırılması gerekir. Von Neumann mimarisinde, ana bellek işlemci ile birlikte düşünülmüştür. Buna göre, birden fazla görevin birlikte yürütülmesi için, ana belleğin de görevler arasında paylaştırılması gerekir. Ana belleğin görevler arasında paylaştırılması işletim sistemlerinin ana bellek yöneticisi kısmı tarafından yürütülür. İşletim sistemlerinde, ana bellek yönetimi için değişik yöntemler kullanılır. Bu yöntemler değişik yetkinlik ve dolaysıyla karmaşıklık düzelerine sahiptir. Bu bölümde bundan sonra ele alınacak ana bellek yönetim yöntemlerinin bir kısmı bugün kullanılmamaktadır. Güncel olan ana bellek yönetim yöntemlerini tam olarak anlayabilmek için, yöntemlerden bugün kullanılmayanlarda dahil olmak üzere tamamı tarihi süreç içerisinde ele alınacaktır. 44