Uploaded by abdullayev

örnek

advertisement
İş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İ
Download