Download Sunum7(Anabellek)

Document related concepts
no text concepts found
Transcript
Bölüm 7: Ana Bellek
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009
Bellek Yönetimi
 Background
 Swapping
 Contiguous Memory Allocation
 Paging
 Structure of the Page Table
 Segmentation
 Example: The Intel Pentium
Operating System Concepts – 8th Edition
8.2
Silberschatz, Galvin and Gagne ©2009
Geçmiş Bilgiler
 Program çalışmak için (run) diskten Belleğe getirilmeli ve bir işlem
haline gelmelidir
 Main memory ve registers CPU nun doğrudan erişebildiği alanlardır.
 Bellek birimi: a stream of addresses + read requests, or address +
data and write requests
 Register lara CPU nun bir saat çevriminde ulaşması mümkündür.
 Ana belleğe erişim ise birçok çevrim gerektirir
 Cache anabellekden hızlı CPU registerslarından yavaş erişim
sağlar.
 Bellek koruma işlemlerin doğru çalışmasını sağlamak için gereklidir
Operating System Concepts – 8th Edition
8.3
Silberschatz, Galvin and Gagne ©2009
Taban ve Limit Kaydediciler (Base and Limit Registers)
 base and limit registerlar işlemlerin mantıksal adres alanını
tanımlar.
Operating System Concepts – 8th Edition
8.4
Silberschatz, Galvin and Gagne ©2009
Bellek Yönetimi
Operating System Concepts – 8th Edition
8.5
Silberschatz, Galvin and Gagne ©2009
Base and Limit Registerlar ile Donanım Adres Koruması
Operating System Concepts – 8th Edition
8.6
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
8.7
Silberschatz, Galvin and Gagne ©2009
Mantıksal Fiziksel Adres
Operating System Concepts – 8th Edition
8.8
Silberschatz, Galvin and Gagne ©2009
Adres Bağlama (Address Binding)
 Program diskte sabit olarak tutulur, programın yürütülebilmesi için belleğe
getirilmesi ve işlemin içine yerleştirilmesi gerekmektedir.
 Program, bellek yönetimine göre disk ile bellek arasında taşınır

 Normal durumda kuyruktan bir işlem seçilip belleğe yüklenir ve yürütülür.
İşlem görevini yerine getirdikten sonra, bellekteki yerinin boşaldığı
sisteme bildirilir.

 Birçok sistem kullanıcı işlemlerini fiziksel belleğin herhangi bir yerine
kabul edebilirler

Operating System Concepts – 8th Edition
8.9
Silberschatz, Galvin and Gagne ©2009

Program çalışırken, diske gönderilebilir ve tekrar bellekte başka bir alana
erişebilir. (relocated)

Kodda yer alan bellek referanslarının fiziksel adrese dönüştürülmesi
gerekmektedir.
Operating System Concepts – 8th Edition
8.10
Silberschatz, Galvin and Gagne ©2009
Kuşbakışı Bellek İşlemleri
Sembolik İsimler
Mantıksal Adres
Binding/Bağlama
Fiziksel Adres
Fiziksel Bellek birçok işlem
tarafından kullanılmaktadır
Operating System Concepts – 8th Edition
8.11
Relocation
Allocation
Paging
Segmentation
Silberschatz, Galvin and Gagne ©2009
Programlama Adımları
static
library
C source
C source
compiler
compiler
object
code
object
code
linker
dynamic
library
executable
test1.c, test2.c
gcc –c test1.c; gcc –c test2.c
mylib, test1.o, test2.o
gcc –o test test.o test2.o –lmylib -lm
test
loader
./test
memory
image
test, math library, standard C libraries
Operating System Concepts – 8th Edition
8.12
Silberschatz, Galvin and Gagne ©2009
Programlama Adımları
 Compiler

Kaynak kod object file haline getirilir

relocatable logical memory addresses üretir

Fiziksel Bellek adresi bilinlez
 Linker

Birden fazla nesne dosyaları disk üzerinde tek bir program için linkler
 Loader

Loader, bir işletim sisteminin bir yardımcı programdır.

Programı Fiziksel belleğe yükler

Mantıksal bellek adresini Fiziksel adrese çevirir
Operating System Concepts – 8th Edition
8.13
Silberschatz, Galvin and Gagne ©2009
Bellek Adresleri Oluşturma
DİSKTE
BELLEKTE
1000 Library
routines
1100 P:
Prog P
P:
...
...
...
...
...
foo()
push ...
push ...
push ...
push ...
...
jmp _foo
jmp 75
jmp 175
jmp 1175
...
...
...
...
foo: ...
Compilation
Operating System Concepts – 8th Edition
0 P:
0 Library
routines
100 P:
75
foo: ...
175
Linking
8.14
foo: ...
1175
foo: ...
Loading
Silberschatz,
14 Galvin and Gagne ©2009
Bellek Adresleri Oluşturma
 Address representation

Source program: symbolic (such as count)

