Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bölüm 9: Sanal Bellek. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bölüm 9: Sanal Bellek Chapter 9: Virtual Memory Background Sayfa.

Benzer bir sunumlar


... konulu sunumlar: "Bölüm 9: Sanal Bellek. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bölüm 9: Sanal Bellek Chapter 9: Virtual Memory Background Sayfa."— Sunum transkripti:

1 Bölüm 9: Sanal Bellek

2 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bölüm 9: Sanal Bellek Chapter 9: Virtual Memory Background Sayfa isteği,Demand Paging İşlem yaratılması, Process Creation Sayfa Yer Değişimi,Page Replacement Çerçevelerin Yerleştirilmesi, Allocation of Frames Thrashing Bölümlendirme İsteği, Demand Segmentation Örnekler, Operating System Examples

3 9.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sanal Bellek Geçen hafta bellek yönetme stratejilerini inceledik. Bütün bu stratejilerin tek bir amacı vardır. Bu amaç, bütün işlemleri aynı anda bellekte tutabilmektir. Böylece işlem yürütülmeden önce belleğe gelecektir. Sanal bellek tekniği ise işlemin yürütümünün tamamının bellekte olmamasını sağlayan bir tekniktir. Programlar fiziksel bellekten büyük olduğunda, bu teknik avantajlı olmaktadır. Bu yolla, kullanıcı bellek kısıtlamalarından kurtulmaktadır. Fakat sanal bellek kullanımı kolay bir uygulama değildir. Bu bölümde sanal bellek kullanımı incelenecektir.

4 9.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sanal Bellek 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. Programların parça olarak belleğe yüklenmesinin çeşitli yararları vardır: Kullanıcı fiziksel bellek sınırlamalarından kurtulur, büyük miktardaki sanal adresleri kullanarak program yazabilir. Kullanıcı programları daha az fiziksel bellek gerektirdiğinden daha fazla program aynı anda yürütülebilecektir. Daha az G/Ç, belleğe program yüklemek ve bellekte yer değiştirmek için kullanılacaktır. Böylece kullanıcı programları daha hızlı yürütülebilecektir.

5 9.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sanal Bellek Programların parça olarak belleğe yüklenmesinin çeşitli yararları vardır: Sanal bellek kullanıcı mantıksal belleğini, fiziksel bellekten ayırmaktadır. Küçük bir fiziksel bellek varolduğunda, büyük bir sanal belleğin var olması gerekir. Adres uzayının birçok işlem tarafından paylaşılmasını sağlar. Daha etkili işlem oluşturulmasını sağlar.

6 9.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sanal belleği, fiziksel bellekten daha fazla olan bir bellek düzenlemesi 

7 9.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Virtual-address Space

8 9.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Shared Library Using Virtual Memory Sanal Bellek Kullanılarak Paylaşılan Kütüphaneler

9 9.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa İsteği, Demand Paging Sayfalandırma isteği, yer değiştirmede kullanılan sayfalandırma tekniğine benzemektedir. İşlemler ikincil bellekte bulunurlar, çoğunlukla bu yer disk alanıdır. İşlem, yürütülmek istendiğinde belleğe getirilmesi sağlanır. Bütün işlemin yer değiştirmesi yerine, lazy swapper (tembel yer değiştirici )kullanılır. Tembel yer değiştirici, sayfaya ihtiyaç olana kadar o sayfayı belleğe getirmez. Burada işlemin sayfalar halinde olduğu kabul edilir. İşlem büyük ve bütün bir adres aralığı olarak kabul edilmemiştir. Burada yer değiştirici yerine sayfalandırıcı kullanımı daha doğru olacaktır. Çünkü yer değiştirici işlemin bütünü ile ilgilenir, sayfalandırıcı ise sadece gerekli olan sayfa ile ilgilenir. Bir işleme ihtiyaç olduğunda, sayfalandırıcı bütün bir işlemi belleğe getirmektense, sadece ihtiyaç olan sayfaların belleğe getirilmesini sağlar. İhtiyaç olmayan sayfaların belleğe alınmaması ile yer değiştirme zamanı ve kullanılan bellek alanı daha az olacaktır.

