İşletim Sistemleri 1.Bölüm Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Bilgisayar Sistemlerinin Yapısı İşletim sistemleri, bir veya daha fazla sürecin (proses) donanım kaynaklarınıkullanmasını sağlayarak, bilgisayar sistemi kullanıcılarına çeşitli hizmetler sunar. Bilgisayar Sisteminin Temel Elemanları İşlemci (Ana işlem birimi – AİB) Ana Hafıza Gerçek hafıza veya birincil hafıza olarak da bilinir. Elektrik kesildiğinde bilgileri kaybolduğundan, uçucu bir hafızadır. G/Ç modülleri İkincil hafıza sürücüleri(Sabit Disk vb.) Haberleşme birimleri Terminaller (uç birimler) Sistem BUS (Adres yolu, Veri Yolu, Denetim yolu) Süreçler, hafıza ve G/Ç modülleri arasında haberleşmeyi sağlar. Şekil 1: Bilgisayar Sistemi. İşletim Sistemleri İşletim Sisteminin Tanımı Bilgisayar sistemleri donanım ve yazılım olarak adlandırılan iki temel bileşenden oluşurlar. Disk, disket, manyetik sürücüler, tuş takımı ve yazıcılar vb. elektronik nitelikli aksamlar, Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ bilgisayar donanımı olarak adlandırılırlar. Bilgisayar donanımlarının nasıl çalışacağını ve neler yapacağını denetleyen diğer bilgisayar sistemi bileşenine veya başka bir deyişle program/yazılım topluluğuna ise işletim sistemidenir.En yaygın kullanılan işletim sistemleri Microsoft Windows ve UNIX işletim sistemleridir. İşletim sistemi, bütün yazılımların belleğe, girdi/çıktı (I/O)aygıtlarına ve dosyasistemine erişimini sağlar. Birden fazla program aynıanda çalışıyorsa, işletim sistemi herprograma yeterli sistem kaynağınıayırmaktan ve birbirleri ile çakışmamalarınısağlamaktanda sorumludur. Genellikle yazılım ve program kavramları birbirlerinin yerine kullanılsa da temel olarak bir program belli işlevleri yerine getirmek üzere yazılmıştır ve komut satırlarından oluşur. Yazılım ise programlar bütününe verilen isimdir. Bir bilgisayar üzerinde bulunan yazılımları iki ana kategoride toplamak mümkündür. Bunlar; Sistem yazılımları ve uygulama yazılımlarıdır. Şekil 2: Yazılım Türleri Şekilde görüldüğü gibi, sistem yazılımları donanımın hemen üzerinde uygulama yazılımları ile donanım arasındaki bağlantıyı oluşturmaktadır. Aynı şekilde, uygulama yazılımları da kullanıcı ile bilgisayar arasındaki iletişimi sağlamaktadır. Uygulama yazılımları, bilgisayarın okuyabildiği dillerle, yani programlama dilleriyle geliştirilirler. Sistem yazılımları ise, bilgisayar sisteminin genel işlerini yaparlar. Bir anlamda, uygulama yazılımlarının çalışabilmesi için gerekli altyapıyı sağlarlar. Yardımcı yazılımlar ise, işletim sisteminin yeteneklerini ve işlevlerini genişleten bir bakıma tamamlayan yazılımlardır. Örneğin bilgisayarı kurmaya yarayan ancak işletim sisteminin içerisinde olmayan yazılımları bu sınıfa girer. Disk formatlama, dosya kopyalama, modemle haberleşme ve veri iletişim aktiviteleri yardımcı yazılımlarla gerçekleştirilir. ASSEMBLY / MAKİNE DİLİ NEDİR? İşletim Sistemlerinin Amaçları İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.Programın amacı kullanıcı programlarını çalıştırmak için kullanıcıya ortam oluşturmaktır.İşletim sistemi bilgisayarı, yazılım ve donanımlarını kullanmak için elverişli duruma getirir vedonanımı etkili kullanır. Buna göre işletim sistemlerinin başlıca amaçları: Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ * Kullanıcı programlarını çalıştırılması. * Kullanıcı problemlerinin çözümünün kolaylaştırılması. * Bilgisayar sisteminin kullanımını daha elverişli hale getirilmesi. * Bilgisayar kaynaklarının verimli bir şekilde kullanılması. Bunların haricinde; İşletim sistemi, donanımla yazılım arasında bir yönetici ara yüzü olarak görev yapar. Herbir donanım birimi, tüm kaynakları erişip yönetebilmektedir. Çalışma sırasında oluşan hataların ve çakışmaların önlenmesi işletim sisteminingörevidir. İşletim sistemleri bilgisayar kullanıcısı ile donanım arasında çalışan bir yazılımdır. Amacı kullanıcının programlarını çalıştırabilmesi için ortam sağlamaktır. İşletim sistemi faklı kullanıcıların uygulama programlarının donanım kaynaklarınıkullanımını kontrol eder ve koordine eder. Sistem Kaynakları Sistem kaynakları, bilgisayar sistemi içerisinde kullanılan aygıtların (seri, paralel, usbport, fare v.s.), programların kontrol edilebilmesi, kullanıcılara hizmet edebilmesi içingerekli mekanizmalarıanlatmak için kullanılan kelimelerdir. Sistem kaynakları, sistemiçerisindeki donanım elemanlarının CPU ile haberleşebilmesi için paylaştırılır.Sistem kaynaklarıiki veya daha fazla donanımın aynızamanda haberleşmeyeçalışmasını engeller. CPU’nun(İşlemci) sistem aygıtlarını tanımlayabilmesini ve onlar ilehaberleşebilmesini sağlar. Kesme İstekleri (IRQ) IRQ İngilizce karşılığı InterruptRequest, yani kesme isteği kelimelerininkısaltmasıdır. IRQ ile donanımlar sistem işlemcisi ile iletişim kurarlar. Bir nevi herdonanımın özel adresi denebilir.Bilgisayarımızın merkezi işlem ünitesi olarak CPU çevre birimleri ile olan tümiletişimleri başlatır, onların yönetimini elinde tutar. Peki, herhangi bir çevre birimi CPU'nunkendisi ile ilgilenmesini nasıl sağlayacak, onun dikkatini nasıl çekecek. İşte bu noktada IRQ(Donanım kesmeleri) devreye girer. IRQ, çevre birimlerinin dikkat çekmek için kullandığıbir yöntemdir. İşlemcinin, normal yürütüm sırasını değiştirmek ve gereksinim duyulan başka bir işivarsa onu yerine getirmek için kesme programları kullanılır. Kesme sürecinde kontrolü kesmeprogramı devralır. Kesmeler işletim sistemlerinin genel bir parçasıdırlar. Kesmeler: İşlemcinin etkinliğini artırır. Bir G/Ç işlemi yapılırken, işlemcinin diğer komutları yürütmesine olanak verir. Bir sürecin geçici olarak durdurulmasına (sonradan çalıştırılmak üzere) sebep olurlar. Kesmelerin çalışma prensipleri şu şekildedir; İşlemci, kesmeleri kontrol eder. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Eğer kesme yoksa, mevcut program içinde işlemci bir sonraki komut alır. Eğer kesme varsa, mevcut çalışan program olduğu yerde bırakılır (çalışmasınıbitirmeyi beklemeksizin) ve kesme programı idareyi ele alır. Şekil 3: Kesmeli bir komut saykılı(tur, devir). Doğrudan Bellek Erişimi (DMA) DMA İngilizce karşılığıDirect Memory Access anlamına gelen direkthafıza erişimi kelimelerinin kısaltmasıdır. Özellikle disk sürücüleri ve benzericihazlar için bu seçeneğin aktif halde olmasıbelli bir performans artışısağlamaktadır. Çünkü bu durum sayesinde cihaz gerek duyduğu bilgileriişlemciye uğramadan direk olarak sistem belleğinden elde edebilir. Bu kanallar sistem belleğine bazıaygıtların (ses kartı, ethernet kartıgibi) erişimini hızlandırmak için kullanılırlar. Bir sabit disk disk denetleyicisi sabit diskten bazı verileri aldıktan sonra bunlarıRAM'e depolamak ister. Aynı şekilde yerel iletişim ağı(ethernet)kartından da veri geldiğinde bunların RAM'edepolanması gerekebilir. BunlarıI/O adresleri üzerinden CPU'ya oradan da RAM'e göndermek yerine bazı kartların kullanabildiği DMA(Direct Memory Access - direk bellek erişimi) kanallarıvasıtasıyla daha hızlı ve CPU'yu dameşgul etmeden direk RAM'e ulaştırmak mümkün. Bu sayede CPU meşgul edilmemiş olacak ve de bizim isteğimiz daha hızlı bir şekilde yerine getirilmiş olacaktır. Giriş/ÇıkışAdresleri (I/O) Bilgisayarımızın patronu olan CPU'nun çevre aygıtlarıyla ve devre kartları(ses kartı, Ethernet kartıvs.) ile iletişim kurmak ve bu aygıtlarıbirbirinden ayırt edebilmek içinkullandığıGiriş/Çıkış(Input/Output) adresleridir. Bu adresler "port adresleri" veya "donanımadresleri" olarak da bilinir. Zaten CPU'nun dışdünya ile iletişim kurmak için kullandığıikiyol vardır denilebilir. Bunlardan biri bilgisayarımızın ana belleğinin adresleri diğeri debahsedildiği üzere I/O adresleridir. I/O Adres Çakışmaları Her kartın mikroişlemci ile haberleşmesi için farklıbir I/O adresi vardır. Birden fazlakartınaynıadresikullanmasıdurumuna çakışma denir. İki kartın aynı adresi kullanması durumunda mikroişlemci tarafından gönderilen komutlar bu kartlar tarafından Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ doğrualgılanmaz. Bu durum kartların çalışmamasına ya da hatalıçalışmasına neden olur.Çoğu çevre birimi ve kartlar tek bir I/O adres aralığınıkullanır. En basit şekliyleklavyenizinkullandığıI/O adres aralığınıbaşka bir kart kullanmaya kalkarsa, bu kartçalışmayacak, bununla birlikte klavyeniz de devre dışıkalacaktır. İŞLETİM SİSTEMLERİNİN BİLEŞENLERİ Birbirinden farklı çeşitli işletim sistemleri bulunmasına rağmen, bunlar arasında ortak yapı özellikleri ve bileşenleri vardır. Fonksiyonel bakımdan işletim sistemlerinin bileşenleri: Görev yönetimi (Process Manager) Ana bellek yönetimi (Memory Manager) Kütük yönetimi (File Manager) Disk (2. bellek) yönetimi (Second Storage) Ağ üzerinde çalışma (Ağ fonksiyonları yönetimi: Networking) Sistem koruması Komut derleyici sistemler Bu bileşenler aşağıda kısaca açıklanmaktadır. Daha ileri ki bölümlerde, her biri ayrıntılı bir şekilde verilecektir. Görev Yönetimi Genel halde görev çalışır durumda olan programdır. Bu program pasif bir varlıktır. Görev ise aktiftir. Görevler, AİB zamanı, bellek, kütükler, G/Ç aygıt kaynakları gerektirir. Bu kaynaklar ilgili göreve onun oluştuğu anda aktarılır. Görev sonlandıktan veya kesildikten sonra, işletim sistemi bu kaynakları görevden alır ve bir diğer görevle arasında paylaştırır. Görevin çalışması ardışık işlemlerdir. Her bir zaman diliminde ana işlem birimi tarafından görevi bir komut çalıştırır. İki görev aynı programa ait olsa da ayrı görevler gibi bakılır ve çalıştırılır. Görev işletim sisteminde bir iş birimidir. İşletim sistemi, farklı görevlerin aynı zamanda çalışmasını ve kaynakların ortak kullanımını kontrol eder. İşletim sistemi, görev yönetiminde aşağıdaki işleri icra eder: Kullanıcı ve sistem birimlerinin oluşturulması, silinmesi Görevlerin oluşturulması, durdurulması ve yeniden çalıştırılması Görevlerin zamana uyum sağlama mekanizmasının gerçekleştirilmesi Görevler arasında iletişim sağlanması Kilitlenmelerin yönetimi İki görev aynı zamanda çalıştırıldığında aynı kaynakları kullanmak isteyebilirler. Bu durumda, zamana uyum sağlama mekanizması kullanılır. (Örneğin, araçların trafikte yeşil yanıncaya kadar bekleyip sonra geçmesi gibi) Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Ortak kaynakların kullanımında her iki görev de bekleme durumuna geçerse (bu sonsuz döngü oluşturur) kilitlenme olur. Yani, biri diğerinin sonucunu beklerken, diğeri de ötekinin sonucunu bekler. Ana Belleğin Yönetimi Bellek her birisinin kendi adresi olan baytlar veya kelimelerden oluşan büyük dizidir. Bellek AİB ve G/Ç aygıtlarının paylaştığı ve hızlı erişilebilen bir veri ambarıdır. Ana Bellek geçici bellektir. Ana işlem biriminin (AİB) verimliliğini ve kullanıcı sorgularına yanıt verme hızını yükseltmek için, bellekte aynı zamanda birden fazla program saklanması gereklidir. Bu halde belleğin yönetimi için farklı yaklaşımlar ve algoritmalar kullanılmaktadır. Bu yaklaşımların seçimi, birçok farklı özellikte sistemin donanım tasarımına bağlıdır. Bellek yönetimiyle ilgili her bir algoritma özel donanım desteği gerektirir. Bellek yönetimi ile ilgili, işletim sistem aşağıdakilerden sorumludur: Belleğin şimdiki durumda, hangi kısmının ve kim tarafından kullanıldığı hakkında bilginin elde edilmesi Bellek alanı boş olduğunda bu alana hangi görevlerin yüklenmesi hakkında, karar oluşturulması Kütük Yönetimi Kütük, oluşturucusu tarafından belirlenmiş ilişkili bilgiler topluluğudur. Çoğunlukla, kütükler kaynak ve nesne türünde programları ve verileri ifade ederler. Görev ve bellek yönetimi kullanıcı için sanaldır. Kütük yönetimi ise kullanıcıyı görsel olarak ilgilendirir. Örneğin; diske yazılan kütükle, CD’ye yazılan kütük birbirinden farklıdır. Ancak İşletim Sistem bu ayrıntıları saklar ve aynıymış gibi görüntülenmesini sağlar. Yani, bilgi istenilen kütükte amacına uygun bir şekilde depolanır. Bilgisayar sisteminin kullanımı kolaylaştırmak için İşletim Sistemi veri depolarını aynı biçimli mantıksal görünümde olmasını sağlar. Mantıksal depolama (kaydetme, saklama) birimini tanımlamak için uygun aygıtların fiziki nitelikleri boyutlanır (sektör, track,.vs.). Bu mantıksal depolama (kayıt) birimine kütük denir. Kütüğün oluşturulması, silinmesi ve adının değiştirilmesi kütük yönetimine aittir. Genel halde kütükler programları ve verileri ifade eder. Kütüklerin yönetimini kolaylaştırmak için dizinler oluşturulur. İşletim Sistem kütük yönetiminde aşağıdakilerden sorumludur. Kütüklerin oluşturulması ve silinmesi Dizinlerin oluşturulması ve silinmesi Kütük ve dizinlerin yönetimi Kütüklerin disk belleğine (2.belleğe) haritalanması (kaydedilmesi) Kütüklerin 2. bellekte yedeklenmesi (backup) Giriş / Çıkış (I/O) Sistemlerinin Yönetimi Giriş/Çıkış sisteminin yönetimi, içerdiği birimlerle aşağıdaki fonksiyonları gerçekleştirir: Bileşenleri oluşturur. (Tampon önbellekleme sistemi) Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Ön belleğe yazıp-okuma Spooling işlemlerinin gerçekleştirilmesi Aygıt-sürücü (devicedriver) arayüzlerinin yönetimi Belirli donanım aygıtları için sürücülerin yönetimi Disk (2. Bellek) Yönetimi Ana belleğin, geçici ve tüm veri-programların sürekli saklanılması için çok küçük olması nedeniyle bilgisayar sistemleri ikincil belleğe ihtiyaç duymaktadırlar. İşletim Sistem ikincil belleğe bağlı aşağıdaki girişimlerden sorumludur: Boş disk alanı yönetimi Diskin paylaşımı Diskin planlanması Ağ Fonksiyonları Yönetimi Ağ ortamı veya dağıtık sistem, ortak giriş-çıkış aygıtları, saati ve ana belleği olmayan işlemciler (bilgisayarlar) topluluğundan oluşur. Her işlemcinin kendine ait belleği bulunur. Birbirlerine iletişim hatları aracılığıyla bağlanırlar ve iletişimi protokollerle gerçekleştirirler. Ağ kullanıcıları aynı ortak kaynaklara erişebildiği gibi, kullanıcı bazında erişimde mümkündür. Bu durum: Hesaplama (bilgi-işleme) hızını yükseltir. Verilerin kullanılabilirlik alanını genişletir Güvenilirliği yükseltir Burada, İşletim Sisteminin en önemli görevi ortak kaynaklara erişimi sağlamaktır. Koruma Sistemi İşletim Sistemlerinde koruma; koruma ve güvenlik olarak iki çeşittir. Eğer bilgisayarın birden fazla kullanıcısı varsa ve çoklu görevin birden fazla çalışmasına izin verilirse bu görevler birbirlerinin girişimlerinden korunmalıdır. Bu amaçla İşletim Sistemi; kütüklere, bellek kesimlerine (segment), işlemciye ve diğer kaynaklara görevlerin kontrollü erişimini sağlar. Örneğin; görev yalnız kendisi için ayrılmış adres alanında çalışabilir ya da zamanlama görevin belirlenmiş zaman içerisinde ana işlemcinin de çalışmasını sağlamalıdır. Koruma mekanizması İşletim Sistemi bileşenleri arasındaki ara yüzlerinde oluşabilecek hataları önlemekle güvenliği yükseltir. İşletim Sisteminin koruma sistemi aşağıdaki işlemlerden sorumludur: Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Erişim Kontrolü Sisteme kullanıcı erişimini düzenler; İzinli ve izinsiz kullanımları ayırt edebilme. Bilgi Erişim Kontrolü Sistem içindeki veri akışını ve verinin kullanıcılara dağıtımını düzenler; Sertifikasyon Sertifikasyonlara göre erişim ve akış kontrol performansı sağlanır; İzinsizerişimleri engelleyebilme. İŞLETİM SİSTEMLERİNİN YAPISI VE SUNDUĞU HİZMETLER İşletim sistemleri tasarlanırken belli standartlara göre tasarlanırlar. Bu tasarımların hedeflerini iki başlık altında topladığımızda: Kullanıcıya yönelik hedefler: İşletim sisteminin kullanımı ve öğrenilmesi kolayolmalıdır. Sistem güvenilir ve hızlı çalışmalıdır. Sisteme yönelik hedefler: İşletim sistemi kolay tasarlanabilen ve çalıştırılabilen bir yapıda olmalıdır. Bakımı kolay olmalıdır. Esnek ve güvenilir olmalıdır. Hatasız ve etkili çalışmalıdır. Geleneksel olarak assembly dilinde yazılmış olan işletim sistemleri yüksek seviyelidillerde de yazılabilir. Yüksek dillerde; Daha çabuk yazılabilir. Daha az yer kaplar. Anlaşılması ve çözümü kolaydır. Assembly Nedir? Assembly programlama dili, kullanılan bilgisayar sistemininyapısına ve işletim sistemi gibi platformlara sıkı-sıkıya bağımlıbir dildir. Assembly programlama dili düşük seviyeli bir dil olupC, C++, Pascal, C# vb. programlama dilleri gibi yüksek seviyeli dilleregöre anlaşılması biraz daha zordur. Assembly dili ile programyazarken kullanılan bilgisayarın donanımsal özelliklerininbilinmesi gerekir. Yazılan program kullanılan mikroişlemcininyapısına bağlıdır. Assembly dili ile program yazarken programcıdoğrudan bilgisayarın işlemcisi ve hafızası ile uğraşır.Anabellekteki (RAM’deki) ve işlemci kaydedicilerindekideğerleri doğrudan değiştirebilme imkânı vardır. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Mikroişlemci sadece ikili sayı sisteminde yazılan komut kodlarını, başka bir ifade ile makine dilinden anlar. Assembly dilinde yazılan programları makine diline çevirmek için Assembler adı verilen çevirici(derleyici) programlar kullanılır. Aşağıda verilen şekilde Assembly dili, Makine dili ve Assembler blok olarak görülmektedir. Bilgisayarımızda çalıştırılan tüm programlar önce bilgisayarımızın RAM belleğine yüklenir. Daha sonra RAM bellekten sırası ile mikroişlemci(AİB=MİB=İşlemci) tarafından okunarak çalıştırılır. RAM’e yüklenen veri, programın makine dili karşılığından başka bir şey değildir. Yani 0 ve 1 kümeleridir. Makine dilinde program yazmak oldukça zordur. Buna karşılık makine dili ile birebir karşılığı olan ve komutları kısaltılmış kelimelerden oluşan Assembly dilinden yararlanılır. Assembly dilinde program yazmak makine dilinde program yazmaya göre daha hızlı ve daha kolay yapılabilir. Ayrıca yazılan programların bellekte kapladıkları yerde aynıdır. Başka bir ifade ile bellek kullanımları aynıdır. Yüksek seviyeli dillerle karşılaştırıldığında assembly dilinde yazılan programlar daha hızlıdır ve bellekte daha az yer kaplar. Buna karşılık program yazmak yüksek seviyeli dillerde daha kolaydır. Assembly programlama dili günümüzde daha çok sistem programcıları tarafından diğer programlama dilleri içerisinde kullanılmaktadır. Sunulan Hizmetler İşletim sistemlerinin çeşitli türleri bulunmakla birlikte, bunlar arasında ortak özellikler vardır. İşletim sistemlerini bu özellikleri üzerine sınıflandırmak mümkündür. Bu sınıflardan birisi de kullanıcıya sunulan hizmetlerdir. İşletim Sisteminin kullanıcıya sağladığı hizmetler, bilgisayarla çalışmayı kolaylaştırdığı gibi, işletim sisteminin parçalarını kullanıcıdan saklar. Program Çalıştırma: İşletim Sistemi herhangi bir programı belleğe yükleyebilir veçalıştırabilir. Programın çalışması, ancak normal sonlanma veya hata oluşmasıdurumunda kesilebilir. Giriş/Çıkış İşlemleri: Çevresel donanımların kullanılması Kütüklerin İşlemleri: Kütük oluşturma, yazma, silme İletişim: Bir görevin diğer bir görev ile bilgi alışverişinde bulunması Hata Bulma: İşletim Sistemi bilgisayar kaynaklarında (bellek, ana işlem birimi, disk,programlar, kütük, G/Ç aygıtları ) oluşan hataları bulur, analiz eder ve mümkünse buhataları önler. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Kaynakların Paylaşımı: İşletim Sisteminin bazı fonksiyonları kullanıcıya yardım içindeğil sistemin verimli kullanılması için kullanılır. Örneğin; kaynakların paylaşımı: aynızamanda birden fazla program çalıştırılırsa sistemin kaynakları bu programlar arasındapaylaştırılır. Her bir kaynağın yönetimi için çeşitli yöntemler ve algoritmalar vardır.Örneğin; ana işlem biriminin daha iyi kullanımı için AIB planlama algoritmasıkullanılır. Bu algoritma için giriş parametreleri; işlemcinin hızı, yazmaçların sayısı,aynı zamanda çalışabilecek görevler sayısı vb. İstatistiksel Verinin Hesaplanması: Bu tür bilgiler, hangi kullanıcıların hangikaynakları, ne kadar kullanacağını, sistemde oluşan hata türlerini, kaynaklarınkullanım oranlarını içerir. Koruma: Tüm sistem kaynaklarına erişimin denetimini sağlar. GÖREV YÖNETİMİ Görev (process), işletim sistemi tarafından yürütülen ardışık işlemler sürecini içeren bir programdır. Aynı zamanda süreç olarak da adlandırılır. Görev için gereken kaynaklar, görev ortamını oluşturur. Görev yönetiminin amaçları: Makul cevaplama süresi içerisinde, birkaç görevi aynı anda yürüterek işlemciden maksimum faydalanmayı sağlamak Görevleri kaynaklara dağıtmak Görevler arası haberleşmeyi sağlamak Kullanıcıların görev oluşturabilmesine ortam oluşturmak Görevin çalışması, ardışık işlemler süreci şeklinde olup, her bir zaman diliminde görevin yalnız bir komutu çalışabilir. Görev yalnız program kodunu değil, aynı zamanda program sayacının (PC=Program Counter) değeri ile ifade edilen girişimleri, kesme programı verileri ve genel değişkenlerden oluşmaktadır. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Görev Durumu: Görev, yürütülmekte olduğundan durumu değişken yapı sergiler. Görev genel olarak, yaptığı işe girişimlere göre iki durumda birinde olabilir: Çalışma veya Çalışmama durumu. Şekil 4: Görev durum geçiş diyagramı. Görev her bir zaman diliminde aşağıdaki durumlardan birinde olabilir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Şekil 5: Beş durumlu görev modeli. Sunuş (new): Görev oluşmaktadır. Çalışma Durumu (running): Görevin bir komutu işlemcide gerçekleştirilmektedir. Bekleme Durumu (waiting): Görev herhangi bir olayın oluşmasını beklemektedir. (Örneğin; G/Ç işleminin bitmesi, herhangi bir sinyalin gelmesi). Hazır Olma Durumu (ready): Görev işlemciye aktarılmak için beklemektedir. Buduruma çalışmama durumu veya yürütüme hazır durumda denilmektedir. Bitiş veya Kesilme Durumu (terminated): Görev çalışmasını bitirdikten sonra bu duruma geçer. Görev sonlandırma sebepleri: Uygulamadan çıkma Normal tamamlanmış Hafıza kullanıma uygun olmaması Koruma hatası, Örn: Sadece okunabilen bir dosyaya yazma Aritmetik hata Çalışma zamanı aşımı: Bir görevin veya bir iş parçacığının belirlenen maksimum süreden daha uzun süre beklemesi I/O başarısızlığı Geçersiz komut: Bir verinin yürütüm için ele alınması İmtiyazlı komut Üst görevlerin alt görevleri sonlandırması Herhangi bir anda sadece bir görev çalışma durumundadır, ama birden fazla görev hazır ve bekleme durumunda olabilir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Şekil 6: Görevlerin durumları. GÖREV DENETİMİ Her bir görevin çalışması için gereken bilgiler görev denetim bloğunda (PCB=Process Control Blok) bloğunda gösterilir. Görev denetim bloğundaki bilgiler, program sayacı, ana işlem birimi yazmaçları vs. bulunur. Her bir görevle ilgili bilgiler: Şekil 7: Görev Kontrol Bloğu(PCB) Görev durumu Görev sayacı AİB yazmaçları AİB planlanması bilgileri Bellek yönetimi bilgileri İstatistiksel bilgiler G/Ç durumu bilgileri Program sayacı: Görev için sonraki çalıştırılacak program kodunun adresi yazılır. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ AİB yazmaçları: Bilgisayarların mimarilerine göre farklılık gösterir. Bu yazmaçlardagörevin durumuna ait bilgiler saklanır. Bu bilgilerin saklanmasının önemi, görevkesildikten sonra yeniden çalışmaya başlaması için görev adresinin belli olmasıdır. AIB’nin planlanması bilgileri: Görev önceliklerini, zamanlama parametrelerini içerir. Bellek yönetimi bilgileri: Taban adreslerini, sayfa ve kesilme adreslerini içerir. İstatistiksel bilgiler: Ana işlem biriminin kullanım süresi, görevlerin çalışması içinzaman sınırlamaları, görev numaraları gibi bilgiler içerir. G/Ç durumu bilgileri: Göreve ayrılan G/Ç aygıtlarının listesi, görev için açılmış kütüklerin listesi gibi G/Ç durumu bilgilerine içerir. Şekil 8: AİB’nin görevler arasında paylaşımı. Ana İşlem Biriminin Planlanması Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Çoklu programlamanın hedefi; aynı zamanda birkaç görevi birlikte çalıştırmakla, ana işlem biriminin verimliliğini yükseltmektir. Görevlerin çalışmasını ilişkisel koordine etmek için planlama fonksiyonu (scheduling) kullanılır. Bu fonksiyon işletim sisteminin temel fonksiyonlarındandır. Tüm bilgisayar kaynaklarının görevi, çalışma öncesi planlanır. Esas kaynak olan AIB’nin planlanması işletim sisteminin tasarımında başlıca yeri tutmaktadır. Planlama Algoritmaları FCFS (First Come First Served – İlk Gelen Önce) Algoritması Bu algoritmaya göre; işlemciyi ilk talep eden görev, ilk olarak işlemciyi kullanır. Görev hazır görevler kuyruğuna sunulduktan sonra, onun görev denetim bloğu (PCB) kuyruğun sonuna ilave edilir. AIB boş olduğu zaman kuyruğun başındaki görev çalışması için AIB ye sunulur ve kuyruktan silinir. Bu algoritmada görevlerin bekleme süresi yüksek olur. Örnek:P1, P2, P3 görevlerinin sırasıyla kuyrukta yerleştiklerini kabul edelim: Görev Çalışma Zamanı (sn) P1 24 P2 3 P3 3 1.Görevler P1, P2, P3ardışıklığı ile sunulmuş olduğunu varsayalım. Buna göre planlama: Burada; P1’in bekleme süresi = 0 msn. P2‘nin bekleme süresi = 24 msn. P3‘ün bekleme süresi = 27 msn 'dir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Ortalama bekleme süresi : (24+27+0) / 3 = 17 msn'dir. 2.Eğer görevlerin gelme P2, P3, P1şeklinde sıralanırsa, planlama: Burada ise; P2 ‘nin bekleme süresi = 0 msn. P3 ‘ün bekleme süresi = 3 msn. P1‘in bekleme süresi = 6 msn 'dir. Ortalama bekleme süresi : (3+6+0) / 3 = 3 msn’dir. Görüleceği üzere, FCFS algoritmasında ortalama bekleme süresi daima minimum olmayabilir. Çünkü görevlerin geliş sırasına bağımlıdır. SJF (Shortest Job First – En Kısa İşletim Süresi Olan Önce) Algoritması Bu algoritmada CPU boş olduğunda, kalan görevler içinde çalışma süresi en küçük olan görev, çalışması için işlemciye sunulur. Eğer iki görevin kalan süreleri aynı ise o zaman FCFS algoritması uygulanır. Bu algoritmada: Her görev, o görevin bir sonraki AİB işlem zamanı ile değerlendirilir. Bu, en kısazamanlı işin bulunması için kullanılır. SJF Türleri: Kesilmesiz SJF: Eğer AİB bir göreve tahsis edilmişse, AİB işlem zamanıbitmeyince görev kesilemez. Kesilmeli SJF: Eğer AİB işlem zamanı, şu anda çalışan görevin kalan işlemzamanından küçük olan yeni bir görev sisteme sunulmuşsa, eski görevkesilecek. Bu yönteme, SRTF( Shortest Remaining Time First – En kısa işlemzamanı kalan, birinci) yöntem denir. SJF verilmiş görevler kümesi için en küçük ortalama bekleme zamanı oluşması içinoptimizasyon yapar. Örnek: P1, P2, P3, P4 görevleri aşağıdaki ardışıklık ile sunulmuş olduğunu varsayalım. Buna göre kesilmesiz SJF yöntemine göre ortalama bekleme süresini bulalım: Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ olarak ortalama bekleme süresi (tob) bulunur. Örnek: P1, P2, P3, P4 görevleri aşağıdaki ardışıklık ile sunulmuş olduğunu varsayalım. Buna göre kesilmeli SJF yöntemine göre ortalama bekleme süresini bulalım: SRTF (Shortest Remaining Time First - En Kısa İşletim Süresi Kalan Önce) İlk işlem yapılırken bu esnada sunulan görevin çalışma süresi daha kısa ise o yapılan görev kesilir, çalışma zamanı kısa olan görev işlenir. Çok Kuyruklu Planlama Algoritması Bu algoritmaya göre görevler belli sınıflara ayrılır ve her sınıf görev kendi kuyruğunu oluşturur. Başka deyişle hazır görevler çok seviyeli kuyruğa dönüştürülür. Görevin türüne önceliğine, bellek durumuna veya başka özelliklerine göre görevler belli kuyruğa yerleştirilirler. Her kuyruk için planlama algoritması farklı olabilir. Bununla birlikte görevlerin bir kuyruktan diğerine aktarılmasını sağlayan algoritmada oluşturulur. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Bu algoritmaya göre yüksek öncelikli kuyruktaki görevler önce işlenir. Eğer bu kaynak boş ise ondan aşağı seviyedeki görevler çalıştırılabilir. Öncelikli Planlama Algoritması Bu algoritmaya göre her bir göreve öncelik değeri atanır ve görevler öncelik sırasına göre işlemciyi kullanırlar. Aynı öncelikli görevler FCFS algoritması ile çalıştırılırlar. Döngülü Planlama (Round Robin - RR) Algoritması Her görev küçük bir AİB zaman dilimini alır. Bu zaman bittiğinde, görev kesilir ve hazır görevler kuyruğunun sonuna eklenir. Örnek: P1, P2, P3, P4 görevleri aşağıdaki ardışıklık ile sunulmuş olduğunu varsayalım. Zaman dilimi 20 msn ise buna göre: Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Birlikte çalışan görevler Birlikte çalıştırılan görevler, işletimleri zaman içinde paralel sürdürülen görevlerdir. Başka bir deyişle bir görevin işlevi sonuçlanmadan, diğer bir görevin de çalışabilmesidir. Bilgisayar sisteminde birçok AİB bulunuyorsa, görevler arasında gerçek bir paralellik, tek bir AİB yada işletim için bekleyen görev sayısı AİB sayısından fazla ise görüntü bir paralellik söz konusudur.Özetle birlikte çalışan görevler bir bilgisayarın bir seferde birden çok işi ele alabilme yeteneğidir. Çoklu programlamayla yapılan işlemlerle işin zamanı kısaltılmış olur ve bellekteki alanlar tam kapasiteyle çalışabilir. Bilgisayar belleğinden en fazla verimi almak için bellek(RAM) birden fazla program için bölümlenir. Amaç merkezi işlem birimini mümkün olduğu kadar meşgul etmektir. Yani merkezi işlem biriminin bekleme süresini azaltmaktır. Merkezi işlem birimi bellekte bir takım işler yaptıktan sonra verileri diske yazmak için veya başlangıçta diskten okuma için uzun süre beklemek zorunda oluşu, MİB’in başka işler için kullanılabileceğini gösterir. Görevlerin birlikte çalışması, çalıştırılmaları sırasında kimi kaynakları ortak kullanmalarından kaynaklanır. Çıktı üreten bir kullanıcı görevi ile bu çıktıları yazıcıya döken sistem görevi birlikte çalışan iki görevdir. Kullanıcı görevinin ürettiği çıktıların, yazıcı sistem görevi tarafından dökülebilmesi, ilgili çıktıların bir görevden diğer göreve aktarılmasını gerektirir. Bu aktarım her iki görevin ortak erişebildiği bir ana bellek yastık alanı üzerinden gerçekleşebilir. Kullanıcı görevi, dökümü alınacak çıktıyı, ortak yastık alanıyla aynı boyda tutanaklar biçiminde, sırayla bu yastık alanına yazar. Yazıcı sistem görevi de, bu alandan okuduğu tutanakların yazıcıdan dökülmesini sağlar. Ortak yastık alanı üzerinden veri alış-verişi yapan görevlerden yastık alanına yazma yapan görev üretici, bu alandan okuma yapan görev ise tüketici olarak nitelenir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Şekil 9: Birlikte Çalışan İki Görevin Gösterimi Ortak bir yastık alan üzerinden veri alış-verişinde bulunan üretici ve tüketici görevler birbirlerinin işletimini etkileyen görevlerdir. Bu bağlamda, yukarıda verilen örnekte yazıcı sistem görevinin işletilebilmesi, kullanıcı görevinin dökülecek bir tutanağı ortak yastık alan üzerinde hazır etmesine bağlıdır. Bunun gibi kullanıcı görevinin, yeni bir tutanağı yastık alanına yazabilmesi, bir önce yazılan tutanağın yazıcı görev tarafından okunup dökülmüş olmasını gerektirir. Birlikte çalışan görevlerin aralarındaki etkileşim, çoğu kez kaynak paylaşımından doğar. Kullanıcı ve yazıcı sistem görevleri, çıktı tutanaklarının yazılıp okunduğu ana bellek yastık alanını paylaşmaktadırlar. Paylaşılan kaynak ortak kaynak olarak adlandırılır. Birlikte çalışan görevler için ortak kaynaklar bir değişken, bir ana bellek yastık alanı, bir disk tutanağı, tümüyle bir kütük yada bir giriş/çıkış birimi olabilir. Birlikte çalışmanın sebepleri: Bilgi paylaşımı: Farklı kullanıcılar için aynı bilgiler gerekebilir, bu nedenle bukaynaklara paralel erişim sağlanmalıdır. Bilgi-İşlem hızının yükseltilmesi: Problemin çözümünü gerçekleştirmek için problem alt problemlere bölünebilir ve bu problemler paralel çalışabilirler. Modüllere parçalanma: Sistemin modüllere parçalanması işlemi ve kontrolükolaylaştırır. Kullanıcı rahatlığı: Her bir kullanıcı aynı zamanda birden fazla problemi çalıştırmaisteğinde bulunabilir. Görevlerin ortak çalışması: Görevlerin, iletişim ve erişim işlemlerinde zamanuyumunu (senkronizasyon) sağlayan bir mekanizmanın olması gerekir. Birlikte çalışan görevler problemine, üretici-tüketici problemi gibi bakılabilir. Üreticiürünleri tampona gönderir, tüketici ise alır, tampon dolu olduğunda üretici beklemeli, boşolduğunda ise tüketici beklemelidir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Şekil 10: Saat örneği üzerinde birlikte çalışan görevler ve işletim bütünlüğü. Görevler Arası Etkileşim Bir bilgisayar sistemini oluşturan kesimlerin çoğu kez paralel çalışması, işletim sistemlerinin birlikte çalışan birçok görevi içermesini zorunlu kılar. Örneğin 9/4 işlemi, gerçek zaman saatinin yönetimi, uygulama programlarıyla paralel yürütülür. Birlikte çalışan görevler, üstlendikleri işlevlere bağlı bir sırayla işletime alınırlar. Ancak sistemdeki olayların sıralanması buna bağlı olarak, görevler arasındaki işletim sırası ve süreleri önceden kesinlikle kestirilemez. Görevler Arası Zamanuyumu Bilgisayar sistemindeki birçok kaynak bölüşülür olmasına karşın, bir anda yalnız bir görevce kullanılabilir. Bu tür tek bir kullanıcıya olanak tanıyan kaynaklara "kritik kaynak" adı verilir. Birçok görev kritik bir kaynağı bölüşmek isterse, aralarında yalnız birinin kaynağı sahiplenmesine yol açacak bir "zaman uyumu" sağlanmak zorundadır. Eğer kritik bir kaynak, bir görevce kullanılıyorsa diğerleri bu kaynağın kullanımını, kaynak serbest kalana değin ertelemelidirler. Bu nedenle görevler içinde kritik kaynaklara erişim yapan kesimleri "kritik kesimler" olarak adlandırıyoruz. Bir kaynağa bağlı kritik kesim içinde işletim yapan bir görevin, diğerlerinin aynı kritik kesime gelmesini engellemesi gerekir. Bu olay, "Karşılıklı Dışlama (mutual exclusion)"olarak adlandırılır. Görevlerin kullandıkları sistem kaynakları, kullanım açısından iki gurupta toplanır: 1.Paylaşılabilen kaynaklar: Bir görev tarafından tümüyle kullanılmadan diğer görevler tarafından kullanılabilen kaynaklardır (CPU, RAM, HDD). Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ 2.Paylaşılmayan kaynaklar: Bir görev tarafından tümüyle kullanımı bitince diğer görevler tarafından kullanılabilen kaynaklardır (YAZICI, CD-R). Bu kaynaklara kritik kaynaklar adı da verilmektedir. Ödev: 1- Semafor Nedir? 2- Tampon Bellek Nedir? BELLEK YÖNETİMİ Bir bilgisayar sistemini oluşturan dörttemel bileşenvardır. Bunlar ana işlem birimi, ana bellek, giriş/çıkış birimleri ve yolladırdır(bus). Bir bilgisayar sisteminin en önemli donanımsal kaynaklarından birini oluşturan ana belleğin, görevler arasında paylaştırılmasına ana belleğin yönetimi denir. İşletim sistemi içinde bu işlevi karşılayan kesime ana bellek yöneticisi ya da kısaca bellek yöneticisi denir.Programların ve işlenen verilerin ana bellekte yer alacakları konumların belirlenmesi, düzenlenmesi, izlenmesi, gereksenen alanların sağlanması, bu alanların dışına taşmaların denetlenmesi gibi işlevler hep bellek yönetimi kapsamında ele alınır. Bilgisayar sistemlerinde bellekler, ana bellek ve ikincil bellekler olarak iki gruba ayrılır. Ana bellek, aynı zamanda canlı bellek, yarı iletken bellek, RAM bellek gibi adlarla da anılır. Programların ve verilerin işlem aşamasında yer aldığı, ana işlem biriminin de dolaysız erişebildiği asıl bellek ana bellektir.İkincil belleklerin, işletim dışı verilerin saklandığı ve korunduğu, yüksek oylumlu bir bellek türü olduğu bilinir. Ana işlem birimi yönünden bakıldığında ana bellek, bir sözcük dizisi gibi görülür. Ana bellekte her sözcüğün bir adresi bir de içeriği bulunur.Ana bellekte bir sözcüğün adresi, bu sözcüğe erişimde, adres yolu üstüne yüklenen konum değeridir. Bu değer, ilgili sözcük içeriğinin ana bellekte bulunduğu fiziksel konumu gösterdiğinden fiziksel adres olarak nitelenir. Ana işlem birimi, doğrudan bellek erişim denetleme birimleri, kanallar, ana bellekteki sözcüklere fiziksel adreslerini kullanarak erişirler. Şekil 11: Fiziksel ve Mantıksal adres uzayları Görevlerden, çoklu görev düzenine geçiş ana işlem biriminin işler arasında paylaşılması yoluyla gerçekleşir. Gerek çoklu görev düzeni gerekse çok görevli işlem bilgisayar sistem verimliliğini artırmayı, sistem başarım düzeyini yükseltmeyi amaçlayan düzenlemelerdir. Von Neumann türü bilgisayar sistemlerinde ana işlem birimi ana bellekten ayrı düşünülemez. Ana işlem biriminin görevler arasında paylaşımı, ana bellek paylaşılmaksızın gerçekleşemez. Bu nedenle ana belleğin yönetimi sistem başarımını çok yakından etkiler. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Ödev: Von Neumann Mimarisi Nedir?(Detaylı bilgi) Tek Programlı ve Çok Programlı Sistemlerde Bellek Yönetimi En basit bellek yönetim sistemi, her bir zaman dilimi içinde bellekte bir görev bulunması ve tüm bellek alanını bu görevin kullanmasıdır. Bu sistemlerde bellek, işletim sistemi ve tek görev arasında paylaşılır. Kullanıcının terminalden aldığı komut ile işletimsistemi gereken programı belleğe yükler. Görev çalışmasını bitirdikten sonra, sistemin gönderdiği mesajla kullanıcı yeni görevi belleğe yükler.Fakat bilgisayarın verimli çalışması için bellekte aynı zaman diliminde birden fazlagörevin çalışması gerekir. Bunun en basit yolu belleğin “n” sayıda bölümlere ayrılmasıdır.Sistem çalıştırılmadan önce bölümler (bölümün sınırları) kaydedilir. Görevler geldiği zamanbölümün boyutuna uygun kuyruğa yerleştirilir. Boş Bellek Alanlarının Aranması Boş bellek alanlarının aranması için genelde 3 yöntem kullanılır: İkili haritalama (Bit-map) Bağlaçlı Liste Komşu Sistemler İkili Haritalama Yöntemi Bu yöntemde bellek mantıksal olarak sabit boyutlu küçük birimlere bölünür. Bölümün boyutu birkaç sözcük uzunluğundan, birkaç KB’a kadar olabilir.Bu bölümlerin boş ya da dolu olması hakkında bilgiler ikili haritada gösterilir. Haritanın her biti bir bellek bölümünün durumunu gösterir. Bölüm boşsa bit = 0, doluysa bit = 1 değerini alır.İkili haritalarda, gelen görev k boyutlu ise, boş yer için haritada k+1. bellek yerinin aranması gerekir. Bu ise, ikili haritalamanın yavaş olmasına yol açtığından pratikte az kullanılmasına neden olur.Bellek bölümlerinin büyük boyutlandırılması, haritanın küçülmesine, bununla birlikte bellek alanının verimsiz kullanımına neden olur. Bölümler küçük boyutlu alınırsa, harita büyür ve arama işlemlerinin süresi uzar. Bağlaçlı Liste Yöntemi Boş ve dolu bellek alanları için yerleştikleri adreslerle birlikte bağlaçlı liste oluşturulur. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Bellek yöneticisi görev için gereken bellek alanının boyutunu bildiği takdirde, bu yöntemdesadece bu boyuta uygun bellek yeri bulmak amaçlanır. Uygun bellek yeri bulmak için birkaç algoritma vardır: 1. İlk uygun yer bulma (first fit) : Bellek yöneticisi listeyi tarar ve yeterli boyutta boş yer bulunan ilk yere görevi yerleştirir. Bu algoritma çok hızlıdır. Çünkü arama en kısa yolla gerçekleştirilir. Ancak en uygun olan belleğe değil, ilk rast gelinen uygun bellek alanına yerleşim yapılır. 2. En uygun yer bulma (best fit) : Görevin boyutuna en yakın olan boş yer aranır. En verimli algoritmadır. Ancak yavaştır. 3. Hızlı uygun yer bulma (quick fit) : Bu algoritmada, çok sık kullanılan bellek alanı boyutları, ayrıca listelenir. Belleğe yerleştirilecek görev için uygun yer bu yeni listede aranır. Komşu Sistemlerde Bellek Yönetimi Komşu sistem yönetiminde bellek yöneticisi 1,2,4,.......,2k boyutlu boşluklar listesi oluşturur. Örneğin 1 MB’lık bellek alanı için 21 liste oluşturulacaktır. Başlangıç durumunda tüm bellek boştur ve yalnız 1MB’lık listede 1MB’lık boş yer bulunmaktadır. 70 K’lık A görevi belleğe aktarıldığında bellek yöneticisi bu görev için 128K’lık boş yer ayıracaktır. Öyle bir liste henüz oluşturulmadığından ardışık olarak 256K ve 512K’lık listeler aranacak ancak onlarda yoktur. Bu sebeple 1MB’lık alanın 512, 256 ve 128’lik alanlara bölecek ve A görevi ilk boş 128 K’lık alana yerleşecek. B görevi içinde 64K’lık yer gerekir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ 64K’lık listemiz olmadığından 128K’lık blok ikiye bölünür. İlk 64K lık yere B görevi yerleştirilir. Benzer şekilde C görevi yerleştirilir. Görev bellekten çıktığında, kalan yerler birleşip 2k alan oluşturuyorsa, bellek alanları birleştirilir. Yönetim avantajı, sadece 2k ‘lık listeler aranmasıdır. Buda hızlı çalışmasına neden olur. Ancak bellek verimsiz kullanılır. Her görev için ayrılan alanlarda boş yerler oluşabilir. Belleğin Parçalanması ve Birleştirilmesi İşlemi Bellek parçalanması, bitişken alanların görevlere atanan bölümlerle, zaman içinde ufalanması olarak bilinir. Bu sorun, kullanılan bölümler arasına sıkışmış, işletim için bekleyen görevlerin gereksinimini karşılayamayan boş alanların varlığıyla ortaya çıkar. Bunun sonucu, bellekteki boş alanların toplamı, gereksenen sığaları karşılıyor olmasına karşın yeni görevlere yer sağlayamaz. Görevlere gereksedikleri belleğin tümüyle ve bitişken bir bütün olarak, işletime sunuş aşamasında sağlanması ve sağlanan bu alanların konumlarının işletim sırasında değiştirilmesi parçalanma sorununun temel nedenleridir. Bölüm içi yararlanılamayan boş alanlar iç parçalanma, bölümler arasında kalan boş alanlar ise dış parçalanma kapsamında düşünülür. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Şekil 12: Ana Belleğin Parçalanması Bitiştirme; tüm bellek alanına dağılmış durumdaki bölümleri, yerlerini değiştirerek yan yana yerleştirme ve bu yolla bölümler arasında kalan boş alanları da yan yana getirerek tek bir bitişken boş alan oluşturma işlemine denir.İlgili olduğu görevin işletimi sürerken bir bölümün yerinin değiştirilmesi kolayca ve hiçbir önlem alınmaksızın yapılabilen bir işlem değildir. Şekil 13: Bitiştirme İşlemi Diske Taşıma (Swapping) Bir görev (proses), veriyi geçici olarak yedekleme deposuna taşıyıp çalışmaya devam etmek için belleğe geri yükleyebilir. Görevlerin disk ile ana bellek arasında değiş-tokuşuna takas (swap) denir. Kimi durumlarda bitiştirme işlemleri de bellekte gerekli büyüklükte boş bitişken alan oluşturmak için yeterli olamaz. Sisteme sunulan iş, o an sistemde işletimde olan işlemden daha öncelikli ise, görev tanımlarının yapılarak hemen işletime alınması gerektirir. Kimi zaman öncelik görevlerin, işletimleri sonradan tamamlamak üzere geçici olarak diske taşınması boş bellek alanı yaratmak için başvurulan bir yol olabilir. Bu yolla açılan boş bellek alanları yeni görevlerin tanımlanabilmesine ve özellikli işlerin işletimlerinin bir an önce başlatılabilmesine olanak sağlar. İşletimi tamamlanmamış bir görevin, daha öncelikli görevlere ana bellekte yer açmak üzere, geçici olarak diskte, bu amaçla öngörülen alanlara taşınmasına diske taşıma olayı olarak nitelendirilir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Şekil 14: Takas(Swapping) Dosya Sistemleri FAT 16 (File Allocation Table) DOS işletim sistemi ve Windows’un ilk sürümlerinde FAT (File allocation Table-Dosya Yerleşim Tablosu) dosya sistemi kullanılmıştır.FAT dosya sisteminde dosya konumları ana dosya tablosu (master file table) içerisinde tutulur.16 bitlik bir dosya sistemi olduğu için FAT 16 olarak adlandırıldı.DOS ve tüm Windows versiyonları bu dosya sistemini desteklemektedir.Bu dosya sisteminde bir dosya en fazla 2GB boyutunda olabilir ve 256 MB'tan küçük bölümler için veriye ulaşım çok hızlıdır.Öbek (cluster) boyu büyük olduğu için yer kaybı fazladır.Veri güvenliği yoktur. FAT 32 (File Allocation Table) FAT 32’nin, FAT 16’dan daha gelişmiş veri koruma yöntemleri vardır.Disk bölümlerinin 512 MB’tan büyük olması gerekir.32 GB (bazı işletim sistemlerinde 8 TB) büyüklüğüne kadar sabit disk bölümlerinin kullanılmasını sağlar.FAT 16’ya göre daha küçük öbek büyüklüğü kullanarak diskin daha ekonomik kullanımını sağlar.Windows 95/98/ME/2000/XP/Vista/7/8 işletim sistemleri bu dosya sistemini desteklemektedir. FAT 16 ve FAT 32 Karşılaştırması FAT 16 dosya sisteminde kök dizinde en fazla 512 dosya/klasör tutulabilirken FAT 32’de istenildiği kadar dosya/klasör tutulabilir.FAT 16 dosya sisteminde sabit disklerin bölüm büyüklüğü en fazla 2 GB olabilirken, FAT 32’de boyut 2 TB’a kadar çıkabilir.Dosya yerleşim tablosu FAT 16’da kök dizinde olmalıdır, FAT 32’de ise istenilen herhangi bir yere taşınabilir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ FAT 32’de öbek boyutu FAT 16’dakinden daha küçüktür.FAT 16 ve FAT 32 dosya sistemlerindeki öbek boyutu karşılaştırılması aşağıdaki tabloda verilmektedir. Bölüm Büyüklüğü FAT 16 FAT 32 Öbek boyutu Öbek boyutu 32MB 2 KB 512 Byte 128 MB 2 KB 512 Byte 256 MB 4 KB 512 Byte 512 MB 8 KB 4 KB 1 GB 16 KB 4 KB 2 GB 32 KB 4 KB NTFS (New Technology File System) NTFS, dosya konumlarını FAT sistemindeki gibi bir ana dosya tablosu (master file table) olarak saklamakla birlikte dosyanın yerleştiği konumları ve diğer bilgileri her öbeğin içinde ayrıca saklayarak daha güvenilir bir yapı sunar.NTFS dosya sistemi kullanan Windows sürümleri FAT sürücüleri görebilir ve bu sürücülerdeki dosyaları okuyabilirler.Ancak FAT kullanan işletim sistemleri NTFS bölümlerini göremezler.256 TB'a kadar sabit diskleri biçimlendirebilir (format).Tek bir dosya boyutunu 16 GB’a kadar desteklemektedir.Öbek boyu küçük olduğu için yer kaybı düşüktür.Dosya ve dizinlere kullanıcı hakları verilerek erişim denetlenebilir.Dosyalarda yapılan tüm değişikliklerin kaydını tuttuğu için otomatik veri kurtarma desteği vardır. FAT ve NTFS Karşılaştırması NTFS’de öbek büyüklüğü FAT’a göre daha küçük olduğu gibi dosya ve klasörleri sıkıştırabilme özelliği vardır. NTFS, FAT’a göre daha büyük sabit diskleri desteklemektedir. İki dosya sistemi arasında dosya adlandırma kurallarında farklılık vardır. NTFS ve FAT 32’de kök dizin içinde istenildiği kadar dosya-klasör oluşturulabilir. NTFS, klasör ve dosyalar için izinler düzenleyebilir. Güvenlik ve daha geniş bir kullanım için sağlanan bazı destekler NTFS’in bir diğer üstünlüğüdür. NTFS, FAT dosya sistemi kullanan MS-DOS ve Windows 9x işletim sistemlerinden ulaşılamamaktadır. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Büyüklüğü FAT 16 FAT 32 NTFS Öbek boyutu Öbek boyutu Öbek boyutu 7-16MB 2KB Tanımaz 512B 17-32MB 512B Tanımaz 512B 33-64MB 1KB 512B 512B 65-128MB 2KB 1KB 512B 129-256MB 4KB 2KB 512B 257-512MB 8KB 4KB 512B 5131024MB 16KB 4KB 1KB 1025MB2GB 32KB 4KB 2KB 2-4GB 64KB 4KB 4KB 5-8GB Tanımaz 4KB 4KB 9-16GB Tanımaz 8KB 4KB 17-32GB Tanımaz 16KB 4KB Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ 32GB-2TB Tanımaz Tanımaz 4KB Disk Planlama (Çizelgeleme) Sabit diskler çalışırken içerisindeki plaka sabit bir hızda döner (Ör: 7200 RPM). Disk üzerinden bilgi okumak ve yazmak için, okuma/yazma kafasının gereken iz (track) ve kesim (sektör) üzerinde konumlandırılması gerekir.Okuma/yazma kafasının gereken iz üzerinde konumlandırılması için geçen süreye arama zamanı (seek time) denir. rotasyonel gecikme (rotational delay) denir.Arama zamanı ile rotasyonel gecikmenin toplamına ulaşım zamanı (access time) denir. Bu süre, okuma ve yazma işleminin başlaması için gereken zamandır. Diskteki Veri Alışverişi Disk üzerinde gerçekleşen bir veri alışverişi sırasında genelde aşağıdaki gecikmeler yaşanır: Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ İlk olarak aygıtın müsait olması beklenir. Daha sonra ise iletişim kanalının haberleşmeyi sağlamak için hazır duruma getirilmesi gerekir.Arama zamanı ve rotasyonel gecikme sonrasında ise veri transferi başlar. Disk Çizelgeleme Yöntemleri İlk Gelen Önce Algoritması (FCFS) Varsayalım ki disk blokları aşağıdaki gibi kuyruk oluştursun. 98, 183, 37, 122, 14, 124, 71, 60 İlk Gelen Önce yöntemi, istek kuyruğundaki isteklerin, kuyruğa varış sırasına göre işlem gördüğü yöntemdir.Kuyruğa ilk ulaşan istek diğerlerinden daha önce işlem görecektir.Kütük için bu bloklar okunacaktır. Sırası önemli değil. Çünkü bir yerde yığılacaklar.Diskin 53. silindir üzerinde olduğu varsayılsın. Burada tüm bloklara erişmek için toplam 643 silindir okunacaktır. SSTF (En kısa arama süresi olan önce) Algoritması Bu yöntemde, okuma/yazma kafası istek kuyruğundaki istekler içerisinde en kısa hizmet süresi olanı seçecektir.Dolayısıyla, en kısa arama süresi (seek time) olan iz seçilecektir. Bu yöntem, ilk gelen önce yönteminden daha iyi bir sonuç vermektedir. Ancak en kısa arama süresi her zaman en hızlı ulaşım süresini sağlamamaktadır. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ Bu algoritmada toplam izlenen silindir sayısı 299 ‘dur.Algoritmanın yetersiz yönlerinden birisi her zaman kuyruğa disk başlığının o ankidurumuna daha yakın olan silindir sunulabilir. Bunun sonucunda disk başlığından daha uzaktaolan silindirlerin işlenmesi ertelenebilir. Scan Algoritması Bu yöntemde okuma yazma kafası bir yöne doğru hareket ettikten sonra, o yöndeki bütün istekleri karşılamadan diğer tarafa yönelmez.İlk olarak belirli bir yönde tarama yapar ve en yüksek/alçak iz numarası işlem görünceye kadar devam eder. Daha sonra diğer yönde hareket eder. Başlığın hareketi yönünde yeni bir silindir sunulursa o derhal hizmete konulacaktır.Buna asansör algoritması da denir. Örneğin silindir başlığı 98 deyken 100 gelirse, önce 100işlenir ondan sonra 122 ‘i işlenir. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ C-SCAN (Döngülü SCAN) Algoritması Bu algoritma prensip de SCAN algoritması gibidir. Ancak disk sonuca ulaştığı zamanderhal en başa döner ve taramayı devam ettirir. LOOK ve C-LOOK Algoritmaları SCAN algoritmasından farklı olarak LOOK ve C-LOOK algoritmalarında disk başlığıdiskin sonuna kadar değil erişilmesi gereken son silindire kadar hareket eder. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ c-look un şekli yanlış olabilir Soru:Bir diskteki okuma/yazma kafasının iz 40’tan iz 41’e doğru hareket ettiğini ve istek kuyruğundaki ziyaret edilmesi gereken iz numaralarının da aşağıdaki gibi olduğunu varsayınız: 25, 70, 35, 5, 20 İlk gelen önce, en kısa hizmet süresi, Scan, C-Scan, Look ve C-Look algoritmalarına göre toplam izlenen silindir sayılarını bulunuz. Doygun DEMİROL – 2015 Bingöl ÜNİVERSİTESİ