After compiling: re-locatable address


After linkage editor, loader or run-time referring: absolute address

p1
14 bytes from the beginning of this module
Physical memory address 2000
0
int I;
goto
p1;
Symbolic Address
2000
2250
250
Re-locatable Address
Absolute Address
(Physical Memory)
15
Operating System Concepts – 8th Edition
8.15
Silberschatz, Galvin and Gagne ©2009
Adres Bağlama (Address Binding)

Kullanıcı programları yürütülmeden önce birçok aşamadan geçer. Bu aşamalarda
adresler farklı yollarla belirlenmektedir.

Bir program hayatının farklı dönemlerinde farklı şekillerde temsil adreslerine sahiptir

(sembolik, mantıksal, fiziksel gibi)

Her adres bağlama bir adresi diğerine map eder. (dönüştürür)
Operating System Concepts – 8th Edition
8.16
Silberschatz, Galvin and Gagne ©2009
Adres Bağlama (Address Binding)
 Komut ve verilerin bellek adreslerine bind işlemi üç farklı aşamada
olmaktadır:
 Yorumlama Zamanı, Compile time : İşlemin belleğin neresine
yerleştirileceği biliniyorsa mutlak kod oluşturulana kadar geçen
süre yorumlama zamanı olarak adlandırılır. Eğer işlemin bellekteki
yeri değişirse, kodu tekrar yorumlamak gerekmektedir.

 Yükleme Zamanı, Load time : Yorumlama süresince işlemin
nereye yerleştirileceği bilinmiyorsa yorumlayıcı işlemin tekrar
yerleştirilebilmesi için bir kod oluşturur. Bu durumda son binding
işlemi yükleme zamanı sona erinceye kadar ertelenir.

 Yürütme Zamanı, Execution time: : İşlem yürütülmesi sırasında,
bir bellek bölgesinden, başka bir bellek bölgesine taşınabilir. Bu
durumda binding , yürütüm zamanı doluncaya kadar ertelenir.
th Edition
Need– 8hardware
Operating System 
Concepts
support for address maps8.17
(e.g., base and limit registers)
Silberschatz, Galvin and Gagne ©2009
Yorumlama Zamanında Binding,
Fiziksel Bellek Adresi
(Physical Memory Addresses)
Sembolik Adres
1024
PROGRAM
Absolute Addresses
(Physical Memory Addresses)
1024
JUMP 1424
JUMP i
JUMP 1424
1424
i
LOAD j
1424
LOAD 2224
Compile
Link/Load
LOAD 2224
DATA
2224
j
2224
Absolute Load Module
Kaynak Kod
Process Image (Part)
18
The CPU generates the absolute addresses
Operating System Concepts – 8th Edition
8.18
Silberschatz, Galvin and Gagne ©2009
Yükleme Zamanında Binding
Relative (Relocatable)
Addresses
Symbolic
Addresses
Absolute Addresses
(Physical Memory Addresses)
0
PROGRAM
1024
JUMP 400
JUMP i
JUMP 1424
400
i
LOAD j
1424
LOAD 1200
Compile
LOAD 2224
Link/Load
DATA
1200
j
2224
Relative Load Module
Source Code
Process Image (Part)
19
Operating System Concepts – 8th Edition
8.19
Silberschatz, Galvin and Gagne ©2009
Yürütüm Zamanı

Execution time: Binding delayed
until run time


The process can be moved during
its execution from one memory
segment to another
The CPU generates the relative
(virtual) addresses

Need hardware support for address
maps (e.g., base and limit registers)

Most general-purpose OS use this
method
–
Swapping, Paging,
Segmentation
Relative (Relocatable)
Addresses
0
JUMP 400
400
LOAD 1200
1200
MAX =2000
20
Operating System Concepts – 8th Edition
8.20
Silberschatz, Galvin and Gagne ©2009
Mantıksal ve Fiziksel Adres

Mikroişlemci tarafından yaratılan adresler mantıksal adres olarak adlandırılır.

Bellek ünitelerinin gördüğü adreslere ise fiziksel adres denilmektedir. Program
tarafından üretilen mantıksal adreslerin fiziksel adreslere çevrilmesi gerekmektedir.

Bellek yönetim ünitesi (memory-management unit, MMU) sanal adresden fiziksel
adrese dönüşümü yapan bir donanım aygıtıdır.

Adres işlemlerinde taban kayıt edicisi görevini yerine getiren “yerleştirme kayıt edicisi”
kullanılmaktadır. Yerleştirme kayıt edicisindeki değer kullanıcı programları tarafından
üretilen her adrese eklenir.

Logical address space is the set of all logical addresses generated by a program

Physical address space is the set of all physical addresses generated by a program
Operating System Concepts – 8th Edition
8.21
Silberschatz, Galvin and Gagne ©2009
Bellek Yönetim Ünitesi
Memory-Management Unit (MMU)

Sanal adresden fiziksel adrese dönüşümü yapan bir donanım aygıtıdır.