10 9.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa İsteği, Demand Paging Sayfaya ihtiyaç olduğunda belleğe getirilir Bring a page into memory only when it is needed Daha az I/O ya ihtiyaç Daha az bellek Less memory needed Daha çabuk cevap Faster response Çok kullanıcı desteği Sayfaya gerektiğinde  referans et invalid referans  abort Bellekte değilse  belleğe getir

11 9.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfalandırılmış belleğin disk alanına transfer edilmesi

12 9.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Valid-Invalid Bit Sayfalandırıcı kullanımı sırasında bellekteki ve diskteki sayfaları birbirinden ayırmak gerekir. Bunun için geçerli ve geçersiz bitler (valid ve invalid bitler) kullanılır. Bu bit, geçerli 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 geçersiz durumda bırakılırsa ait olduğu sayfanın geçersiz olduğunu ( yani bu sayfanın işlemin adres aralığında bulunmadığını) ve o an diskte bulunduğunu gösterir. Aktif sayfanın sayfa giriş tablosu belleğe getirilir. Aktif olmayan (bellekte olmayan) sayfa tablosu girişi “geçersiz” duruma getirilir. Eğer işlem bellekte olmayan bir sayfayı kullanmak isterse, bu hatalı girişim işletim sistemine “sayfa hatası” olarak geri dönmektedir

13 9.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Valid-Invalid Bit With each page table entry a valid–invalid bit is associated (1  in-memory, 0  not-in-memory) Initially valid–invalid but is set to 0 on all entries Example of a page table snapshot: During address translation, if valid–invalid bit in page table entry is 0  page fault  Frame #valid-invalid bit page table

14 9.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bazı Sayfaları Ana Bellekte Olmayan Sayfa Tablosu

15 9.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa Hatası Page Fault Eğer işlem bellekte olmayan bir sayfayı kullanmak isterse, bu hatalı girişim işletim sistemine “sayfa hatası”( sayfa isteği) olarak geri dönmektedir Get empty frame. Swap page into frame. Reset tables, validation bit = 1. Restart instruction: Least Recently Used block move auto increment/decrement location

16 9.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa Hatasında Yapılan İşlemler 1-İşlem için tablo kontrol edilerek, bu referansın geçerli veya geçersiz bir bellek erişimi olup olmadığı öğrenilir. 2- Eğer referans geçersiz ise işlem bitirilir. Eğer geçerli ise, halen bellekte olmayan bir işlem olduğu için belleğe getirilmeye çalışılır. 3-Boş çerçeve bulunur. 4-İstenilen sayfanın diskten yeni ayrılmış olan çerçeveye alınması sağlanır. 5-Diskten okuma işlemi tamamlandığında içerdeki tabloda geçerli değişiklik yapılır ve sayfa tablosunun o sayfanın bellekte olduğunu göstermesi sağlanır. 6- Yarım kalmış veya yanlış olan yanlış adres erişimi ile kesilmiş komut yürütümüne baştan başlanır. Bu aşamalardan sonra işlem sayfaya erişilebilir, çünkü sayfa bellektedir.

17 9.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa Hatasında Yapılan İşlemler

18 9.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Donanım desteği Sayfa isteği için donanım desteği şu şekilde olmaktadır: Sayfa Tablosu: Bu tablolar, koruma bitleri ile geçerli-geçersiz konumlarından birini kullanarak sayfaları işaretleme özelliğine sahiptirler. İkincil Bellek: Ana bellekte bulunmayan sayfaları tutan belleklerdir. İkincil bellek genelde hızlı diskler olmaktadır.

19 9.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa isteği performansı Sayfa isteğinin bilgisayar performansında belli bir etkisi vardır. Bilgisayarlardaki bellek erişimi 10 nsn ile 200 nsn arasındadır. Sayfa hatası olmadığı sürece erişim zamanı, bellek erişim zamanına eşit olmaktadır. Sayfa hatası oluştuğunda ise önce uygun sayfa diskten okunur ve istenilen kısma ulaşılır.

