Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

İşletim Sistemleri (Operating Systems)

Benzer bir sunumlar


... konulu sunumlar: "İşletim Sistemleri (Operating Systems)"— Sunum transkripti:

1 İşletim Sistemleri (Operating Systems)

2 SANAL BELLEK (Virtual Memory)

3 Sanal Bellek (Virtual Memory)
Daha önce incelenen bellek yönetimlerinin uygulandığı sistemlerde, process’lerin mantıksal adres evrenlerinin boyu ana belleğin fiziksel kapasitesi ile sınırlı olduğu durumdur. Bu durum bir process yürütülmeden önce tamamının belleğe yüklenmesini gerektirir. Halbuki günümüzdeki process’lerin mantıksal adres evrenleri fiziksel ana belleğin kapasitesinden daha büyük olabilmektedir.

4 Sanal Bellek (Virtual Memory)
Sanal bellek, programların ve verilerin toplam boyutunun onların erişebileceği ve kullanabileceği fiziksel bellek alanından büyük olabilmesi düşüncesine dayanır. Ana belleğin (RAM) yetersiz kaldığı durumlarda, işletim sistemi sabit diskte yer açarak, bu alanı RAM gibi kullanır ve bu alana sanal bellek (virtual memory) denir. Programlar fiziksel bellekten büyük olduğunda, bu teknik avantajlı olmaktadır. Bu yolla, kullanıcı bellek kısıtlamalarından kurtulmaktadır.

5 Sanal Bellek (Virtual Memory)
1980’lerin DOS’u veya 1960’ların anabilgisayar işletim sistemleri gibi daha eski işletim sistemlerinde bu işlev bulunmamaktadır. Gömülü sistemlerde ve bazı özel amaçlı bilgisayar sistemlerinde hızlı ve uyumlu tepki zamanı gerektiğinden genellikle sanal bellek kullanılmaz.

6 Sanal Bellek (Virtual Memory)
Sanal bellek yönetiminin uygulandığı sistemlerde, işletime alınan process’lere, tüm adres evrenlerini karşılayacak kapasitede fiziksel ana bellek alanı yerine disk alanı atanır. Birçok durumda programın tamamının bellekte bulunması gerekmemektedir. Programa ihtiyaç duyulsa bile, bu ihtiyaç aynı zamanda olmamakta sadece bazı kısımlara farklı zamanlarda ihtiyaç duyulmaktadır.

7 Sanal Bellek (Virtual Memory)
Process işletimi başlatılırken ilk kesimin ya da ilk sayfaların ana bellekte bulunmasıyla yetinilir. Herhangi bir zaman diliminde process’in ana bellekte bulunan kısmına yerleşik set (resident set) denir. Ancak, her an, gereksinim duyulup da ana bellekte bulunmayan kesim ya da sayfaların ana belleğe nasıl taşınacağı sorusunun cevaplanması gereklidir. Bu yüzden, gereksinim duyulup da ana bellekte bulunmayan kesim ya da sayfaların belleğe taşınma işlemleri de yönetilmelidir.

8 Sanal Bellek (Virtual Memory)
Sanal Bellek Avantajları: Sanal bellek (virtual memory) yöntemi, process’lerin tamamının belleğe yüklenmeden çalıştırılmasına izin verir. Ana bellekte daha fazla process bulunabilir. Bir process’in sadece gerekli parçaları yüklenebilir. Çoklu programlamayı daha etkin kılar. Her kullanıcı programı aynı anda küçük fiziksel bellek alanı kullandığından, çok sayıda program eş zamanlı çalıştırılabilir.

9 Sanal Bellek (Virtual Memory)
Sanal Bellek Avantajları: Sanal bellek, programcı için ana bellek alanı limitini ortadan kaldırır. Sanal bellek, programcıya fiziksel ana bellekten daha büyük bir alan sağlar ve programların boyutu fiziksel ana belleğin boyutundan bağımsızlaşır. Böylece, ana bellekten büyük programlar da çalıştırılabilmektedir.

10 Sanal Bellek (Virtual Memory)
Sanal Bellek Dezavantajları: İşlemci zamanı, process parçalarını ana bellek ve sanal bellek arasında taşımakla geçer. Bilgisayar ana bellek'deki verileri, sanal bellekteki (sabit disk) verileri okuduğundan çok daha hızlı okuyabilir, bu nedenle büyük kapasiteli ana belleğe (RAM) sahip olmak her zaman en iyi çözümdür.

11 Sanal Bellek (Virtual Memory)
Sanal bellek düzeni sayfalı (paging), kesimli (segmentation) ve bu ikisinin karması kesimli-sayfalı (segmentation- paging) bellek yönetimleri ile birlikte kullanılır.

12 Sanal Bellek (Virtual Memory)
Sayfalandırılmış sanal bellek (Paged Virtual Memory) Bellek, sabit boyutlu sayfalara bölünmüştür. Her sayfanın bir temel fiziksel adresi (base physical address) vardır. Kesimli Sanal Bellek (Segmented Virtual Memory) Bellek değişken uzunlukta kesimlere bölünür. Her kesim bir taban fiziki adres + uzunluğa (base pysical address + length) sahiptir.