Bu bölümde ele alınacak birçok metot bulunmaktadır.

Adres işlemlerinde taban kayıt edicisi görevini yerine getiren “relocation register,
yerleştirme kayıt edicisi” kullanılmaktadır. relocation register daki değer kullanıcı
programları tarafından üretilen her adrese eklenir. Taban değeri 14.000 ve kullanıcı
programları da 0 adresine konumlandıysa adres 0+14.000=14.000 olacaktır.

Böylece kullanıcı programı mantıksal adresle işlem yapar ve gerçek adresi hiç
görememektedir.
Operating System Concepts – 8th Edition
8.22
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
8.23
Silberschatz, Galvin and Gagne ©2009
Relocation register ile Dinamik yerleştime
14000 to
14000+MAX
Bellek Ünitesi
tarafından
görülen
Cpu tarafından
oluşturuldu
0 to MAX
Mantıksaldan
fiziksele map
24
Binding at execution time
(when reference is made)
Operating System Concepts – 8th Edition
8.24
Silberschatz, Galvin and Gagne ©2009
Dinamik Yükleme

Dinamik yüklemede, bir rutin çağrılana kadar belleğe yüklenmez, tekrar
yüklenebilecek durumda diskte tutulur.

Daha iyi bellek-alanı kullanımı; kullanılmayan rutin yüklenmeyecek

Işletim sisteminden özel destek gerekli değildir
Program tasarımı ile uygulanır
Operating System Concepts – 8th Edition
8.25
Silberschatz, Galvin and Gagne ©2009
Dinamik Linking
 Statik linking – Yükleyici tarafından sistem kütüphaneleri ve program
kodu birleştirilerek binary program oluşturulur.
 Dynamic linking –linking işlemi yürütüm zamanına kadar
ertelenir
 Her library rutinin referansında stub (Small piece of code)
kullanılarak, library rutinin yüklenmesi sağlanır
 İşletim sistemi rutinin işlemin bellek alanında olup olmadığını kontrol
eder.

Eğer adresinde yoksa ekler.
 Dinamik linking özellikle library ler için uygundur.
 Sistem paylaşılan library olarak da bilinir.
Operating System Concepts – 8th Edition
8.26
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
8.27
Silberschatz, Galvin and Gagne ©2009
Takaslama(Swapping)

Bir işlemin yürütülmesi için bellekte yer alması gerekir. Fakat, anabellekte
yeterli alan olmadığında, bir işlem geçici olarak yedekleme ünitelerine
gönderilip, daha sonra tekrar belleğe getirilebilir.
Işlemlerin toplam fiziksel bellek alanı, fiziksel belleği aşabilir
 Takaslama: Yer değiştirmede işlemlerin öncelik durumları esas alınarak
planlama yapılabilir.

Eğer daha yüksek önceliğe sahip bir işlem sisteme gelirse bellek yöneticisi
düşük önceliğe sahip işlemi yedekleme ünitesine gönderip, yeni gelen işlemin
uygulanmasını sağlayabilmektedir.
 Yüksek öncelikli işlem tamamlandığında gönderilen işlem tekrar belleğe
yüklenerek yürütülmesi sağlanabilir.


.
Operating System Concepts – 8th Edition
8.28
Silberschatz, Galvin and Gagne ©2009
Takaslama(Swapping)
Yer değiştirme işleminin toplam süresi, yer değiştirme işlemin de kullanılan bellek
alanı ile doğru orantılıdır. Yer değiştirmede kullanılan bellek alanı arttıkça, yer
değiştirmenin süresi de artmaktadır.
 Yer değiştirmenin değişik versiyonları Linux ,LUNIX, Windows gibi birçok sistemde
kullanılmaktadır.


Takaslama devre dışı bırakılabilir

Eğer kullanılan bellek alanı belli bir eşik değerinin üzerinde ise başlatılabilir.

Bellek istekleri belli bir eşik değerinin altında kalırsa tekrar devre dışı kalır
Operating System Concepts – 8th Edition
8.29
Silberschatz, Galvin and Gagne ©2009
Takaslama
Operating System Concepts – 8th Edition
8.30
Silberschatz, Galvin and Gagne ©2009
Takaslama Zamanı

CPU da bir sonraki yürütülecek işlemler bellekte değil ise, hedef işlemin takaslama ile getirilmesi
gerekir.

İçerik Değişimi için geçen zaman fazla olabilmektedir.

100MB lık bir işlem 50MB/sec lık transfer hızıyla sabir diske aktarıldığında:

Disk gecikmesi: 8 ms

Swap out zamanı: 2008 ms (2 saniye+8 ms)

Aynı büyüklükte bir işlemin swap in zamanı da buna eklendiğinde,

Toplam içerik değişimi için geçen zaman: 4016ms (> 4 seconds)

İşlemlerin gerçekte ne kadar bellek kullandıkları bilinirse takaslama azaltılabilir.