20 9.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa isteği performansı Erişim zamanını hesaplamak için, sayfa hatası olduğunda ne kadar zaman harcandığını bilmek gerekir. Sayfa hatası oluştuğunda aşağıdaki olaylar oluşur: Sayfa hatası kesme servisinin yapılması Sayfanın okunması İşlemin tekrar başlaması’dır.

21 9.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa isteği performansı Sayfa hatası oluştuğunda aşağıdaki olaylar oluşur: P sayfa hatasının olma olasılığı olsun, 0

22 9.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts What happens if there is no free frame? Page replacement – find some page in memory, but not really in use, swap it out algorithm performance – want an algorithm which will result in minimum number of page faults Same page may be brought into memory several times

23 9.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Performance of Demand Paging Page Fault Rate 0  p  1.0 if p = 0 no page faults if p = 1, every reference is a fault Effective Access Time (EAT) EAT = (1 – p) x memory access + p (page fault overhead + [swap page out ] + swap page in + restart overhead)

24 9.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts 24 … Diske gitmek bellek erişim performansından ödün vermek anlamına gelecektir sayfa referansından bir tanesinde page fault oluşursa EAT=8.2 microsec. hesaplanmıştır. Bunların sonucunda işletim sistemlerinde sayfa değişim politikası çok önemlidir. If one access out of 1,000 causes a page fault, then EAT = 8.2 μs: This is a slowdown by a factor of 40 (8,2 mikrosaniye/200nanosaniye) What if want slowdown by less than 10%? 200ns x 1.1 < EAT  p < 2.5 x This is about 1 page fault in !

25 9.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İşlem Oluşturulması, Process Creation Sanal bellek kullanımı işlem oluşturulması sırasında da fayda sağlar.: - Copy-on-Write - Memory-Mapped Files (later)

26 9.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Copy-on-Write Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory If either process modifies a shared page, only then is the page copied COW allows more efficient process creation as only modified pages are copied Free pages are allocated from a pool of zeroed-out pages

27 9.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Copy-on-Write

28 9.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa yer değişimi, Page Replacement Kullanıcı işlemleri yürütülürken, sayfa hatası oluştuğunda, donanım işletim sistemini uyaracak bir sinyal gönderir ve işletim sistemi bu sayfanın geçerli bir bellek erişimi olup olmadığını araştırmak için tabloları kontrol eder. İşletim sistemi istenilen sayfanın diskin neresinde olduğunu kontrol eder, fakat bu işlemi yükleyecek boş bir çerçeve bulunmadığında bir sonraki sayfada görülen durum oluşmaktadır.

29 9.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Need For Page Replacement

30 9.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa yer değişimi İşlemi yükleyecek boş bellek olmadığında işletim sisteminin izleyebileceği çeşitli yollar mevcuttur. İşletim sistemi işlemi sona erdirebilir, fakat bu iyi bir çözüm yolu değildir. Boş bir çerçeve bulunmadığında o an kullanılmayan fakat dolu olan bir çerçeveyi bulup, onu boşaltabiliriz. Bunu yapmak için, çerçevenin içeriği takas alanına 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. Bir sonraki sayfada sayfa yer değişmesi gösterilmektedir.

31 9.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa yer değişimi

32 9.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa yer değişimi 1. Diskte istenilen sayfanın yerini bul 2. Boş çerçeve bul - Boş çerçeve varsa kullan - Eğer boş çerçeve yokda, satfa yer değişim algoritması ile a kurban çerçeve,victim frame bul 3. İstenilen sayfayı yeni çerçeveye oku, Sayfa ve çerçeve tablolarını güncelle. 4. İşleme tekrar başla

33 9.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa yer değişimi Algoritmaları En az sayfa hatası (page-fault rate) istenir Belli bir grup bellek raferansı için algoritma çalıştırılır ve ortaya çıkan sayfa hatası hesaplanır.

34 9.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Çerçeve Sayısı ve Sayfa Hatası Grafiği

35 9.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İlk Gelen İlk Çıkar First-In-First-Out (FIFO) Algorithması Referasn Dizisi: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 z 4 frames FIFO Replacement – Belady’s Anomaly Daha fazla çerçeve  Daha fazla sayfa hatasıs page faults page faults 4 43

