Sunum8 (Sanalbellek)

Download Report

Transcript Sunum8 (Sanalbellek)

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
Operating System Concepts
9.2
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.3
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.4
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.5
Silberschatz, Galvin and Gagne ©2005
Sanal belleği, fiziksel bellekten daha fazla olan bir
bellek düzenlemesi

Operating System Concepts
9.6
Silberschatz, Galvin and Gagne ©2005
Virtual-address Space
Operating System Concepts
9.7
Silberschatz, Galvin and Gagne ©2005
Shared Library Using Virtual Memory
Sanal Bellek Kullanılarak Paylaşılan
Kütüphaneler
Operating System Concepts
9.8
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.9
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.10
Silberschatz, Galvin and Gagne ©2005
Sayfalandırılmış belleğin disk alanına transfer edilmesi
Operating System Concepts
9.11
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.12
Silberschatz, Galvin and Gagne ©2005
Valid-Invalid Bit

With each page table entry a valid–invalid bit is associated

Initially valid–invalid but is set to 0 on all entries

Example of a page table snapshot:
(1  in-memory, 0  not-in-memory)
Frame #
valid-invalid bit
1
1
1
1
0

0
0
page table

During address translation, if valid–invalid bit in page table entry is 0
 page fault
Operating System Concepts
9.13
Silberschatz, Galvin and Gagne ©2005
Bazı Sayfaları Ana Bellekte Olmayan Sayfa Tablosu
Operating System Concepts
9.14
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.15
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.16
Silberschatz, Galvin and Gagne ©2005
Sayfa Hatasında Yapılan İşlemler
Operating System Concepts
9.17
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.18
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.19
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.20
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.21
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.22
Silberschatz, Galvin and Gagne ©2005
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)
Operating System Concepts
9.23
Silberschatz, Galvin and Gagne ©2005
…
 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!

24
Operating System Concepts
9.24
Silberschatz, Galvin and Gagne ©2005
İş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)
Operating System Concepts
9.25
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.26
Silberschatz, Galvin and Gagne ©2005
Copy-on-Write
Operating System Concepts
9.27
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.28
Silberschatz, Galvin and Gagne ©2005
Need For Page Replacement
Operating System Concepts
9.29
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.30
Silberschatz, Galvin and Gagne ©2005
Sayfa yer değişimi
Operating System Concepts
9.31
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.32
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.33
Silberschatz, Galvin and Gagne ©2005
Çerçeve Sayısı ve Sayfa Hatası Grafiği
Operating System Concepts
9.34
Silberschatz, Galvin and Gagne ©2005
İlk Gelen İlk Çıkar
First-In-First-Out (FIFO) Algorithması

Referasn Dizisi: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5



4 frames
z
1
1
4
5
2
2
1
3
3
3
2
4
1
1
5
4
2
2
1
5
3
3
2
4
4
3
9 page faults
10 page faults
FIFO Replacement – Belady’s Anomaly

Daha fazla çerçeve Daha fazla sayfa hatasıs
Operating System Concepts
9.35
Silberschatz, Galvin and Gagne ©2005
FIFO Page Replacement
Operating System Concepts
9.36
Silberschatz, Galvin and Gagne ©2005
FIFO Illustrating Belady’s Anomaly
Operating System Concepts
9.37
Silberschatz, Galvin and Gagne ©2005
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
1
4
2
6 page faults
3
4
5
 How do you know this?
 Used for measuring how well your algorithm performs
Operating System Concepts
9.38
Silberschatz, Galvin and Gagne ©2005
 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.
Operating System Concepts
9.39
Silberschatz, Galvin and Gagne ©2005
Optimal Page Replacement
Operating System Concepts
9.40
Silberschatz, Galvin and Gagne ©2005
En Son Kullanılan,
Least Recently Used (LRU) Algorithm
 Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1
5
2
3
5
4
3
4
 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