Sistem çağrıları ile bellek istekleri ve bellek bırakma olayı gerçekleştirilir.

System calls to inform OS of memory use via request memory and release memory
Operating System Concepts – 8th Edition
8.31
Silberschatz, Galvin and Gagne ©2009
Bellek Yönetim Yöntemleri
 Tek ve Bitisken Bellek Yönetimi (Contiguous Allocation)
 Değismez bölümlü bellek yönetimi

Değisken bölümlü bellek yönetimi
 Sayfalı bellek yönetimi (Paging)

Kesimli bellek yönetimi (Segmantation)
Operating System Concepts – 8th Edition
8.32
Silberschatz, Galvin and Gagne ©2009
Tek ve Bitisken Bellek Yönetimi
(Contiguous Allocation)


Ana bellek, isletim sisteminin yüklendiği kesim dısında tümüyle tek bir ise
atanır.
Bundan dolayı, sadece tek is düzeni desteklenir.

Bellek yönetiminin en önemli görevi, isletim sisteminin, kullanıcı programı tarafından
bozulmasını önlemektir.

İsletim sistemi, ana belleğin alt (adres) kesimine yüklenir. Limit register, isletim
sistemine iliskin bellek alanının bittiği büyüklüğünü relocation register ise
kullanılabilecek en küçük fiziksel adresi içerir.

Bellek yönetim ünitesi (MMU) relocation kayıt edicisindeki değeri ekleyerek dinamikmantıksal adresler oluşturur.

Kullanıcı programının isletimi boyunca, Limit register çıkısları + relocation register
adresi , erisilen adreslerle sürekli karsılastırılır.

Eğer kullanıcı programı, isletim sisteminin bellek alanına erisirse, program
sonlandırılır.

Bu denetim düzeneğine bellek koruma düzeneği denir.
Operating System Concepts – 8th Edition
8.33
Silberschatz, Galvin and Gagne ©2009
Limit ve Relocation Register
Operating System Concepts – 8th Edition
8.34
Silberschatz, Galvin and Gagne ©2009
Değismez Bölümlü(Fixed Sized Partitions) Bellek Yönetimi
İşletim sistemi
a) kullanılan ve boş olan bölümlerin kaydını tutar.)
IBM OS/360 da kullanıldı, artık kullanılmıyor
OS
OS
OS
process 5
process 5
process 5
process 9
process 8
process 2
Operating System Concepts – 8th Edition
process 2
process 2
8.35
Silberschatz, Galvin and Gagne ©2009
Değişken Bölümlü(Variable Partition) Bellek Yönetimi
Operating System Concepts – 8th Edition
8.36
Silberschatz, Galvin and Gagne ©2009
Değişken Bölümlü(Variable Partition) Bellek Yönetim
Operating System Concepts – 8th Edition
8.37
Silberschatz, Galvin and Gagne ©2009
Değişken Bölümlü(Variable Partition) Bellek Yönetimi
Operating System Concepts – 8th Edition
8.38
Silberschatz, Galvin and Gagne ©2009
Boş alan Seçimi

İşlemler belleğe yerleştikten sonra kalan boşlukların nasıl kullanılacağına karar verilmesi
gerekmektedir. Bu boşluklara işlemlerin en uygun şekilde yerleştirilmesi gerekir. Bunun çeşitli
yöntemleri mevcuttur:


Uygun ilk alanın ayrılması (First Fit): İlk bulunan yeterli büyüklükteki alan işlem için ayrılmaktadır.


En uygun alanın ayrılması (Best Fit): Bütün bellek alanı taranarak işlem için yeterli büyüklükteki en
küçük alanın ayrılması sağlanır. Böylece ayrılan alanın büyük bir kısmının kullanılması sağlanır.


En kötü alanın ayrılması (Worst Fit): Bütün bellek alanı taranarak işlem için en büyük bellek
boşluğunun kullanılması sağlanır. Bu durumda işlem için ayrılan bellek alanında kullanılmayan bellek
alanı fazla olacaktır.


En uygun alan ve en uygun alanın kullanılması hız ve sistem işleyişi bakımından en kötü alanın
ayrılmasına göre daha iyi sonuç vermektedir.
Operating System Concepts – 8th Edition
8.39
Silberschatz, Galvin and Gagne ©2009
Boş alan Seçimi
İşlem
Örneğin,
aşağıda
verilmiş işlemleri ve gerektirdikleri bellek alanlarını
Bellek
Süre
P1inceleyelim
600K
10
P2
P3
P4
P5
5
20
6
15
1000K
300K
700K
500K
Operating System Concepts – 8th Edition
8.40
Silberschatz, Galvin and Gagne ©2009
Parçalanma (Fragmentation)

Dışardan Bölümlendirme (External Fragmentation) Bellekte işlemin ihtiyacını karşılayacak
büyüklükte alan olduğu halde bu alanlar bir bütün halinde değilse dışardan bölümlendirme
oluşmaktadır.