13 Sayfalı Sanal Bellek Yönetimi
Sayfalı bellek yönetiminde amaç programlar, derleyiciler tarafından eşit uzunlukta sayfalar biçiminde hazırlanırlar. Sanal bellek düzeni çerçevesinde, hazırlanan bu programların ana belleğe yüklenmeye hazır kopyaları, tümüyle diskte oluşturulur. Diskte yer alan sayfalardan bir kesimi ana belleğe yüklenerek işletim başlatılır.

14 Sayfaların Belleğe Getirilme Biçimi
İstemsel Sayfalama (Demand Paging) Tekniği Sanal bellek sistemleri genellikle istemsel sayfalama (demand paging) tekniğini kullanır. İstemsel sayfalama (demand paging), programlara ait sayfaların ihtiyaç olduğunda belleğe yüklenmesidir. İstemsel sayfalama ile program çalışması süresince kullanılmayan sayfalar fiziksel hafızaya yüklenmez. Başlangıçta sayfa hataları oluşacak fakat zamanla bu hatalar azalacaktır.

15 Sayfaların Belleğe Getirilme Biçimi
İstemsel Sayfalama (Demand Paging) Tekniği Process’ler birbirini belli sırayla takip eden sayfalardan oluşturulur. Ana belleğe yerleştirilen bir process’in hangi sayfasının kullanılacağına Sayfalayıcı (Pager) karar verir. Sayfalayıcı ana belleğe process’in kullanılacak olan sayfasını getirir. Böylece sayfalayıcı kullanılmayacak olan sayfaları ana belleğe getirmez. Tüm sayfalar yerine sadece işlenecek olan sayfaların ana belleğe getirilmesi yer değiştirme zamanını düşürdüğü gibi, ana bellekte daha az yer kullanılmasını sağlar.

16 Sayfaların Belleğe Getirilme Biçimi
Örneğin, ana belleği 32 MB olan bir bilgisayarda, 300 MB’lık bir program çalıştırılmak istenirse, bu programın tümünün ana belleğe yerleşmesi mümkün değildir. Bu durumda istemsel sayfalama yöntemi kullanılarak, örneğin ana bellek 4 KB’lık sayfalara bölünerek, çalıştırılmak istenen programın sadece gerekli işlemlerine ait sayfalar ana belleğe yüklenir. Geri kalanı ise sanal bellekte bekler ve gerekli olduğunda ana belleğe getirilir.

17 Sayfalı Sanal Bellek Yönetimi Durum Belirteci
Her program, mantıksal adres uzayını, fiziksel ana bellekteki bellek uzayına dönüştüren kendine ait bir sayfa tablosuna sahiptir. Sayfa tablosu, ana bellekte mevcut olmayan sayfaların kayıtlarını da tutabilir. Sanal bellek düzeninde tüm program sayfalarının ana bellekte bulunma zorunluğu olmadığından sayfa tablolarında, sayfa başlangıç adreslerinin yanına, ilgili sayfanın belleğe yüklü olup olmadığını gösteren bir durum belirtecinin eklenmesi gerekir. Yani bellekteki ve diskteki sayfaları birbirinden ayırmak gerekir. durum belirteci, bir bit uzunluğunda bir bilgidir, sayfa bellekte biti olarak bilinir. valid ve invalid şeklinde bir bitlik durum belirteci, sayfanın bulunduğu yeri (bellekte olup olmadığı) belirlemek için kullanılır.

18 Sayfalı Sanal Bellek Yönetimi Durum Belirteci
Durum belirteci konumu valid (mantıksal 1) invalid (mantıksal 0) Durum belirteç biti, valid konumda bırakılırsa bu değer ilişkili olduğu sayfanın geçerli ve bellekte olduğunu gösterir. Eğer bu bit invalid durumda bırakılırsa ait olduğu sayfanın geçersiz olduğunu ( yani bu sayfanın process’in adres aralığında bulunmadığını) ve o an bellekte olmadığını diskte bulunduğunu gösterir.

19 Sanal Bellek (Virtual Memory)
Durum belirteç biti (valid - invalid bit) Eğer process bellekte olmayan bir sayfayı kullanmak isterse, bu hatalı girişim işletim sistemine “sayfa hatası (page fault)” olarak geri dönmektedir.

20 Sayfalama ve Fiziksel Adres Dönüşümü
Ana bellek bilgisayarın fiziksel, yani gerçek belleğidir. Bu bellekte fiziksel adresler kullanılmaktadır. Sanal bellek ise bilgisayarın sabit diskinde bulunan ve multiprocess sistemlerde işletim sistemlerinin kullandığı özel bir bellek türüdür. Bu bellek türünde de mantıksal adresler kullanılmaktadır. Programlar genellikle mantıksal adresleri kullanmaktadır. Programlar gerçekten çalışmaya başladığında ise fiziksel adreslere ihtiyaç duyulur. Bu durumda mantıksal adresler fiziksel adreslere dönüştürülür.