36 9.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts FIFO Page Replacement

37 9.37 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts FIFO Illustrating Belady’s Anomaly

38 9.38 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Optimal Algorithm En uzun süre kullanılmayacak sayfa ile yer değişimi yapılır. Replace page that will not be used for longest period of time 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 How do you know this? Used for measuring how well your algorithm performs page faults 4 5

39 9.39 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Optimal ve LRU (Least Recently Used) sayfa yer değişim algoritmalarının nasıl çalıştığına ait açıklama ve birer örnek ödev olarak haftaya (2/05/2012) yazılı olarak getirilecektir.

40 9.40 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Optimal Page Replacement

41 9.41 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts En Son Kullanılan, Least Recently Used (LRU) Algorithm Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Counter implementation Every page entry has a counter; every time page is referenced through this entry, copy the clock into the counter When a page needs to be changed, look at the counters to determine which are to change

42 9.42 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts En Son Kullanılan, Least Recently Used (LRU) Algorithm FIFO algoritması en önce gelmiş sayfayı bulmaya çalışırken, optimal algoritma en az kullanılacak sayfayı arar. Görüldüğü gibi FIFO gelen referans dizisinde geriye doğru arama yapmakta, optimal algoritma ise ileriye doğru arama yapmaktadır. FIFO algoritması sayfanın belleğe geldiği zamanı kullanırken optimal algoritma sayfanın kullanıldığı süreyi kullanır.

43 9.43 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts LRU Page Replacement

44 9.44 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Aşağıda verilen referans dizisi için FIFO, OPTIMAL VE LRU yöntemlerine göre kaç sayfa hatası oluştuğunu bulunuz

45 9.45 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts FIFO ÇÖZÜM

46 9.46 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts OPTIMAL ÇÖZÜM Referans dizisinin 1,5,6 ile devam ettiği varsayıldığında çözüm

47 9.47 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts LRU Çözüm

48 9.48 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts En Son Kullanılan, Least Recently Used (LRU) Algorithm Biz yakın geçmiş zamanı yakın gelecek zaman için bir yaklaşım olarak kullanırsak, en uzun zaman kullanılmayan sayfa ile yer değişme yapma işlemini sağlayabiliriz. Bu yaklaşım en yakın zamanda kullanılmış (Least Recently Used, LRU) algoritması olmaktadır LRU’da yer değiştirme olması gerektiğinde LRU en uzun süre kullanılmayan sayfayı seçerek, bu sayfa ile yer değiştirme yapılmasını sağlar.

49 9.49 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts LRU Algorithm (Cont.) Son kullanılan sayfa nasıl tespit edilecek? Sayaç ve Yığın Uygulması Sayaçlar: Her sayfa tablosu girişi bir kullanım zamanı alanı, mikroişlemci clock ve sayacı bulundurur. Her bellek referansında clock artırılır. Sayfaya bir referans olduğunda clock kayıt edicisinin içeriği o sayfanın kullanım zamanı alanına(time of use) kopyalanır. Bu yolla her sayfa için son referansın zamanı mevcut olmaktadır. Biz en küçük zaman değerine sahip sayfa ile yer değiştirme yapacağız.

50 9.50 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Yığın: Diğer bir yöntem ise sayfa numaralarının yığınını tutmaktır. Sayfa referansı olduğunda sayfa yığından kaldırılır ve en üste konulur. Böylece yığının en üstünde en yakında kullanılan sayfanın bulunması, en altta ise en önce kullanılan sayfanın bulunması sağlanacaktır. En alttaki sayfa LRU sayfasıdır. Sayfa kaldırma ve sayfayı yığının en üstüne atma işlemi en az 6 göstergecin değişmesini gerektirmektedir. Bu yöntemde yer değiştirme işleminde, yer değiştirme yapılacak sayfanın araştırılması gerekmez, yığının en altındaki sayfa LRU sayfası olur.

51 9.51 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts En Yakın Sayfa Referansını Bulmak için Yığın Kullanılması Use Of A Stack to Record The Most Recent Page References