Dışardan bölümlendirme çoğu zaman problem olmaktadır. Boş bellekler parça parça olduğundan
, boş bellekler verimli kullanılamamaktadır.

İçerden Bölümlendirme (Internal Fragmentation) – ayrılmış bellek alanı, ihtiyaç duyulan
bellek alanından daha fazla olduğunda oluşmaktadır
Operating System Concepts – 8th Edition
8.41
Silberschatz, Galvin and Gagne ©2009
Parçalanma (Fragmentation)

Dışardan bölümlendirme problemini çözmek için “sıkıştırma” yapılmaktadır.

Sıkıştırma işlemi bütün boş alanları tek bir boş alan haline getirmektedir. Örneğin aşağıdaki bellek
yapısına sahip bir sistemde 100K, 300K ve 260K’lık alanlar birleştirilerek toplam 600K’lık boş alan
oluşturulmuştur.

Sıkıştırma yapılabilecek ise en kolay yol bütün işlemleri bir yönde kaydırıp, boş bellek alanlarını
birleştirmektir

Yeniden yerleşim, dinamik ve yürütüm zamanında ise sıkıştırma yapılabilir.
Operating System Concepts – 8th Edition
8.42
Silberschatz, Galvin and Gagne ©2009
Sayfalı Bellek Yönetimi

Dışardan bölümlendirme işleminde boş alanlar bir bütün olmadığında, işlemi belleğe
yerleştirmek oldukça güç olmaktadır. Bu problemi çözmek için sayfalandırma tekniği
kullanılır.

Fiziksel bellek belirli bir büyüklükteki bloklara ayrılmıştır, bu bloklara çerçeve(frame) adı verilir.

Mantıksal bellek ise eşit büyüklükteki sayfa adı verilen bloklara ayrılmıştır.

Bir işlemin yapılması gerektiğinde onunla ilgili sayfa depolama ünitesinden belleğe yüklenir.

Depolama üniteleri de bellek çerçeveleri ile aynı büyüklüğe sahip bloklara ayrılmıştır. Sayfa
büyüklüğü donanım tarafından tanımlanır, 512 bayt ile 16 MB arasında olabilmektedir.

Sayfalandırma yönteminin kullanımı bir sonraki sayfada gösterilmektedir.

Mikroişlemci tarafından üretilen her adres bir sayfa numarası ve sayfa ofsetine sahiptir.

Sayfa numarası indeks olarak sayfa tablosunda kullanılır.

Sayfa tablosu her sayfa için fiziksel bellekteki taban adresini içerir.

Taban adresi , sayfa ofseti ile birleştirilerek fiziksel bellek adresi bulunur.
Operating System Concepts – 8th Edition
8.43
Silberschatz, Galvin and Gagne ©2009
Adres Çevrimi

İşlemcinin oluşturduğu adresler iki kısımdan oluşmaktadır:
Sayfa Numarası
p

Sayfa Ofseti
d
Burada p sayfa tablosundaki indeks, d ise sayfa içindeki yerleşimi(ofseti) temsil etmektedir.
Operating System Concepts – 8th Edition
8.44
Silberschatz, Galvin and Gagne ©2009
Sayfalı Bellek Yönetimi
Mantıksal Adres
Operating System Concepts – 8th Edition
Fiziksel Adres
8.45
Silberschatz, Galvin and Gagne ©2009
Fiziksel ve Mantıksal Belleğin Sayfalama Modeli
Operating System Concepts – 8th Edition
8.46
Silberschatz, Galvin and Gagne ©2009
Sayfalama Örneği
n=2 and m=4 32-byte memory and 4-byte pages
Operating System Concepts – 8th Edition
8.47
Silberschatz, Galvin and Gagne ©2009
Sayfalama Örneği
Operating System Concepts – 8th Edition
8.48
Silberschatz, Galvin and Gagne ©2009
Sayfalama Örneği
Operating System Concepts – 8th Edition
8.49
Silberschatz, Galvin and Gagne ©2009
Sayfalama Örneği
Operating System Concepts – 8th Edition
8.50
Silberschatz, Galvin and Gagne ©2009
Sayfalı Bellek Yönetimi

Sisteme yürütülmek üzere bir işlem geldiğinde işlemin büyüklüğü sayfada belirtilir. İşlemin her sayfası
bir çerçeveye ihtiyaç duyar. Eğer işlem “n” sayfa içeriyorsa bellekte en az “n” çerçeve bulunmalıdır.

İşlemin ilk sayfası ayrılmış çerçevelerden birisine yüklenirken, çerçeve numarası da sayfa tablosuna
yüklenir. Sayfalar bitinceye kadar bu işleme devem edilir.


İşletim sistemi fiziksel belleği yönettiği için; fiziksel bellekte kullanılan, ayrılan alanların miktarı, toplamı,
ve kaç çerçeve olduğu gibi bilgileri bilmelidir.