21 Sayfalama ve Fiziksel Adres Dönüşümü

22 Sayfalı Sanal Bellek Yönetimi
Sayfa tablosunun erişilen sayfayla ilgili satırı, fiziksel adres hesaplama amacıyla CPU’da sayfa taban yazmacına taşındığında belirteç biti donanımsal bellek yönetim birimince (Memory Management Unit- MMU) test edilir. İlgili sayfanın ana bellekte yüklü olmadığı anlaşılırsa, sayfa hatası (page fault) oluşur ve adres dönüştürme işlemleri (mantıksaldan fiziksel adrese dönüşüm) yarıda kesilerek denetim işletim sistemi bellek yöneticisine bırakılır. Bu, bir makina komutunun, işletimin ortasında kesilmesi demektir.

23 Sayfalı Sanal Bellek Yönetimi
Bellekte olmayan (invalid) bir sayfaya erişime sayfa hatası (page fault) denir. Bellekte bulunmayan bir sayfaya erişim söz konusu olduğunda, MMU işletim sistemine uyarı verir(trap). MMU işletim sisteminin bellek yöneticisine anahtarlanır. İşletim sistemi ilgili sayfayı sanal bellekten fiziksel belleğe aktarmalıdır. İlgili sayfaya atanacak boş bir çerçeve bulunup bulunmadığı sınanır. Boş bir çerçeve bulunabilirse bu sayfanın başlangıç adresi, process’in sayfa tablosunda, erişilen mantıksal sayfa satırına işlenir. Bu satırdaki, sayfayla ilgili belirteçler de güncellenerek yarıda kesilen komutun işletiminin başına geri dönülür.

24 Sayfalı Sanal Bellek Yönetimi
Adres dönüştürme sürecinin ortasında, denetimin donanımdan işletim sistemi bellek yöneticisine aktarılmasından sonra gerçekleşmesi gereken işlemler şunlardır: İstenilen ilgili sayfa sanal bellek (sabit disk) üzerinde bulunur. Ana bellek üzerinde ilgili sayfanın atanacağı boş çerçeve (frame) aranır. Eğer boş çerçeve varsa o kullanılır. Eğer boş çerçeve (frame) yoksa, sayfa yerleştirme algoritmalarına göre bir kurban (victim) çerçeve seçilir. Seçilen kurban (victim) çerçevedeki sayfa (diskteki kopyasından farklı ise) sanal bellek üzerindeki yerine tekrar yazılır. İstenilen sayfa, boşaltılan çerçeve içine yerleştirilir. Sayfa tablosu değiştirilerek ilgili sayfanın belleğe yüklendiği belirtilir. Yarıda kesilen komutun işletimi yeniden başlatılır.

25 Bellekte boş çerçeve (frame) bulunamaması

26 Bellekte boş çerçeve (frame) bulunamaması
Eğer boş çerçeve (frame) yoksa, sayfa yerleştirme algoritmalarına göre bir kurban (victim) çerçeve seçilir. Seçilen kurban (victim) çerçevedeki sayfa (diskteki kopyasından farklı ise) sanal bellek üzerindeki yerine tekrar yazılır ve sayfa tablosunda gerekli değişiklik yapılarak o sayfanın artık bellekte olmadığı belirtilir. Boşaltılan çerçeve artık istenilen sayfa için kullanılabilir durumdadır.

27 Dirty bit Seçilen kurban (victim) çerçevedeki sayfa diskteki kopyasından farklı ise bu duruma da dikkat edilmelidir. Bu durum modify (dirty) bit kullanılarak ayarlanabilir. Her sayfa yada frame bir modify bite sahip olabilir. Sayfa içeriği belleğe alındıktan sonra dirty bit sıfırlanır. Daha sonra bu sayfa üzerinde herhangi bir bilgi değişikliği meydana geldi ise bu bit dirty modified olarak set edilir. Page replacement sırasında bu bit incelenir. Eğer sayfa içeriğinde herhangi bir değişiklik varsa, dirty bit set ise o zaman sayfa diske yazılır. Eğer içerikte bir değişiklik yoksa tekrar yazılmasına gerek kalmaz.

28 Proseslere Çerçeve(frame) Ataması
Statik yer atama: Process’lere önceden belirlenen sayıda fiziksel bellekte çerçeve atanır. Yani bir process’e ana bellekte ayrılabilecek çerçeve sayısı, işletimin başında belirlenen sayıyla kısıtlanır. Bu sayı uygulamanın türüne göre değişebilir. Process’lerin izin verilen sayıda sayfası ana belleğe yüklendikten sonra, yeni sayfalarına, eski sayfaları bellekten çıkarılarak yer açılır. Bu yaklaşım yerel sayfa çıkarma politikası (local replacement policy) olarak bilinir.

