Bölüm 9: Sanal Bellek
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
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.
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.
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.
Sanal belleği, fiziksel bellekten daha fazla olan bir bellek düzenlemesi
Virtual-address Space
Shared Library Using Virtual Memory Sanal Bellek Kullanılarak Paylaşılan Kütüphaneler
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.
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
Sayfalandırılmış belleğin disk alanına transfer edilmesi
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
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 1 1 1 1 page table
Bazı Sayfaları Ana Bellekte Olmayan Sayfa Tablosu
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
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.
Sayfa Hatasında Yapılan İşlemler
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.
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.
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.
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<P<1 aralığında olacaktır. P’nin 0’a yakın olması istenir, böylece hata olma ihtimali az olacaktır. Bu durumda erişim zamanı şöyle olur: Erişim zamanı= (1-P) * bellek erişimi + P * sayfa hatası zamanı’dır. Erişim zamanını hesaplamak için, sayfa hatası olduğunda ne kadar zaman harcandığını bilmek gerekir. Örnek: Memory access time: 200 nanoseconds Average page-fault service time:8 miliseconds EAT= (1-p)x200ns+px8ms = 200ns + p x 7,999,800 ns 1000 de 1 sayfa hatası oluştuğunda Erişim zamanı=8.2 mikrosaniye
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
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)
… Diske gitmek bellek erişim performansından ödün vermek anlamına gelecektir. 1000 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 10-6 This is about 1 page fault in 400000!
İş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)
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
Copy-on-Write
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.
Need For Page Replacement
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.
Sayfa yer değişimi
Sayfa yer değişimi Diskte istenilen sayfanın yerini bul 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 İstenilen sayfayı yeni çerçeveye oku, Sayfa ve çerçeve tablolarını güncelle. İşleme tekrar başla
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.
Çerçeve Sayısı ve Sayfa Hatası Grafiği
İ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 1 1 4 5 2 2 1 3 9 page faults 3 3 2 4 1 1 5 4 2 2 1 5 10 page faults 3 3 2 4 4 3
FIFO Page Replacement
FIFO Illustrating Belady’s Anomaly
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 1 4 2 6 page faults 3 4 5
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.
Optimal Page Replacement
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 1 5 2 3 5 4 4 3
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.
LRU Page Replacement
Aşağıda verilen referans dizisi için FIFO, OPTIMAL VE LRU yöntemlerine göre kaç sayfa hatası oluştuğunu bulunuz. 1 4 3 5 2 6
FIFO ÇÖZÜM 1 4 3 5 2 6 1 4 3
OPTIMAL ÇÖZÜM 1 4 3 5 2 6 1 4 Referans dizisinin 1,5,6 ile devam ettiği varsayıldığında çözüm
LRU Çözüm 1 4 3 5 2 6 1 4
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.
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.
Yığın: Diğer bir yöntem ise sayfa numaralarının yığınını tutmaktır 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.
En Yakın Sayfa Referansını Bulmak için Yığın Kullanılması Use Of A Stack to Record The Most Recent Page References 4 7 1 2
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.
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 00000000 olacaktır
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ı.
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,
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,
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,
Ek Referans Biti Örnek 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.
İ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
İkinci Şans Algoritması http://cs.uttyler.edu/Faculty/Rainwater/COSC3355/Animations/secondchance.htm
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ı:
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
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.
Ö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.
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.
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ı a process is busy swapping pages in and out
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.
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.
Ç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.
Çalışma Kümesi Modeli Working-Set Model working-set window a fixed number of page references Example: 10,000 instruction WSSi (working set of Process Pi) = 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 = WSSi total demand frames if D > m Thrashing Policy if D > m, then suspend one of the processes
Çalışma Kümesi Modeli Working-Set Model
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.
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
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
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.
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
End of Chapter 9
Comparison of OPT with LRU Example: A process of 5 pages with an OS that fixes the resident set size to 3.
Comparison of FIFO with LRU LRU recognizes that pages 2 and 5 are referenced more frequently than others but FIFO does not. A. Frank - P. Weisberg
The Clock Policy: Another Example 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. 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). A. Frank - P. Weisberg
Fixed-Allocation, Local Page Replacement A. Frank - P. Weisberg