Bu tür bilgiler genelde çerçeve tablosunda tutulur. Ayrıca işletim sistemi kullanıcı işlemlerinin kullanıcı
alanında yapılıp yapılmadığını kontrol etmeli ve mantıksal adreslerden fiziksel adreslere dönüşümü
sağlamalıdır.
Operating System Concepts – 8th Edition
8.51
Silberschatz, Galvin and Gagne ©2009
Paging (Cont.)
 Calculating internal fragmentation

Page size = 2,048 bytes

Process size = 72,766 bytes

35 pages + 1,086 bytes

Internal fragmentation of 2,048 - 1,086 = 962 bytes

Worst case fragmentation = 1 frame – 1 byte

On average fragmentation = 1 / 2 frame size

So small frame sizes desirable?

But each page table entry takes memory to track

Page sizes growing over time

Solaris supports two page sizes – 8 KB and 4 MB
 Process view and physical memory now very different
 By implementation process can only access its own memory
Operating System Concepts – 8th Edition
8.52
Silberschatz, Galvin and Gagne ©2009
Boş Çerçeveler
Yerleşimden Sonra
Yerleşimden Önce
Operating System Concepts – 8th Edition
8.53
Silberschatz, Galvin and Gagne ©2009
Sayfa Tablosu Uygulaması

En basit donanım uygulamasında, sayfa tablosu bu işletim sistemi için ayrılan kayıt edicilerde
bulundurulur. Bu kayıt ediciler sayfa adres dönüşümünü hızlı yapabilmektedirler. Belleğe olacak her
erişim sayfalandırma haritasına göre yapılmalıdır. Sayfa tablosu kayıt edicilerini sadece işletim sistemi
değiştirebilir ver yükleyebilir.


Sayfa tablosu ana bellekte tutulur, sayfa tablosu taban kayıt edicisi (page table base register)
sayfa tablosunu belirtir. Sayfa tablosunu değiştirmek için bu kayıt ediciyi değiştirmek gerekir. Sayfa
tablosu uzunluk kayıt edicisi (page table length register) ise sayfa tablosunun uzunluğunu gösterir.

Her görüntü bellek erişiminde iki fiziksel bellek erişim olabilir:

– sayfa tablosunu getirmek için

– veriyi getirmek için

Bu problemin çözümünde sayfa tablosu kayıtlarını tutmak için hızlı bir bellek kullanılır:

– TLB - Translation Lookaside Buffer (64 to 1,024 entries)

En yakın zamanda kullanılmış olan sayfa tablosu kayıtlarını tutar

TLB miss oluşursa (sayfa numarası TLB de yoksa) page table'a gidilir.
Operating System Concepts – 8th Edition
8.54
Silberschatz, Galvin and Gagne ©2009
TLB ile Sayfalama
Operating System Concepts – 8th Edition
8.55
Silberschatz, Galvin and Gagne ©2009
Bellek Koruması

Bellek koruması sağlamak için her çerçevede tanımlanmış koruma bitleri yaratılmıştır.

Normalde bu bitler sayfa tablosunda bulunur. Koruma biti sayfanın yazılabilirliği, okunabilirliği ve
sadece okunabilirliği gibi özelliklerini belirler.

Belleğe gelen her referans sayfa tablosundan geçerek doğru çerçeveye ulaşır. Aynı zamanda fiziksel
adres belirlenerek, koruma biti kontrol edilir. Örneğin sadece okunabilir özelliği olan bir sayfaya
yazma işlemi yapılmak istenirse; donanım işletim sistemine bir hata mesajı yollar.


Sayfa tablosundaki her girişe bir bit daha eklenebilir, bunlar: valid-geçerli ve invalid-geçersiz
bitlerdir.

Bu bit geçerli durumda set edilirse bu bit ilgili sayfanın, işlemin mantıksal alanında
olduğunu ve geçerli bir sayfa olduğunu gösterir.

Bu bir geçersiz duruma geçirilirse bu sayfanın işlemin mantıksal alanında olmadığını
gösterir.
Operating System Concepts – 8th Edition
8.56
Silberschatz, Galvin and Gagne ©2009
Valid (v) /Invalid (i) Bit
Operating System Concepts – 8th Edition
8.57
Silberschatz, Galvin and Gagne ©2009
Paylaşılan Sayfalar
 Paylaşılan Kod

Metin editörü, windows sistemi, derleyici işlemleri arasında ortak bir sadece okunabilir kodun
kullanılmasıdır. (reentrant)

Tek bir adres aralığında çoklu iş parçacıklarının çalışması gibi.

İşlemler arası iletişim için de kullanışlıdır.

Reentrant kod yürütüm sırasında değişmez, iki veya daha fazla işlem aynı anda kodu yürütebilir.

Her işlemin yürütüm sırasında ayrı bir register ve veri saklama alanı bulunur.
Operating System Concepts – 8th Edition
8.58
Silberschatz, Galvin and Gagne ©2009
Paylaşılan Sayfalar
Operating System Concepts – 8th Edition
8.59
Silberschatz, Galvin and Gagne ©2009
Sayfa Tablosu Yapısı
 Hiyerarşik Sayfa Tablosu
 Tersine Çevrilmiş (Inverted) Sayfa Tablosu