29 Proseslere Çerçeve(frame) Ataması
Dinamik yer atama: Process’in işletimi boyunca tahsis edilen çerçeve sayısı değişiklik gösterir. Sayfa hatalarının fazla olması durumunda ek çerçeve tahsisi, az olması durumunda ise çerçeve azaltılması yapılır. Yerel sayfa çıkarma politikasının tersi, genel sayfa çıkarma politikasıdır (global replacement policy). Genel sayfa çıkarma politikasıyla, process’lere atanacak fiziksel sayfa sayısına bir kısıtlama konmaz. Bunun sonucu olarak, bir process’e yer açmak gerektiğinde diğer process sayfalarının da bellekten çıkarılması söz konusu edilir.

30 Process’lere Bellek Çerçevesi Atama Politikaları
Sayfalı sanal bellek yönetiminin uygulandığı sistemlerde, processlere ayrılan bellek çerçeve sayısı sistem başarımını etkileyen önemli bir parametre olarak ortaya çıkar. Bir process’in, aynı anda sahip olabileceği toplam fiziksel çerçeve sayısının, genelde bir üst sınırı bulunur. Multiprocess sistemlerde bellek, aynı anda birden çok process tarafından paylaşılmak zorunda olduğundan her bir process’e, ana bellekteki sınırlı sayıdaki fiziksel çerçeveden ancak bir kesiminin ayrılabilmesi doğaldır.

31 Process’lere Bellek Çerçevesi Atama Politikaları
Ana bellekteki çerçeve sayısının değişmez olduğu düşünüldüğünde, her bir process için ayrılabilen toplam çerçeve sayısı, sistemde aynı anda işletime alınan process sayısına bağlıdır. Daha açık bir anlatımla, process’lere ayrılan çerçeve sayısı, aynı anda işletime alınan process sayısıyla ters orantılıdır.

32 Process’lere Bellek Çerçevesi Atama Politikaları
Process’lere atanabilecek çerçeve sayısının bir üst sınırı bulunur. Process’lere ayrılan çerçeve sayısının çok düşük tutulması durumunda, sayfa hatasının artışına bağlı olarak, ana bellek-disk arası sayfa gelgitlerinin ve işletim yükünün artmasıyla karşı karşıya kalınır. Process’lere ayrılan çerçeve sayısının, bir de alt sınırı bulunur. Bu nedenle process’lere aynı anda atanabilecek toplam çerçeve sayısının, işletim sistemince dikkatlice belirlenmesi önem taşır. Bu belirleme, genelde sayfa hatası sayısı taban alınarak yapılır.

33 Process’lere Bellek Çerçevesi Atama Politikaları
Sistemde kaynak kullanım düzeyini artırmak amacıyla aynı anda işletilen process sayısını artırmak gerekir. Ancak aynı anda işletime alınan process sayısı artıkça process’lerin her birine ayrılabilen çerçeve sayısı düşer. Bu düşüş belirli bir düzeyin altına indiğinde, birlikte çalışan process sayısının artmasına karşın kaynak kullanım düzeyi, özellikle de CPU kullanım düzeyi düşmeye başlar. Zira process’lere yeterli sayıda ana bellek çerçevesi ayıramama sonucunda bellekte bulunmayan sayfalara erişim istemleri, dolayısıyla sayfa hataları sayıca artar. Böylece process’lerin CPU kullanım payı ve sistem başarımı aşırı düşer; işletim yükü artar.

34 Çerçeve Sayısı ve Sayfa Hatası Grafiği

35 Sayfalı Sanal Bellek Yönetimi
Sayfa hatası (page fault) sonrasında, erişilmek istenen sayfanın taşınacağı boş bir sayfa bulunamaması durumunda bellekten çıkarılacak sayfanın seçimi gündeme gelir. Bu seçim Sayfaya Yeniden Yerleştirme Algoritmalarına (Page replacement) dayalı olarak yürütülür. Bu algoritmaların hepsi, ‘sayfa hatası’ sayısını en aza indirmeyi amaçlar. Ancak bu algoritmaların işletim süreleri de göz önüne alınması gereken diğer bir kıstası oluşturur.

36 Sayfaya Yeniden Yerleştirme Algoritmaları (Page replacement)
Bu algoritmaların amacı hangi sayfanın fiziksel ana bellekte (RAM) ve hangi sayfanın sanal bellekte bulunacağını ve ne zaman yer değiştireceklerini belirlemektir. Algoritmaların başarısı, seçilen sayfanın yakın gelecekte kullanılmaması ile belirlenebilir. Algoritmaların çoğu process’lerin geçmiş davranışlarına bakarak gelecek hakkında tahmin yürüterek çalışmaktadır.