52 9.52 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts LRU YAKLAŞIM ALGORİTMASI LRU Approximation Algorithms Çok az sistem LRU sayfa değişmesi için donanım desteği sağlamaktadır. Bazı sistemler hiç donanım desteği vermediği için, başka yer değiştirme algoritmaları kullanılmaktadır. Sayfa için referans olduğunda, referans biti set edilir. İşletim sistemi tarafından önce bütün bitler 0 yapılır. Kullanıcı işlemleri oldukça, referans olan her sayfadaki bitler ilgili bitler donanım tarafından 1’e set edilir. Referans bitleri kontrol edilerek hangi sayfanın kullanıldığı, hangi sayfanın kullanılmadığı anlaşılır. Sayfanın hangi sırayla kullanıldığı bilinmemektedir. Tam bilgiye ulaşamadığı için LRU ile ilgili çeşitli yaklaşımlar mevcuttur.

53 9.53 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts LRU YAKLAŞIM ALGORİTMASI LRU Approximation Algorithms Ek Referans Biti Kullanımı Referans bitini belli aralıklarla kaydederek ek bilgiye ulaşılabilir. Tablodaki her sayfa için bellekte 8 bit tutulur. Belli aralıklarla kontrol işletim sistemine verilir. İşletim sistemi referans bitini her seferinde sağa kaydırır. 8 bitlik kaydırılmış bitler son 8 periyotluk zamanda sayfaların kullanılma durumlarını gösterir. Örneğin hiç kullanılmamış sayfanın bit değeri olacaktır

54 9.54 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ek Referans Biti Örnek U bitleri her sayfa için tutulmaktadır T zaman aralığı ile referans bitleri güncellenir Aşağıdaki referans dizisi için örnek verelim: 3, 2, 3, T, 8, 0, 3, T, 3, 0, 2, T, 6, 3, 4, 3 numaralı sayfa iki kez referans edildi, zaten ilk referansda 1 yapıldığı için ikinci referansın bir etkisi olmadı.

55 9.55 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ek Referans Biti Örnek İlk zaman aralığı sonunda U bitleri bir sağa kaydırılır (right shift) 3, 2, 3, T, 8, 0, 3, T, 3, 0, 2, T, 6, 3, 4,

56 9.56 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ek Referans Biti Örnek İkinci zaman aralığı sonunda U bitleri bir sağa kaydırılır (right shift) 3, 2, 3, T, 8, 0, 3, T, 3, 0, 2, T, 6, 3, 4,

57 9.57 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ek Referans Biti Örnek Üçüncü zaman aralığı sonunda U bitleri bir sağa kaydırılır (right shift) 3, 2, 3, T, 8, 0, 3, T, 3, 0, 2, T, 6, 3, 4,

58 9.58 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ek Referans Biti Örnek 4, 3, 2, 3, T, 8, 0, 3, T, 3, 0, 2, T, 6, 3, 4, Ek referans bitlerinin toplam tamsayı değeri en küçük olan ile yer değişikliği yapılır.

59 9.59 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İkinci Şans Algoritması Second chance Algorithm Bu algoritmada temel prensip FIFO yer değiştirme algoritmasındakinin aynısıdır. Sayfa seçildiğinde onun referans bitine bakılır. Referans biti 0 ise sayfa yer değiştirilme işlemine sokulur. Referans biti 1 ise sayfaya ikinci bir şans verilir referasn biti 0 yapılır ve bir sonraki FIFO sayfası seçilir. Sayfa ikinci bir şans aldığında ulaşma zamanı o anki zaman olarak değiştirilir. Need reference bit Clock replacement If page to be replaced (in clock order) has reference bit = 1 then:  set reference bit 0  leave page in memory  replace next page (in clock order), subject to same rules

60 9.60 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İkinci Şans Algoritması

61 9.61 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Counting Algorithms Sayfa yer değişmesinde kullanılabilecek başka algoritmalar da mevcuttur. Her sayfa için sayfa referansları bir sayaçta tutulabilir. Bu işlem yapıldığında şu durumlar ortaya çıkar: LFU (Least Frequently Used) Algoritması: En az kullanılan sayfa yer değişim algoritması (Least Frequently Used) en az sayaç değerine sahip sayfanın yer değişmesini gerektirir. MFU (Most Frequently Used) Algoritması:

62 9.62 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Allocation of Frames Her işlem minimum sayfaya ihtiyaç duyar. Example: IBM 370 – 6 pages to handle SS MOVE instruction: Komut 2 sayfa Nereden kısmı 2 sayfa Nereye kısmı 2 sayfa İki farklı dağıtım şekli vardır: Sabit Öncelikli

63 9.63 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sabit Dağıtım,Fixed Allocation Eşit Dağıtım:100 çerçeve ve 5 işlem var ise hepsine eşit şekilde çerçeve dağıtımı yapılır. (Her işleme 20 çerçeve) Orantılı Dağıtım– İşlemin büyüklüğüne göre dağıtım.10k ve 127k lık iki ayrı işlemin alacağı çeröeve sayıları aaşağıda hesaplanmıştır.

64 9.64 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Öncelikli Dağıtım,Priority Allocation Orantılı dağıtım şeklini büyüklüğe göre değil, öncelik değerine göre yapmaktır. Eğer Pi sayfa hatası oluşturur ise, Daha düşük öncelikli işlemin çerçevesi değişim için kullanılılabilir.

65 9.65 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Global ve Yerel Dağıtım (Allocation) Global Yerleştirme: İşlemler yerleşecekleri çerçevelerin seçimini bütün çerçeve kümesinden istediğini seçerek yapar. Bir işlem başka bir işlemin çerçevesini alabilir. Yerel Yerleştirme: Her işlem kendisi için ayrılmış olan çerçeve kümesinden bir çerçeve seçerek yerleşir.

66 9.66 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Thrashing İşlemler için yeterli çerçeve bulunmadığında, çok fazla sayfa isteği olmaktadır. Bu durumda bazı sayfalarla yer değiştirme işlemi yapılması gerekir.Bu durumun çeşitli olumsuz etkileri mevcuttur: Düşük CPU yararı- low CPU utilization İşletim sistemi çoklu program seviyesini artırması gerektiğini zanneder Sisteme başka işlemler dahil olur. Thrashing  İşlemin sürekli swap out-swap in yapması Thrashing  İşlemin sürekli swap out-swap in yapması a process is busy swapping pages in and out

67 9.67 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Thrashing  Buradan da görüldüğü gibi mikroişlemci performansı, çokprogramlılık arttıkça artmakta, fakat maksimum performansına eriştikten sonra çokprogramlılık arttıkça mikroişlemci performansı birden düşmektedir.  Bu noktada mikroişlemci performansını artırmak için çok programlılık azaltılmalıdır.

68 9.68 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Thrashing Mikroişlemci performansı düşük olduğunda yeni işlem sisteme eklenerek çokprogramlılık özellliği artırılmaya çalışılır. Sistemde yeterli sayfa olmadığında, sayfa isteği artacaktır. Mikroişlemci programlayıcısı mikroişlemcinin performansının düştüğünü fark ederek, çokprogramlılık özelliğini artırmaya çalışır. Yeni gelen işlem de bir sayfaya yerleşmeye çalışır ve sayfalandırılmak üzere bekleyen işlem kuyruğu uzar. Her yeni sayfa hatası, başka bir sayfa hatasına neden olur.

69 9.69 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Çalışma Kümesi Modeli Working-Set Model Bu model çalışma kümesini tanımlamak için  değişkenini kullanmaktadır. Buradaki yaklaşım en yakın zamanda kullanılan  sayfa referansını kontrol etmektedir. En yakın zamanda olan  sayfa referansı çalışma kümesini oluşturmaktadır. Eğer sayfa aktif olarak kullanımdaysa çalışma kümesine dahil olacaktır. Kullanılmayan sayfa çalışma kümesinden düşecektir.

70 9.70 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Çalışma Kümesi Modeli Working-Set Model   working-set window  a fixed number of page references Example: 10,000 instruction WSS i (working set of Process P i ) = total number of pages referenced in the most recent  (varies in time) if  too small will not encompass entire locality if  too large will encompass several localities if  =   will encompass entire program D =  WSS i  total demand frames if D > m  Thrashing Policy if D > m, then suspend one of the processes