Operating System Concepts – 8th Edition
8.60
Silberschatz, Galvin and Gagne ©2009
Hiyerarşik Sayfa Tablosu

Mantıksal Adres alanını çoklu sayfa tablolarına böler.

İki seviyeli sayfa tablosu olarak uygulanabilir.

Modern bilgisayar sistemleri çok büyük mantıksal adres alanlarını kapsamaktadır. (232’den 264’e kadar
) bu durumda sayfa tablosu da çok büyük olmaktadır. Örneğin, 32 bitlik mantıksal adres alanında,
sayfa büyüklüğü 4K (212 ) olarak alınırsa sayfa tablosu 232/212 = 1 milyon girişe sahip olacaktır.

Bu değer de çok büyük olduğu için, sayfa tablosunu bütün olarak ana bellekte tutmak yerine, sayfa
tablosunu parçalara ayırmak daha uygun olmaktadır.

Sayfa Tablosuna erişmek için Sayfa Tablosu kullanılması !

32 bitlik bir sistem 4K’lık sayfalara bölündüğünde mantıksal adresteki sayfa numaraları 20 bitlik ,
sayfa ofseti ise 12 bitlik olmaktadır. Biz sayfa tablosunu da sayfalandırdığımız için 20 bitlik sayfa
numarası da 10 bitlik sayfa numarası ve 10 bitlik sayfa ofseti olarak tekrar ikiye ayrılacaktır.

Burada p1 parçaladığımız sayfa tablosundaki indeksi, p2 ise sayfa tablosundaki yerleşimi temsil
etmektedir.
Operating System Concepts – 8th Edition
8.61
Silberschatz, Galvin and Gagne ©2009
İki seviyeli Sayfa Tablosu
Operating System Concepts – 8th Edition
8.62
Silberschatz, Galvin and Gagne ©2009
İki Seviyeli Sayfa-Örnek

Mantıksal Adres (o 32-bitlik sistemde with 1K sayfa büyüklüğü) aşağıdaki gibi bölünür :
 Sayfa numarası 22 bit (32-10=22)
 Sayfa ofseti 10 bit (1K=2 10)

Sayfa tablosu da sayfalandırılacağı için aşağıdaki gibi bir bölümlendirme yapılabilir:
 12 bit sayfa numarası
 10 bit sayfa ofseti

Mantıksal adres aşağıdaki gibi olur:
sayfa ofseti
Sayfa numarası


p1
p2
12
10
d
10
p1 dış sayfa tablosu için indeks ve p2 ise iç sayfa tablosu için yerleşimi içerir.
forward-mapped page table
Operating System Concepts – 8th Edition
8.63
Silberschatz, Galvin and Gagne ©2009
Adres Geçişi
Operating System Concepts – 8th Edition
8.64
Silberschatz, Galvin and Gagne ©2009
64-bit Logical Address Space
 Even two-level paging scheme not sufficient
 If page size is 4 KB (212)

Then page table has 252 entries

If two level scheme, inner page tables could be 210 4-byte entries

Address would look like
outer page inner page
p1
p2
42
10
page offset
d
12

Outer page table has 242 entries or 244 bytes

One solution is to add a 2nd outer page table

But in the following example the 2nd outer page table is still 234 bytes in size

And possibly 4 memory access to get to one physical memory location
Operating System Concepts – 8th Edition
8.65
Silberschatz, Galvin and Gagne ©2009
Üç seviyeli Sayfalama
Operating System Concepts – 8th Edition
8.66
Silberschatz, Galvin and Gagne ©2009
Tersine çevrilmiş (Inverted) Sayfa Tablosu


Tersine çevrilmiş sayfa tablosu her çerçeve (frame) için bir tek giriş içerir.
Her giriş gerçek bellekteki sayfa yerleşiminin sanal adresini ve bu sayfadaki işlemle ilgili bilgileri içerir.

Sistemde tek bir sayfa tablosu ve fiziksel bellekteki her sayfa için tek adres girişi vardır.

Her işlemin bir sayfa tablosu olması ve mantıksal sayfalar takip yerine, fiziksel sayfalar takip edilir.

Sistemdeki her sanal adres üç kısımdan oluşur:


<işlem-tanımlaması, sayfa numarası, ofset>


Adres girişi ilk olarak <işlem tanımlaması, sayfa numarası> için yapılır.

Eğer bellekte bu adres referansı kabul edilirse, tersine çevrilmiş adres tablosunda bu adrese bir karşılık
aranır. Eğer bu adresin karşılığını i olarak varsayarsak, <i, ofset> fiziksel adresi yaratılır.

Eğer <işlem tanımlaması, sayfa numarası> için bir karşılık bulunmazsa geçersiz bir adres tanımlaması
yapılmış olacaktır.