37 Sayfaya Yeniden Yerleştirme Algoritmaları (Page replacement)
Dört farklı Sayfaya Yeniden Yerleştirme Algoritması kullanılmaktadır: 1) En uygun (Optimal page replacement) 2) En önce kullanılan (Least recently used-LRU) 3) İlk-giren-ilk-çıkar (First-in-first-out-FIFO) 4) Saat (Clock)

38 En Uygun Algoritması (Optimal page replacement)
Bu sayfa değiştirme algoritmasına göre bir sayfa hatası (page fault) olduğunda, yani fiziksel ana bellekte bulunmayan bir sayfaya erişilmek istendiğinde, dolaysıyla sanal bellekteki bir sayfaya erişilmek istendiğinde, sanal bellekten ilgili sayfa ana belleğe yüklenirken, ana bellekte bundan sonra en uzun süre erişilmeyecek olan çerçeve seçilir (victim) ve buraya sanal bellekten alınan ilgili sayfa yüklenir. Seçilen çerçeve (victim) içeriği olan sayfa da sanal belleğe geri yazılır.

39 En Uygun Algoritması (Optimal page replacement)
Kuramsal olarak en iyi sonucu verecek (en az sayfa hatası oluşturan) algoritmadır. Zira ana bellekten bir çerçeve çıkarmak gerektiğinde, bu algoritmaya göre, o an erişimi en geç gerçekleşecek çerçevenin seçimi söz konusu edilecektir. Ancak herhangi bir anda hangi çerçevenin en geç erişilecek olacağını bilmenin ya da kestirebilmenin kolay ve pratik bir yolu yoktur. Bu nedenle bu algoritma, daha çok kuramsal değerde, diğer algoritmalarla elde edilen sonuçların değerlendirilmesine yarayan ölçüt bir algoritma olarak algılanmalıdır.

40 En Uygun Algoritması (Optimal page replacement)
Örnek: Bir process’in beş sayfası (1,2,3,4,5) ve bu sayfaların yerleşebileceği ana bellekte bulunan üç tane çerçeve (frame) bulunduğunu varsayınız. Process’in sayfalarının aşağıdaki sırayla ana belleğe taşınması gerekir.

41 En Uygun Algoritması (Optimal page replacement)
1. sayfa talebinde sayfa hatası (page fault) oluşur çünkü 2. sayfa henüz bellekte olmayan bir sayfadır. |2| | | 2. sayfa talebinde sayfa hatası olur çünkü 3. sayfa da henüz bellekte bulunmamaktadır. |2|3| | 3. sayfa talebinde zaten bellekte bulunan 2. sayfa istenir ve bir sayfa hatası oluşmaz. 4. sayfa talebinde yeniden bir sayfa hatası oluşur, sebebi 1. sayfanın da henüz bellekte olmamasıdır. |2|3|1|

42 En Uygun Algoritması (Optimal page replacement)
Artık ana bellek çerçeveleri tamamen dolmuştur çünkü bellek kapasitesi 3 sayfa taşıyacak şekilde 3 çerçeve ile tanımlanmıştır. 5. sayfa talebinde bellekte bulunmayan 5 numaralı sayfa talep edilir ve bir sayfa hatası oluşur. Bu noktada Optimal Page Replacement algoritması devreye girer. Çünkü bellek tamamen doludur ve 5 numaralı sayfanın belleğe yüklenmesi için bellekteki sayfalardan birisinin kaldırılması gerekmektedir. Sorun hangi sayfanın kaldırılacağıdır.

43 En Uygun Algoritması (Optimal page replacement)
|2|3|1| Optimal Page Replacement algoritmasına göre en uzun süre erişilmeyecek olan çerçevedeki sayfa kaldırılır. 5. sayfa talebinde 1 numaralı sayfaya çalışma sonuna kadar erişilmeyeceği için bu sayfa kaldırılacak ve yerine 5 numaralı sayfa konulacaktır. |2|3|5|

44 En Uygun Algoritması (Optimal page replacement)
6. sayfa talebinde zaten bellekte bulunan 2. sayfa istenir ve bir sayfa hatası oluşmaz. |2|3|5| 7. sayfa talebinde bellekte bulunmayan 4 numaralı sayfa talep edilir ve bir sayfa hatası oluşur. Bellek tamamen doludur ve 4 numaralı sayfanın belleğe yüklenmesi için bellekteki sayfalardan birisinin kaldırılması gerekmektedir. En uzun süre erişilmeyecek olan 2. sayfa kaldırılır ve yerine 4 numaralı sayfa konulacaktır. |4|3|5|

45 En Uygun Algoritması (Optimal page replacement)
8. sayfa talebinde zaten bellekte bulunan 5. sayfa istenir ve bir sayfa hatası oluşmaz. |4|3|5| 9. sayfa talebinde zaten bellekte bulunan 3. sayfa istenir ve bir sayfa hatası oluşmaz.