Operating System Concepts
9.41
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.42
Silberschatz, Galvin and Gagne ©2005
LRU Page Replacement
Operating System Concepts
9.43
Silberschatz, Galvin and Gagne ©2005
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 1 3 5 4 3 2 6 4 3 5 2 1 4 5 6
Operating System Concepts
9.44
Silberschatz, Galvin and Gagne ©2005
FIFO ÇÖZÜM
1 4 1
1 1 1 1
4 4 4
3
Operating System Concepts
3 5 4 3 2 6 4 3 5 2 1 4 5 6
5 5 4 4 4 2 2 2 5 5
5
4
2 2 2 3 3 3 1 1 1 6
3
3 6 6 6 5 5 5 4 4 4
9.45
Silberschatz, Galvin and Gagne ©2005
OPTIMAL ÇÖZÜM
1 4 1 3 5 4 3 2 6 4 3 5 2 1 4 5 6
1 1 1 1 5
4 4 4 4
3 3
2 6
4 4
3 3
6 2 1
4 4 4
5 5 5
1
6
5
Referans dizisinin 1,5,6 ile devam ettiği
varsayıldığında çözüm
Operating System Concepts
9.46
Silberschatz, Galvin and Gagne ©2005
LRU Çözüm
1 4 1 3 5 4 3 2 6 4 3 5 2 1 4 5 6
1 1
4
Operating System Concepts
9.47
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.48
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.49
Silberschatz, Galvin and Gagne ©2005
 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.
Operating System Concepts
9.50
Silberschatz, Galvin and Gagne ©2005
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 0
4 7 0
4 7
4
Operating System Concepts
9.51
7
7
0
4
1
1
7
0
4
0
0
1
7
4
1
1
0
7
4
2
2
1
0
7
4
1
1
2
0
7
4
2
2
1
0
7
4
7
7
2
1
0
4
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.52
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.53
Silberschatz, Galvin and Gagne ©2005
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ı.
Operating System Concepts
9.54
Silberschatz, Galvin and Gagne ©2005
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,
Operating System Concepts
9.55
Silberschatz, Galvin and Gagne ©2005
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,
Operating System Concepts
9.56
Silberschatz, Galvin and Gagne ©2005
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,
Operating System Concepts
9.57
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.58
Silberschatz, Galvin and Gagne ©2005
İ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

Operating System Concepts
9.59
Silberschatz, Galvin and Gagne ©2005
İkinci Şans Algoritması
http://cs.uttyler.edu/Faculty/Rainwater/COSC3355/Animations/secondchance.htm
Operating System Concepts
9.60
Silberschatz, Galvin and Gagne ©2005
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ı:
Operating System Concepts
9.61
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.62
Silberschatz, Galvin and Gagne ©2005
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.
s i  size of process
S 
s
pi
i
m  total number
a i  allocation
of frames
for p i 
si
m
S
m  64
s i  10
s 2  127
a1 
a2 
Operating System Concepts
9.63
10
137
127
137
 64  5
 64  59
Silberschatz, Galvin and Gagne ©2005
Ö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.
Operating System Concepts
9.64
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.65
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.66
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.67
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.68
Silberschatz, Galvin and Gagne ©2005
Ç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.
Operating System Concepts
9.69
Silberschatz, Galvin and Gagne ©2005
Ç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
Operating System Concepts
9.70
Silberschatz, Galvin and Gagne ©2005
Çalışma Kümesi Modeli
Working-Set Model
Operating System Concepts
9.71
Silberschatz, Galvin and Gagne ©2005
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.
72
Operating System Concepts
9.72
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.73
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.74
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.75
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.76
Silberschatz, Galvin and Gagne ©2005
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.
Operating System Concepts
9.78
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts
9.79
Silberschatz, Galvin and Gagne ©2005
The Clock Policy: Another Example
A. Frank - P. Weisberg
Operating System Concepts
9.80
Silberschatz, Galvin and Gagne ©2005
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
A. Frank - P. Weisberg
and 5 from replacement.
9.81
Operating System Concepts
Silberschatz, Galvin and Gagne ©2005
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
A. Frank - P. Weisberg
multiprogramming).

Operating System Concepts
9.82
Silberschatz, Galvin and Gagne ©2005
Fixed-Allocation, Local Page
Replacement
A. Frank - P. Weisberg
Operating System Concepts
9.83
Silberschatz, Galvin and Gagne ©2005