Bellek ihtiyacı azalır fakat arama süresi artar
Operating System Concepts – 8th Edition
8.67
Silberschatz, Galvin and Gagne ©2009
Tersine çevrilmiş (Inverted) Sayfa Tablosu
Operating System Concepts – 8th Edition
8.68
Silberschatz, Galvin and Gagne ©2009
Tersine çevrilmiş (Inverted) Sayfa Tablosu
Operating System Concepts – 8th Edition
8.69
Silberschatz, Galvin and Gagne ©2009
Segmentation

Kullanıcı, belleği değişken büyüklükteki bölümlerden oluşuyormuş gibi görmektedir ve bu görüş
bu yönetiminde de aynı şekilde olmaktadır.

Segmentasyon, kullanıcının bellek anlayışını destekleyen bir bellek yönetme şeklidir. Program
birçok parçanın (segmentin) birleşiminden oluşmaktadır. Segment mantıksal bir bütündür,
örneğin:

Ana program, prosedür, fonksiyon, lokal ve global değişkenler, yığın , sembol tablosu bu
bütünde yer alabilir. Her segmentin belli bir uzunluğu vardır

Her adres, iki bileşenden oluşur, bunlar: segment ve ofset adresleridir.

Mantıksal adres de iki kısımdan oluşmaktadır: <segment numarası, ofset>’dir.
Operating System Concepts – 8th Edition
8.70
Silberschatz, Galvin and Gagne ©2009
User’s View of a Program
Operating System Concepts – 8th Edition
8.71
Silberschatz, Galvin and Gagne ©2009
Segmentasyon için Mantıksal Görünüm
1
4
1
2
3
2
4
3
user space
Operating System Concepts – 8th Edition
physical memory space
8.72
Silberschatz, Galvin and Gagne ©2009
Segmentasyon Mimarisi
 Mantıksal Adres:
<segment-numarası, ofset>,
 Segment table – İki boyutlu fiziksel adrese dönüştürme işleminde
kullanılır
 maps two-dimensional physical addresses; each table entry has:



Base (Taban) Bellekte segmentin başlangıç adresini tutar
– contains the starting physical address where the segments reside in memory
limit – Segmentin uzunluğunu tutar specifies the length of the segment
 Segment-table base register (STBR) Segment tablosunun
bellekteki yerini gösterir
 points to the segment table’s location in memory
 Segment-table length register (STLR)Program tarafından
kullanılan segmentleri tutar.
Operating System Concepts – 8th Edition
8.73
Silberschatz, Galvin and Gagne ©2009
Segmentation Architecture (Cont.)
 Protection

With each entry in segment table associate:

validation bit = 0  illegal segment

read/write/execute privileges
 Protection bits associated with segments; code sharing occurs at
segment level
 Since segments vary in length, memory allocation is a dynamic
storage-allocation problem
 A segmentation example is shown in the following diagram
Operating System Concepts – 8th Edition
8.74
Silberschatz, Galvin and Gagne ©2009
Segmentation Hardware
Operating System Concepts – 8th Edition
8.75
Silberschatz, Galvin and Gagne ©2009
Example of Segmentation
Operating System Concepts – 8th Edition
8.76
Silberschatz, Galvin and Gagne ©2009
Example: The Intel Pentium
 Supports both segmentation and segmentation with paging

Each segment can be 4 GB

Up to 16 K segments per process

Divided into two partitions

First partition of up to 8 K segments are private to process (kept in local descriptor table LDT)

Second partition of up to 8K segments shared among all processes (kept in global descriptor
table GDT)
 CPU generates logical address

Given to segmentation unit


Which produces linear addresses
Linear address given to paging unit

Which generates physical address in main memory

Paging units form equivalent of MMU

Pages sizes can be 4 KB or 4 MB
Operating System Concepts – 8th Edition
8.77
Silberschatz, Galvin and Gagne ©2009
Logical to Physical Address
Translation in Pentium
Operating System Concepts – 8th Edition
8.78
Silberschatz, Galvin and Gagne ©2009
Intel Pentium Segmentation
Operating System Concepts – 8th Edition
8.79
Silberschatz, Galvin and Gagne ©2009
Pentium Paging Architecture
Operating System Concepts – 8th Edition
8.80
Silberschatz, Galvin and Gagne ©2009
Linear Address in Linux

Linux uses only 6 segments (kernel code, kernel data, user code, user data,
task-state segment (TSS), default LDT segment)

Linux only uses two of four possible modes – kernel and user

Uses a three-level paging strategy that works well for 32-bit and 64-bit systems

Linear address broken into four parts:

But the Pentium only supports 2-level paging?!
Operating System Concepts – 8th Edition
8.81
Silberschatz, Galvin and Gagne ©2009
Three-level Paging in Linux
Operating System Concepts – 8th Edition
8.82
Silberschatz, Galvin and Gagne ©2009
End of Chapter 7
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009