46 En Uygun Algoritması (Optimal page replacement)
10. sayfa talebinde bellekte bulunmayan 2 numaralı sayfa talep edilir ve bir sayfa hatası oluşur. Bellek tamamen doludur ve 2 numaralı sayfanın belleğe yüklenmesi için bellekteki sayfalardan birisinin kaldırılması gerekmektedir. En uzun süre erişilmeyecek olan 4. sayfa kaldırılır ve yerine 2 numaralı sayfa konulacaktır. |2|3|5| 11. sayfa talebinde zaten bellekte bulunan 5. sayfa istenir ve bir sayfa hatası oluşmaz. 12. sayfa talebinde zaten bellekte bulunan 2. sayfa istenir ve bir sayfa hatası oluşmaz.

47 En Uygun Algoritması (Optimal page replacement)
Bu algoritmada, gelecekte istenilebilecek en son sayfa seçilir ve sanal belleğe taşınır. Toplam 6 tane sayfa hatası oluştu.

48 En Önce Kullanılan Algoritması (Least Recently Used-LRU)
Bu algoritmaya göre bir sayfa hatası (page fault) olduğunda, yani ana bellekte bulunmayan bir sayfaya erişilmek istendiğinde, dolaysıyla sanal bellekteki bir sayfaya erişilmek istendiğinde, Sanal bellekten ilgili sayfa ana belleğe yüklenirken, bellekteki en az erişilen sayfa (yakın geçmişte kullanılmamış) yerine yüklenir ve bu en az kullanılan sayfa da sanal belleğe geri yazılır. Bu algoritmada ana bellekteki en önce kullanılmış olan sayfa değiştirilir. En uygun algoritması kadar iyi bir performansı vardır. Ancak uygulanması zor bir algoritmadır.

49 En Önce Kullanılan Algoritması (Least Recently Used-LRU)
Bellekte bir process’e ayrılan boş sayfa sayısı ne kadar büyük olursa bu process’in üreteceği eksik sayfa hatası uyarısı sayısının da o denli küçük olacağını düşünmek çok doğaldır. Ancak en önce kullanılan sayfayı çıkarma algoritmasıyla, kimi zaman, process’e ayrılan boş sayfa sayısının artırılmasına karşın sayfa hatası sayısının da arttığı görülür. Ters orantılı olan boş sayfa ve eksik sayfa hatası sayılarının düz orantılı olarak gelişmesi normal değildir. Bu durum Belady Anormalliği olarak adlandırılır. Bunun, process sayfalarının ilk giren ilk çıkar türü bir veri yapısı içinde tutulmasından kaynaklandığı bilinir.

50 Belady Anormalliği

51 En Önce Kullanılan Algoritması (Least Recently Used-LRU)
En önce kullanılan algoritması sayfaya erişilme zamanını taban alır. Bu algoritma son zaman diliminde sıkça kullanılan sayfaların gelecek zaman diliminde de sıkça kullanılacağını ya da son zaman diliminde hiç kullanılmamış bir sayfanın gelecek zaman diliminde de kullanılma olasılığının düşük olacağını varsayar. Bu varsayıma göre bellekten bir sayfa çıkarılacağı zaman o ana kadar, en erken erişilmiş sayfanın seçimi yapılır. Ancak en erken erişilmiş sayfayı belirlemek kolay bir işlem değildir ve çoğu kez özel donanım desteği gerektirir.

52 En Önce Kullanılan (Least Recently Used-LRU)
Örnek: Bir process’in beş sayfası (1,2,3,4,5) ve bu sayfaların yerleşebileceği ana bellekte bulunan üç tane çerçeve (frame) bulunduğunu varsayınız. Process’in sayfalarının aşağıdaki sırayla ana belleğe taşınması gerekir.

53 En Önce Kullanılan (Least Recently Used-LRU)
1. sayfa talebinde sayfa hatası (page fault) olur çünkü henüz bellekte olmayan 2. sayfa talep edilmiştir. |2| | | 2. sayfa talebinde sayfa hatası (page fault) olur çünkü henüz bellekte olmayan 3. sayfa talep edilmiştir. |2|3| | 3. sayfa talebinde zaten bellekte bulunan 2. sayfa istenir ve bir sayfa hatası oluşmaz. 4. sayfa talebinde sayfa hatası (page fault) olur çünkü henüz bellekte olmayan 1. sayfa talep edilmiştir. |2|3|1|

54 En Önce Kullanılan (Least recently used-LRU)
artık bellek tamamen dolmuştur çünkü bellek kapasitesi 3 sayfa taşıyacak şekilde tanımlanmıştır. 5. sayfa talebinde bellekte bulunmayan 5 numaralı sayfa talep edilir ve bir sayfa hatası oluşur. Bu noktada En Önce Kullanılan (Least recently used) algoritması devreye girer. Çünkü bellek tamamen doludur ve 5 numaralı sayfanın belleğe yüklenmesi için bellekteki sayfalardan birisinin kaldırılması gerekmektedir. Sorun hangi sayfanın kaldırılacağıdır.