71 9.71 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Çalışma Kümesi Modeli Working-Set Model

72 9.72 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts 72 Working Set-Thrashing Working Set-Thrashing Thrashing olayını engellemek için, işleme ihtiyacı olduğu kadar çerçeve temin etmek gerekir İşletim sistemi her prosesi izler ve onların working set ölçülerine göre gereken çerçeveleri tahsis eder. Eğer yeterli boş çerçeve var ise, yeni bir proses başlatabilir. Eğer working setin toplam boyu artarsa ve yeterli çerçeve sayısını aşarsa işletim sistemi prosesi askıya alabilir. Prosese ait sayfalar, yeterli yer olduğunda geri yüklenmek üzere swap out edilir.

73 9.73 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Keeping Track of the Working Set Approximate with interval timer + a reference bit Example:  = 10,000 Timer interrupts after every 5000 time units Keep in memory 2 bits for each page Whenever a timer interrupts copy and sets the values of all reference bits to 0 If one of the bits in memory = 1  page in working set Why is this not completely accurate? Improvement = 10 bits and interrupt every 1000 time units

74 9.74 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa Hatası Sıklığı, Page-Fault Frequency Scheme Establish “acceptable” page-fault rate If actual rate too low, process loses frame If actual rate too high, process gains frame

75 9.75 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayfa Hatası Sıklığı, Page-Fault Frequency Scheme Sayfa hatası sıklığında önemli olan, trashing işlemini önlemektir. trashing, yüksek sayfa isteği olduğunda oluşur. Bu yüzden sayfa isteği oranını kontrol etmek gerekir. Bu oran çok büyükse, işlemler daha fazla çerçeveye ihtiyaç duyuyor demektir. Sayfa isteği oranı çok küçükse, işlemin fazla çerçevesi var demektir. Sayfa isteği oranı üst limitin üzerine çıkarsa, işleme çerçeve verilir. Sayfa isteği oranı alt sınırın altına düşerse işlemden çerçeve kaldırılır. Böylece sayfa isteği oranı ölçülmüş ve kontrol yapılmış olur.

76 9.76 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Windows XP Uses demand paging with clustering. Clustering brings in pages surrounding the faulting page. Processes are assigned working set minimum and working set maximum Working set minimum is the minimum number of pages the process is guaranteed to have in memory A process may be assigned as many pages up to its working set maximum When the amount of free memory in the system falls below a threshold, automatic working set trimming is performed to restore the amount of free memory Working set trimming removes pages from processes that have pages in excess of their working set minimum

77 End of Chapter 9

78 9.78 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Comparison of OPT with LRU Example: A process of 5 pages with an OS that fixes the resident set size to 3.

79 9.79 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts A. Frank - P. Weisberg Comparison of FIFO with LRU LRU recognizes that pages 2 and 5 are referenced more frequently than others but FIFO does not.

80 9.80 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts A. Frank - P. Weisberg The Clock Policy: Another Example

81 9.81 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts A. Frank - P. Weisberg Comparison of Clock with FIFO and LRU (1) Asterisk indicates that the corresponding use bit is set to 1. The arrow indicates the current position of the pointer. Note that the clock policy is adept at protecting frames 2 and 5 from replacement.

82 9.82 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts A. Frank - P. Weisberg Comparison of Clock with FIFO and LRU (2) Numerical experiments tend to show that performance of Clock is close to that of LRU. Experiments have been performed when the number of frames allocated to each process is fixed and when pages local to the page-fault process are considered for replacement: When few (6 to 8) frames are allocated per process, there is almost a factor of 2 of page faults between LRU and FIFO. This factor reduces close to 1 when several (more than 12) frames are allocated. (But then more main memory is needed to support the same level of multiprogramming).

83 9.83 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Fixed-Allocation, Local Page Replacement A. Frank - P. Weisberg


"Bölüm 9: Sanal Bellek. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bölüm 9: Sanal Bellek Chapter 9: Virtual Memory Background Sayfa." indir ppt

Benzer bir sunumlar


Google Reklamları