55 En Önce Kullanılan (Least recently used-LRU)
LRU algoritmasına göre en eski erişilen kaldırılır. Buna göre en son erişilen iki sayfa, 2. ve 1. sayfalardır. Dolayısıyla 3. sayfa, şu anda en eski erişilmiş olandır ve hafızadan kaldırılır. |2|5|1|

56 En Önce Kullanılan (Least recently used-LRU)
6. sayfa talebinde zaten bellekte bulunan 2. sayfa istenir ve bir sayfa hatası oluşmaz. |2|5|1| 7. sayfa talebinde bellekte bulunmayan 4 numaralı sayfa talep edilir ve bir sayfa hatası oluşur. Bellek tamamen doludur ve 4 numaralı sayfanın belleğe yüklenmesi için bellekteki sayfalardan birisinin kaldırılması gerekmektedir. 1. sayfa, şu anda en eski erişilmiş olandır ve hafızadan kaldırılır ve yerine 4. sayfa yerleştirilir. |2|5|4|

57 En Önce Kullanılan (Least recently used-LRU)
8. sayfa talebinde zaten bellekte bulunan 5. sayfa istenir ve bir sayfa hatası oluşmaz. |2|5|4| 9. sayfa talebinde bellekte bulunmayan 3. sayfa talep edilir ve bir sayfa hatası oluşur. 2. sayfa, şu anda en eski erişilmiş olandır ve hafızadan kaldırılır ve yerine 3. sayfa yerleştirilir. |3|5|4|

58 En Önce Kullanılan (Least recently used-LRU)
10. sayfa talebinde bellekte bulunmayan 2. sayfa talep edilir ve bir sayfa hatası oluşur. 4. sayfa, şu anda en eski erişilmiş olandır ve hafızadan kaldırılır ve yerine 2. sayfa yerleştirilir. |3|5|2| 11. sayfa talebinde zaten bellekte bulunan 5. sayfa istenir ve bir sayfa hatası oluşmaz. 12. sayfa talebinde zaten bellekte bulunan 2. sayfa istenir ve bir sayfa hatası oluşmaz.

59 En Önce Kullanılan (Least recently used-LRU)
Bu algoritmada ana bellekteki en önce kullanılmış olan sayfa değiştirilir. Toplam 7 tane sayfa hatası oluştu.

60 İlk-Giren-İlk-Çıkar (First-in-first-out-FIFO)
Bu algoritma, ana bellekte uzun süre kalan bir sayfanın, gelecek komut işletimlerinde erişilme olasılığının düşük olacağı varsayımına dayanır. Bu algoritmanın uygulandığı sistemlerde, process’in ana belleğe yüklü tüm sayfaları ilk giren ilk çıkar (FIFO) türü bir kuyruk yapısında tutulur. Bu kuyruk yeni bir sayfaya erişmek gerektiğinde güncellenir. Kuyruğun başında belleğe ilk yüklenen, sonunda da en son yüklenen process sayfası yer alır. Bellekten bir sayfa çıkarmak gerektiğinde kuyruk başındaki sayfa seçilir. Bu algoritmada, FIFO kuyruğu, sadece erişilen sayfa değiştiğinde güncellenir.

61 İlk-Giren-İlk-Çıkar (First-in-first-out-FIFO)
Uygulanması kolay, işletim yükü düşük, hızlı bir algoritmadır. Ana bellekte en uzun süredir bulunan sayfa değiştirilir. Bellekte uzun süre kalmış sayfalar, bu algoritmanın varsaydığı gibi, her zaman, gelecek komut işletimlerinde kullanım olasılığı mutlaka en düşük olan sayfaları oluşturmazlar. Process’in en sık kullanılan sayfaları da belleğe en erken girmiş sayfalar olabilir. Bu durumda algoritma, sık sık başvurulan sayfaları bellekten çıkararak ana bellek-disk arası sayfa gelgitlerini artıran bir algoritma olarak ortaya çıkar.

62 İlk-Giren-İlk-Çıkar (First-in-first-out-FIFO)
Örnek: Bir process’in beş sayfası (1,2,3,4,5) ve bu sayfaların yerleşebileceği ana bellekte bulunan üç tane çerçeve (frame) bulunduğunu varsayınız. Process’in sayfalarının aşağıdaki sırayla ana belleğe taşınması gerekir.

63 İlk-Giren-İlk-Çıkar (First-in-first-out-FIFO)
Örnek Çözümü: Ana bellekte en uzun süredir bulunan sayfa değiştirilir. Toplam 9 tane sayfa hatası oluştu.

64 Saat Algoritması (Clock)
Bu algoritmada her bir sayfa için “kullanım biti” (*) adı verilen bir bit kullanılır. Sayfa ana belleğe yüklendiğinde bu sayfanın kullanım biti 1 olur. Sayfa bellekte bulunduğu bir zamanda tekrardan çağrılacak olursa kullanım biti yine 1 olacaktır. Çevrel kuyruk tutulur. İşaretçi en son belleğe alınan sayfanın bir sonrasını gösterir. Boş çerçeve kalmadığı zaman tüm kullanım bitleri 0 olacaktır. Yeniden yerleştirme gerektiğinde kullanım biti 0 olan ilk çerçeve seçilecektir. Kullanım biti 0 olan yoksa ilk tur tamamlanır, ikinci turda daha önce sıfır yaptıklarının ilki seçilir.

65 Saat Algoritması (Clock)
Örnek: Bir process’in beş sayfası (1,2,3,4,5) ve bu sayfaların yerleşebileceği ana bellekte bulunan üç tane çerçeve (frame) bulunduğunu varsayınız. Process’in sayfalarının aşağıdaki sırayla ana belleğe taşınması gerekir.

66 Saat Algoritması (Clock)
Sayfa ana belleğe yüklendiğinde bu sayfanın kullanım biti 1 olur. Boş çerçeve kalmadığı zaman tüm kullanım bitleri 0 olacaktır. Yeniden yerleştirme gerektiğinde kullanım biti 0 olan ilk çerçeve seçilecektir. (* kullanım bitinin 1 olduğu durumu ifade etmektedir) Toplam 8 tane sayfa hatası oluştu.

67 Algoritmaların Karşılaştırılması

68 Soru : Bir process’in sayfaları için ana bellekte dört çerçevenin kullanıldığını varsayınız. Aşağıdaki tabloda hangi sayfanın hangi çerçevede bulunduğu, sayfaların çerçeveye ne zaman yüklendiği, sayfaların ne zaman kullanıldığı ve kullanım biti değerleri verilmiştir. Çalışmakta olan process’in yeni bir sayfasının belleğe yükleneceğini varsayınız. Bu sayfanın ilk-giren-ilk-çıkar (FIFO), en önce kullanılan (LRU) ve saat (clock) algoritmalarına göre hangi çerçeveye yerleşmesi gerektiğine karar veriniz.

69 Çözüm : İlk-giren-ilk-çıkar (FIFO): Çerçeve numarası 3 seçilecektir.
En önce kullanılan (LRU): Çerçeve numarası 1 seçilecektir Saat (Clock): Çerçeve numarası 2 seçilecektir

70 Thrashing Bir process için gerekli minimum bellek çerçeve sayısının altına düşüldüğünde, process beklemeye alınır. Bu process’in tüm çerçeveleri boşaltılır ve diğer process’lere tahsis edilir. Bir process yeterli sayıda çerçeveye sahip değilse sıklıkla sayfa hatası olur. Sayfa hatası olduğunda tüm sayfaları aktif ise birisini seçer ve yer değiştirir. Ardından diğer sayfaya erişmek ister ve yeniden sayfa hatası olur. Sayfa hatası sıklığı giderek artar. Yüksek orandaki sayfalama işlemine thrashing (boşuna çalışma) denilir.

71 Thrashing “thrashing” aşırı disk kullanımına neden olur.
Thrashing oluştuğunda, alarm verdirici bir oranda sayfa hatası oluşur; işletim sistemi zamanının çoğunu, sayfaları sanal bellek ile disk arasında götürüp getirmeye ayırmak zorunda kalır. Thrashing kısa zamanda sistem kaynaklarının tükenmesine ve genelde de cevap süresinin uzamasına neden olur. Eğer çalışmakta olan uygulama artık cevap vermiyorsa ama disk sürücünün LED’i yanıp sönüyorsa bilgisayar büyük olasılıkla thrashing kurbanı olmuştur.

72 Thrashing CPU performansı, multiprogramming seviyesi arttıkça artmakta, fakat maksimum performansına eriştikten sonra multiprogramming seviyesi arttıkça mikroişlemci performansı birden düşmektedir. Bu ani düşüşün olduğu kısım thrashing’in (etkinlik kaybı) başladığı noktadır. Bu noktada mikroişlemci performansını artırmak için multiprogramming seviyesi azaltılmalıdır.

73 Thrashing İşletim sistemi CPU doluluk oranını sürekli izler ve CPU doluluk oranı azaldığında multiprogramming seviyesini artırarak yeni process başlatır. Global page replacement kullanılırsa, diğer process’lerin sayfaları alınmaya başlar ve buna bağlı olarak sayfa hatası sıklığı artmaya başlar. Diğer process’ler yeni sayfaya ihtiyaç duyduğunda bu kez yeni process’e atanan sayfalar alınır. Sayfa hatası arttıkça, process’ler sayfalama biriminde sıra beklemeye başlar ve CPU hazır kuyruğu boşalır. CPU doluluk oranı düşmeye başlar. CPU process zamanlayıcı (scheduler), CPU’nun doluluk oranının düşmeye başladığını görür ve sürekli yeni process’ler başlatır. Sonuçta multiprogramming seviyesi artar, ancak CPU doluluk oranı düşer, thrashing artar ve throughput düşer.


"İşletim Sistemleri (Operating Systems)" indir ppt

Benzer bir sunumlar


Google Reklamları