87
 BÖLÜM 9 Bellek Yönetimi

90_BOLUM9

Embed Size (px)

Citation preview

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 1/87

 

BÖLÜM 9

Bellek Yönetimi

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 2/87

 

Sevinç İlhan Omurca - OS - Bolum 9 2

İçerik 

Giriş 

 Adres Dönüşümleri 

Swapping Sürekli Yerleşim (Contiguous Allocation)

Sayfalama (Paging)

Bölümleme (Segmentation) Segmentation with Paging

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 3/87

 

Sevinç İlhan Omurca - OS - Bolum 9 3

Bellek-CPU

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 4/87

 

Sevinç İlhan Omurca - OS - Bolum 9 4

Giriş 

Programlar çalışabilmek için belleğe alınmalıdırlar.  Bellek Word/byte dizisidir. Cpu bu verileri, program counterın değerine göre bellekten alır ve

tekrar belleğe depolar.

Bellek işletim sistemi alanı ve çalışan proseslerin alanı için ayrılır. Çalışan proseslerin sayı ve özellikleri farklı olacağından bu alan

dinamik olarak yönetilir. Input queue  – Programın çalıştırılabilmesi için belleğe getirilmeyi

bekleyen diskteki proseslerdir. Kullanıcı programları çalıştırılmadan önce birtakım işlemlerden

geçerler.

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 5/87

 

Sevinç İlhan Omurca - OS - Bolum 9 5

Address Binding

Program disk üzerine çalıştırılabilir binary bir dosya içindebulunur.

İşletilen program belleğe yüklenir, talimatlarına ve veriadreslerine bellekten erişir.

OS, proses kontrol bloğunun, program kodunun ve yığınbaşlangıç adresini saklar. Proses çalıştırıldığında komutlar ve veriler bellekten okunur.  Sonuç olarak program bittiğini deklare eder ve hafızayı

kullanılabilir ilan ederek boşaltır. Sonraki program yüklenir ve

işletilir. Proses işletimi süresince disk ve bellek arasında yer değiştirir. 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 6/87

 

Sevinç İlhan Omurca - OS - Bolum 9 6

Kaynak kodlardaki adresler

semboliktir. Compiler sembolik adresleri

relocatable adresleredönüştürür. 

Linkage editor/loaderrelocatable adresleri mutlakadreslere dönüştürür. 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 7/87

Sevinç İlhan Omurca - OS - Bolum 9 7

Address Binding Belleğe yerleştirilen programların adres atamaları programlama, derleme, yükleme ve

çalışma zamanlarında gerçekleşir.  Program yazılırken tüm adres atamaları belirlenmiş ise programlama anında adres

atamaları yapılmış olur. Derleme anında adres ataması, programda bulunan sembolik adreslerin derleyici

tarafından fiziksel adrese dönüşümü ile sağlanır. Başlangıç adresi değiştiğinde programın yeniden derlenmesi gerekir. Yükleme zamanında adres ataması, derleyicinin ürettiği göreceli adreslerin, programın

yüklenmesi sırasında mutlak adrese çevrilmesi ile gerçekleşir. Başlangıç adresi değiştiğinde kodun sadece yeniden yüklenmesi gerekir. Çalışma  anında adres atamasında ise, yüklenen program hala göreceli adresleri

kullanmaktadır ve bu adresler işlemci donanımı tarafından mutlak adreslere dönüştürülür . Çalışma anında adres ataması, çalışma süresince bir bellek alanından diğerine taşınabilen 

prosesler için kullanışlıdır . Bu nedenle işletim sistemlerinde genelde bu yöntem tercih edilir.

Çalışma anında adres ataması yönteminde mantıksal adrese sanal adres de denir. Sanaladresten fiziksel adrese dönüşüm Bellek Yönetim Birimi(MMU) tarafından yapılır .

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 8/87

Sevinç İlhan Omurca - OS - Bolum 9 8

Mantıksal ve Fiziksel Adres 

CPU tarafından yaratılan adres, mantıksal adres olarak adlandırılır.

Belleğin bellek adres registerına yüklenebilen adresise fiziksel adres olarak adlandırılır. Bellek ünitesi

fiziksel adresler ile işlemektedir.  İşlemci sanal adresleri kullanır   Fiziksel bellek fiziksel adresleri kullanır.  Program tarafından yaratılmış olan tüm mantıksal

adreslerin kümesi mantıksal adres alanı olarakadlandırılır. Bu mantıksal adreslere karşılık gelen fiziksel

adreslerin kümesine ise fiziksel adres alanı denir. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 9/87

Sevinç İlhan Omurca - OS - Bolum 9 9

 Yükleme İşlemi 

Bir prosesin oluşturulması için, programınbelleğe yüklenerek proses görüntüsününoluşturulması gerekir.

Bu da, yükleyicinin yükleme modülünübelleğe yüklemesi ile başlar.

Yükleme işlemi için 3 yaklaşım vardır: 

Mutlak yükleme Yeniden yerleştirilebilir yükleme  Dinamik yükleme

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 10/87

Sevinç İlhan Omurca - OS - Bolum 9 10

Mutlak yükleme

Yükleme modülü bellekte her zaman aynıadres alanına yüklenir.

Bu nedenle yükleme modülünün tüm adreserişimleri mutlak adres olmalıdır.

 Adres atamasının programcı tarafından yadaderleme aşamasında gerçekleşmesi gerekir. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 11/87

Sevinç İlhan Omurca - OS - Bolum 9 11

 Yeniden yerleştirilebilir yükleme Yükleme aşamasında önce bellek adres atamalarının

gerçekleşmesi, yükleme modülü tarafından kullanılacak bellekalanının kısıtlanmasına sebep olmaktadır. 

Çok sayıda prosesin bellekte olduğunu düşündüğümüzdebelleğin bir kısmının yükleyiciye ayrılması dezavantajdır. 

Yükleme anında yükleyici modülün adresine karar verilmesibelleğin daha esnek ve verimli kullanılmasını sağlar.

Bunun için, derleyiciler mutlak adresler yerine programınbaşlangıcına göre göreceli adresler belirlerler. 

Başlangıçta yükleme modülüne “a” adresi verilir ve diğer tüm

bellek atamaları bu modülün başlangıcına göre yapılır. Tüm bellek adresleri göreceli olarak belirlendikten sonra yükleyicimodülünün yüklendiği adres göreceli adreslere eklenerek belleğeyüklenir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 12/87

Sevinç İlhan Omurca - OS - Bolum 9 12

Dinamik Yükleme

Çok görevli sistemlerde proses görüntülerinin zaman zamanbellekten alınıp yeniden belleğe yüklenmesi gerekir. 

Bu durumda, aynı proses farklı bellek alanlarınayüklenebilecektir.

Bunun için fiziksel adresler çalışma zamanında atanırlar. Yükleme modülü belleğe yüklendiğinde tüm adresler görecelidir. Bir komut işletileceği zaman işlemci göreceli adresleri mutlak

adreslere dönüştürür. Modüller çağrılmadıkları sürece yüklenmezler. Bir modül diğerini çağıracağında yüklenmiş olup olmadığını

kontrol eder, çağıracağı modül bellekte yoksa, yükleyici modülüyükler ve adres tablosu tekrar güncellenir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 13/87

Sevinç İlhan Omurca - OS - Bolum 9 13

Bağlayıcı modül(linker) 

Linker, program ve verilerden oluşan nesnemodüllerinden yükleyici modülü oluşturur veyükleyiciye gönderir.

Her bir nesne modülü, diğer modüllere erişimiçerebilir.

Linker, birbirini çağıran bağımsız modülleri

birbirine bağlayarak tek bir yükleyici modülelde eder.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 14/87

Sevinç İlhan Omurca - OS - Bolum 9 14

MMU (Memory Management Unit)

İşletim zamanı adres eşleştirmesi(sanal adresten fiziksel adrese)MMU (Memory Management Unit) diye adlandırılan bir donanımcihazı tarafından gerçekleştirilir.

MMU, relocation register‟daki değeri kullanıcı prosesleritarafından yaratılan her adrese ekler (adres belleğegönderildiğinde). 

Kullanıcı programı logical addresses ile ilgilenir; asla gerçek

fiziksel adresi görmez.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 15/87

Sevinç İlhan Omurca - OS - Bolum 9 15

Sanal AdresFiziksel Adres

Sanal Adres CPU‟nun gördüğü adres içeriğiiken Fiziksel adres Fiziksel Belleğin gördüğüadrestir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 16/87

Sevinç İlhan Omurca - OS - Bolum 9 16

Intel x86 Yapısı 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 17/87

Sevinç İlhan Omurca - OS - Bolum 9 17

Dinamik Yerleşim 

Dinamik adres dönüşümü için base ve limit register lar kullanılır. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 18/87

Sevinç İlhan Omurca - OS - Bolum 9 18

Segment Dönüşüm Örneği

0x240 main: la $a0, varx 0x244 jal strlen …. 

0x360 strlen: li $v0,0 0x364 loop: lb $t0,($a0) 0x368 beq $r0, $t1 …. 

0x4050 varx: dw 0x314159

SegID Base Limit

0(code) 0x4000 0x0800

1(data) 0x4800 0x1400

Segment table

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 19/87

Sevinç İlhan Omurca - OS - Bolum 9 19

… 

Başlangıçta PC=0x240 

1. Fetch 0x240, Virtual Segment? 0;Offset:0x240 Segment 0 için Base:0x4000 Fiziksel Adres:

0x4240

0x4240 adresinden instruction al “la $a0, varx” 

PC+4PC

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 20/87

Sevinç İlhan Omurca - OS - Bolum 9 20

… 

2. Fetch 0x244, Virtual Segment? 0;Offset:0x244 Segment 0 için Base:0x4000 Fiziksel Adres:

0x4244 0x4244 adresinden get “ jal strlen”  Move 0x360 to PC

3. Fetch 0x360, Fiziksel Adres: 0x4360 Get “li $v0,0” Move 0x000 to $v0, PC+4PC

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 21/87

Sevinç İlhan Omurca - OS - Bolum 9 21

… 

4. Fetch 0x364 Fiziksel Adres: 0x4364 Get “lb $t0,($a0)” 

$a0 saklayıcısı 0x4050 olana kadar byte aktar.

Translate virtual segment 0x4050? Offset: 0x50

Base:0x4800 Fiziksel adres: 0x4850

0x4850 adresinden $t0 saklayıcısına byte aktar. PC+4PC

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 22/87

Sevinç İlhan Omurca - OS - Bolum 9 22

Bellek Yerleşim Şemaları 

 Ana bellek, OS ve user proseslere uyum sağlamalıdır.  Kernel data, kullanıcı proseslerinden korunmalıdır.  Kullanıcı prosesleri birbirlerinden korunmalıdır. 

Tek bölümlü yerleşim: User prosesleri tek bellek gözü işgal ederler. Koruma limit ve relocation register (base register) ile

gerçekleştirilir. 

CPU <

limitregister

relocationregister

+ memory

trap, addressing error

logicaladdressno

yesphysicaladdress

OS

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 23/87

Sevinç İlhan Omurca - OS - Bolum 9 23

Multiprogramming

Multiprogramming i gerçekleştirmenin en basit yolubelleği değişmez farklı büyüklükteki bölümlereayırmak. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 24/87

Sevinç İlhan Omurca - OS - Bolum 9 24

Swapping

Sisteme sunulan iş, o anda sistemde işletimde olan işlerden daha öncelikli ise, görev tanımlarının  yapılarak hemenişletime alınması gerekir.

Kimi az öncelikli görevlerin, işletimleri daha sonradantamamlanmak üzere geçici olarak diske taşınması boş bellekalanı yaratmak için başvurulan bir yol olabilir.

Bu yolla açılan  boş bellek alanları yeni görevlerintanımlanabilmesine ve öncelik işlerin işletimlerinin bir an öncebaşlatılabilmesine olanak tanır .

İşletimi  tamamlanmamış bir görevin, daha öncelikli görevlere

ana bellekte yer açmak üzere, geçici olarak diskte, bu amaçlaöngörülen alanlara taşınmasına swapping denir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 25/87

Sevinç İlhan Omurca - OS - Bolum 9 25

...

Swap bellek yönetimi zaman paylaşımlı sistemlerle iyi uyumgösterir.

Zaman paylaşımlı sistemlerde kullanıcılar her zaman MİÜkullanmazlar veya düşük kapasitede kullanırlar.

Zaman paylaşımlı bir sistemde, bellek yönetimi bilgisayar üzerindeki iş yüküne göre hazır durumdaki işlemi swap outyapabilir (İşlemin imajını ikincil belleğe alabilir).

Swap kullanımı ile elde edilen başarım artışı, asla işlem için bir avantaj değildir. Çünkü işlem ana bellekte yer bulmak için tekrar bekleyecektir. Başarım kazancı tüm sistem düşünüldüğündevardır, bu bir işlemin ortalama cevap süresini azaltacaktır.

Context switch i yüksek oranda artırır.  Proseslerin sadece aktif kısımlarının ana bellekte yer alması 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 26/87

Sevinç İlhan Omurca - OS - Bolum 9 26

Swapping

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 27/87

Sevinç İlhan Omurca - OS - Bolum 9 27

Swapping

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 28/87

Sevinç İlhan Omurca - OS - Bolum 9 28

Swap in with little extramemory

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 29/87

Sevinç İlhan Omurca - OS - Bolum 9 29

Bitişik Bellek Yerleşimi 

 Ana bellek genelde 2 ye bölünmüştür:  İşletim sistemi low memory de saklanır (interrupt

vektörü ile)

Kullanıcı prosesleri high memory de saklanır  

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 30/87

Sevinç İlhan Omurca - OS - Bolum 9 30

Bitişken Bellek YerleşimindeBellek Koruması 

Bellek yerleşiminden önce işletim sistemini kullanıcıprogramlarından ve yine kullanıcı programlarınıbirbirlerinden koruma konusunu tartışmalıyız.

Bu koruma işlemi bir relocation register ve limit

register kullanılarak gerekleştirilebilir. Reloction register en küçük fiziksel adres bilgisini içerir; limit register ise mantıksal adres aralığını içerir. Bu register erişimleri sadece OS tarafından özel komutlarla

yapılır. 

MMU, mantıksal adreslere dinamik olarak relocationregisterı ekler. Bu map edilmiş adres belleğegönderilir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 31/87

Sevinç İlhan Omurca - OS - Bolum 9 31

Mantıksal Adres Alanı Tanımı 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 32/87

Sevinç İlhan Omurca - OS - Bolum 9 32

Adres Koruması 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 33/87

Sevinç İlhan Omurca - OS - Bolum 9 33

Bitişken Bellek Yerleşimi 

Bellek yerleşimi için var olan en basit yol, belleğisabit parçalı alanlara ayırmaktır. Her partition bir tekproses içerebilir.

Buna göre, multiprogramming in derecesi bellektekipartition sayısı ile orantılıdır.

Bu multiple-partition metodunda, bir partition boşise, bekleme kuyruğundaki proses seçilir ve bu boş

olan partitiona yerleştirilir. Proses terminate edildiğinde ise bu partition başka

bir proses için uygun hale gelir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 34/87

Sevinç İlhan Omurca - OS - Bolum 9 34

... Multiple-partition yerleşimi 

Hole   – yerleşim için uygun bellek bloğu  Bir proses sisteme vardığında, o prosese Hole‟dan ihtiyacını

karşılayacak kadar geniş bir bellek ayrılır.  İşletim sistemi şu bilgileri saklar ve düzenler :

a) allocated partitions b) free partitions (hole)

Her proses aynı büyüklükte değildir   Zaman içinde parçalanma artar Heap ve Stack in büyümesine izin vermez

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 5

process 9

process 2

process 9

process 10

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 35/87

Sevinç İlhan Omurca - OS - Bolum 9 35

...

Bir proses sisteme dahil olduğunda, input kuyruğuna alınırlar.İşletim sistemi programların bellek ihtiyaçlarını hesba katar vehangi proseslerin belleğe yerleşebilir olduklarına karar verir. 

Proses için uygun alan varsa belleğe alınır ve daha sonra CPUişletimi için beklemeye başlar.

Proses terminate edildiğinde bellek alanını boşaltır ve işletimsistemi input kuyruğundan başka bir prosesi alır ve belleğekoyar.

İşletimin herhangi bir zamanında, uygun blok boyutlarına ve inputkuyruğu bilgisine sahibizdir.

İşletim sistemi input kuyruğunu düzenleyici algoritmaya göreorganize edebilir. İşletim sistemi sıradaki proses için uygunmiktarda boş bellek alanı için bekler ya da bir sonraki prosesiinput kuyruğundan alarak işletmeye başlar.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 36/87

Sevinç İlhan Omurca - OS - Bolum 9 36

Bit Map ve Link List ile BellekHaritası 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 37/87

Sevinç İlhan Omurca - OS - Bolum 9 37

Dinamik Yerleşim Problemi 

İşe verilecek alanın tespitinde değişik yaklaşımlar mevcuttur : First Fit : Baştan taramaya başla . İşin çalışabileceği kadar 

yeterli ilk boş alana yerleştir.  Best Fit : İşin çalışabileceği en küçük alanı bul. İşi oraya

yerleştir.

Worst Fit : İşi büyüklüğüne bakmaksızın hafızada en büyükalanı bul İşi oraya yerleştir.

First Fit ve Best Fit, Worst Fit ten daha iyi performanssağlarlar. (yerleşim hızı ve verimliliği açısından)

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 38/87

Sevinç İlhan Omurca - OS - Bolum 9 38

Parçalanma 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 39/87

Sevinç İlhan Omurca - OS - Bolum 9 39

Parçalanma

Dış Parçalanma: Bölüm dışı yararlanılamayan alanlar  İç Parçalanma: Bölüm içi yararlanılamayan alanlar  Dış parçalanmaya bir çözüm küçültme işlemidir. Arada kalmış

boş ve parçalanmış olan bellek parçaları bir araya getirilerek

daha büyük bitişken boş bellek alanı yaratılmaya çalışılır. Küçültme her zaman mümkün değildir. Yerleşim statik ise ve

assembly ya da load time zamınında yapılıyorsa küçültmemümkün değildir. Ancak yerleşim işlemi dinamik olarakyapılıyorsa geçerlidir.

Küçültme yapılabilir durumda ise bunun maliyetininhesaplanması gereklidir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 40/87

Sevinç İlhan Omurca - OS - Bolum 9 40

Küçültme

 

S f l B ll k

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 41/87

Sevinç İlhan Omurca - OS - Bolum 9 41

Sayfalı BellekYönetimi(Paging) Sayfalı bellek yönetiminde görevlerin mantıksal adres uzayları,

birbirini izleyen eşit uzunluklu parçalardan oluşur. Bu parçalar program sayfası olarak adlandırılır. Bu uzay içinde

adreslerin iki bileşeni bulunur (p,d). Bu bileşenlerden ilki (p) sayfa numarası, ikincisi ise (d) sayfa başına göreli adrestir.

Mantıksal adres uzayının sayfalı olarak düşünülmesi fizikseladres uzayının da aynı biçimde düşünülmesini gerektirir.

Bu durumda ana belleğin x sözcük uzunluğunda N tane sayfadanoluştuğu varsayılır. (x.N) belleğin toplam sığasını verir.

 Ana belleği oluşturduğu varsayılan sayfalar bellek sayfalarıolarak adlandırılır. Sayfalı bellek yönetiminin uygulandığısistemlerde, amaç programlar içindeki tüm adresler, sayfanumarası ve sayfa içi göreli adresten oluşur biçimde düşünülür.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 42/87

Sevinç İlhan Omurca - OS - Bolum 9 42

...

Bir belleğin, sütun ve dizelerden oluşan bir “ızgara”şeklinde olduğunu, bilgilerin de bu ızgara şeklindeolan hücrelerin içersinde saklandığını, dolayısıyla daher bilginin bir dize ve sütun adresinin olduğu

düşünülebilir.   

RAS (Row Address Strobe) bilginin bellektebulunduğu dizeye geçilinceye kadar harcanan boş

zaman, CAS (Column Address Strobe) ise bilgininanlamlı bir bütün haline getirilmesine kadar harcanan boş zamandır.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 43/87

Sevinç İlhan Omurca - OS - Bolum 9 43

...

Mantıksal adres uzayında bitişken olarak yer alan program sayfalarının ana bellektekikarşılıkları bitişken olarak aranmaz. 

Bu yolla görevlere ana bellekte bitişken yer bulma zorunluluğu ortadan kalkar. Tüm modern işletim sistemlerinde uygulanan

bir yöntemdir. Sayfalı bellek yönetiminden söz edebilmek

için Paging donanımı olmak zorundadır. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 44/87

Sevinç İlhan Omurca - OS - Bolum 9 44

... Fiziksel hafıza frame adı verilen sabit boyda parçacıklardan

oluşur. Mantıksal hafıza da aynı boyda page adı verilen parçacıklardan

oluşur. Program işletileceği zaman, ilgili sayfalar genelde disk üzerinde

saklanmış durumdadır. Disk bellek frame‟ leri ile aynı boydabölünmüş sabit boylu bloklardan oluşur. Paging „e donanımdan bir destek verilmelidir. CPU tarafından üretilen her adres 2 parçadan oluşur.

(p) Page number: Page table „daki yeri gösteren bir pointerdır.

(d) page offset: Page table her page‟ in fiziksel hafızadaki yerinigösteren bir base adres içerir. Bu base adres , bir page offset ilebirleştirilerek hafıza ünitesine gönderilecek fiziksel hafıza adresinitanımlar.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 45/87

Sevinç İlhan Omurca - OS - Bolum 9 45

Paging Donanımı 

 

M t k l Fi ik l b ll ği

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 46/87

Sevinç İlhan Omurca - OS - Bolum 9 46

Mantıksal ve Fiziksel belleğinsayfalı modeli

 

P i Ö ği B ll k 32

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 47/87

Sevinç İlhan Omurca - OS - Bolum 9 47

Paging Örneği: Bellek:32bytes, Sayfa:4 bytes 4 bit logical adres:

2bit page number+2bit offset

Logical 5=0101: 1. sayfanın 1.

ofsetinde

8 frame adreslemekiçin 3 bite ihtiyaçvardır: 

Fiziksel adres:11001 110:segment ve

01:offset

 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 48/87

Sevinç İlhan Omurca - OS - Bolum 9 48

Sayfa Boyu

Sayfa boyu ve frame boyu donanımtarafından tanımlanır.

Sayfa boyu genelde 512 bytes ve 16 MBarasında değişir. (Bilgisayar mimarisine göredeğişir) Sonuçta bilgisayar sisteminindonanım yapısına bağlıdır 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 49/87

Sevinç İlhan Omurca - OS - Bolum 9 49

Page-Frame

Ne zaman ki bir proses sisteme çalıştırılmak üzeredahil olsun, boyutu sayfalar olarak belirtilir.

Prosese ait her sayfa bir frame ihtiyaç duyar.

Bu durumda, eğer proses n sayfaya ihtiyaç duyarsa,en azında n tane frame bellekte uygun durumdaolmalıdır.

Eğer n frame varsa prosese ayrılırlar. Prosesin ilksayfası ayrılmış framelerden birine aktarılır. Veframe numarası, bu proses için page table‟a işlenir.

Bir sonraki sayfa başka bir frame‟ konur ve framenumarası page table a işlenir. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 50/87

Sevinç İlhan Omurca - OS - Bolum 9 50

Boş Frame’ler  

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 51/87

Sevinç İlhan Omurca - OS - Bolum 9 51

Page Table Uygulaması 

Page table ana bellekte saklanır   Page-table base register (PTBR) page table‟a işaret

eder. Page-table length register (PTLR) page table‟ın

boyunu belirtir. Bu durumda her veri erişimi iki kere bellek erişimi

gerektirir. Bir tanesi page table için, diğeri veri için. Bu iki kez bellek erişim problemi özel hızlı erişim

sağlanan bir donanım ön belleği Translation-Look-

Aside-Buffer (TLB) kullanılarak çözülebilir (processcontext switches sırasında).  TLBs hızlıdırlar, pahalıdırlar, 8..2048 entries

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 52/87

Sevinç İlhan Omurca - OS - Bolum 9 52

TLB ile Paging

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 53/87

Sevinç İlhan Omurca - OS - Bolum 9 53

Direct Mapped Cache

1 KB direct mapped cache, 32 B blok ile İndex potansiyel bloğu seçer  

Tag bloğu doğrulamak için check edilir. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 54/87

Sevinç İlhan Omurca - OS - Bolum 9 54

Fully Associative Cache

Herhangi bir blok herhangi bir satırda olabilir.  Adres bir cache index içermez

Cache tag larını, tüm cache girişleri ile paralel olarakkarşılaştırır. 

Örn: blok size: 32 B

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 55/87

Sevinç İlhan Omurca - OS - Bolum 9 55

Adres Dönüşümünde Caching 

TLB de yakalanamayan sayfa referansları dönüştürülmek üzere MMU‟yagönderilirler. Donanım ya da yazılım page table girişine bakar ve sonucuTLB‟ye yazar. 

Untranslated read ya da write işlemi neden Kernel için kullanışlıdır? 

  Kernel erişimlerinde tüm TLB miss/hit işlemlerinin tekrarlanmasından kurtarır. 

Kullanıcının asla untranslated belleğe direk erişimine izin verilmez. (Dosyakoruması için)

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 56/87

Sevinç İlhan Omurca - OS - Bolum 9 56

TLB Miss Yönetimi Hardware traversed page tables

TLB miss çağsırında, MMU‟daki donanım TLB‟yi doldurmak için current page table‟abakar. Eğer PTE valid değerinde ise, donanım TLB‟yi doldurur ve işlemci bunun farkında

olmaz Eğer PTE invalid işaretli ise Page Fault‟a neden olur. Kernel bundan sonra yapması

gerekenlere karar verir.

Software traversed page tables (MIPS işlemciler)  Bu durumda da, CPU‟dan gelen sanal adresin TLB‟de olup olmadığına bakmak

donanım işidir. Sadece MMU‟da tarnslate işlemini gerçekleştirmek yazılım işidir. (TLBHit işleminin hızlı tamamlanması için bu şarttır) 

TLB miss çağrısında işlemci TLB fault hatasını alır. Kernel PTE‟yi bulmak için page table‟ı tarar.

Eğer PTE valid ise, TLB‟yi doldurur ve TLB fault hatasından geri döner. PTE invalid ise Page Fault handler „ı çağrır.

TLB fault hataları arttıkça (TLB miss yazılım ile çözülmeye çalışıldıkça) erişimhızı çok büyük oranda azalmaya başlayacaktır. 

Çipsetlerin büyük çoğunluğu hardware traversal‟ı destekler  

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 57/87

Sevinç İlhan Omurca - OS - Bolum 9 57

Context Switch - TLB Context Switch esnasında neler olur? 

TLB ler sanal adresleri fiziksel adresler ile eşleştirir. Adress space değişmiştir, ohalde TLB girişleri geçerli değildir.

Page table base pointer değişmiştir. Bu da yeni page table anlamına gelir. TLBler page table ların ön bellekleridir. TLB değiştirilmediğinden (invalidate TLBişlemi) bir anda TLB yanlış page table için yanlış sayfaları içermeye başlar veyanlış translation lar gerçekleşmeye başlar.

O halde context switch TLB nin yenilenmesini gerektirir. Seçenekler:

Invalidate TLB: basit ama maliyetli Switching prosesler arasında çok sık gerçekleşiyorsa ne olacak? 

Proses ID‟yi TLB‟ye dahil etmek bir çözümdür (bu şekilde proses IDdeğiştiğinde TLB invalidate yapılır) Bu bir mimari cozumudur.

Page table değişirse(güncellenirse) ne olur?  

Sayfa bellekten diske ya da tam tersi taşınırsa ne olur? TLB Invalidate edilmelidir. Aksi taktirde sayfanın hala bellekte olduğu

düşünülebilir. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 58/87

Sevinç İlhan Omurca - OS - Bolum 9 58

TLB Organizasyonu TLB büyüklüğü ne olmalı? 

Genellikle küçük girişler: 128-512 giriş  Ne kadar küçük olursa o kadar hızlı eşleme demek 

TLB, Full-associative cache olarak organize edilmiştir. Sanal adresten fiziksel adres ve diğer bilgiler elde edilmiştir.

MIPS R3000 işlemci için örnek TLB içeriği: 

Sanal adres+karşılığı olan fiziksel adres+dirty bit+recently

referenced+vlid bit+access rights+Application ID Full associative cache çok yavaş olursa çözüm: 

İki seviyeli TLB: TLB slice diye adlandırılan 4-16 girişi direct-mappedolarak dizayn etmek

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 59/87

Sevinç İlhan Omurca - OS - Bolum 9 59

Örn: MIPS TLB 64 girişli-on chip-fully associative-Software TLB fault

handler

Virtual adress:

0 biti ile başlayan erişim user space, 1 ile başlayankernel space

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 60/87

Sevinç İlhan Omurca - OS - Bolum 9 60

Bellek Koruması 

Bellek koruması her frame‟e bir protection bitieşleştirilerek gerçekleştirilir.

Valid-invalid bit page table daki her giriş için

eklenmiştir. : “valid” sayfa prosesin sanal adres alanındadır 

yani legaldir.

“invalid” prosesin sanal adres alanında değildir.İllegal adres erişimi gerçekleştirilmektedir. 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 61/87

Sevinç İlhan Omurca - OS - Bolum 9 61

Valid-invalid bits

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 62/87

Sevinç İlhan Omurca - OS - Bolum 9 62

Paylaşılmış sayfalar  

Paylaşılmış kod  read-only kod prosesler arasında paylaştırılmıştır.

(i.e., text editors, compilers, window systems).

Tüm proseslerin mantıksal adres alanında aynıyerde görünmelidir.

Özel Kod ve Veri  Her proses kodun ve verinin ayrı bir kopyasını

saklar Özel kod ve veriler mantıksal adres alanının

herhangi bir yerinde görünebilirler.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 63/87

Sevinç İlhan Omurca - OS - Bolum 9 63

Paylaşılmış sayfa örneği 

 

Paylaşılmış bellek = Birden çok

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 64/87

Sevinç İlhan Omurca - OS - Bolum 9 64

Paylaşılmış bellek = Birden çokproses tarafından erişilmiş dosya 

00000000

7FFFFFFF

User

accessible

v.a.s.(virtualadr space)

User

accessible

v.a.s.

Process A Process B

Physical Memory 

 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 65/87

Sevinç İlhan Omurca - OS - Bolum 9 65

Virtual Address Space (V.A.S.) Process space şunları

içerir: The application

you‟re running(.EXE and .DLLs)

A user-mode stack for eachthread (automatic storage)

All static storage defined bythe application

User

accessible

Kernel-mode

accessible

}

}

Unique per

process

System-

wide

00000000

7FFFFFFF

80000000

FFFFFFFF

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 66/87

Sevinç İlhan Omurca - OS - Bolum 9 66

Virtual Address Space (V.A.S.)

User

accessible

Kernel-mode

accessible

}

}

Unique per

process

System-

wide

System alanı şunları

içerir: Executive, kernel, and HAL Statically-allocated system-

wide data cells Page tables (remapped for

each process) Executive heaps (pools) Kernel-mode device drivers

(in nonpaged pool) File system cache A kernel-mode stack for

every thread in everyprocess

00000000

7FFFFFFF

80000000

FFFFFFFF

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 67/87

Sevinç İlhan Omurca - OS - Bolum 9 67

Segmentasyon

Bellek değişik boyuttaki segmentlerin toplamıgibi düşünülür. 

Bir segmentin elemanları, segmentin

başından başlayan offset leri ile tanımlanırlar.17. giriş sembol tablosu, 5. talimat sqrtfonksiyonu vb.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 68/87

Sevinç İlhan Omurca - OS - Bolum 9 68

Kullanıcı Görüşü 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 69/87

Sevinç İlhan Omurca - OS - Bolum 9 69

1

3

2

4

1

4

2

3

Kullanıcı alanı  Fiziksel bellek alanı 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 70/87

Sevinç İlhan Omurca - OS - Bolum 9 70

...

Mantıksal adres uzayın segmentler topluluğu gibidüşünülür.

Her segment bir isme ve uzunluğa sahiptir.  Adresler segmenti segment adı ve offseti ile

tanımlarlar. Bu yüzden kullanıcılar her adres için 2 büyüklük

tanımlamalıdırlar. Segment adı ve offset „i.<segment-numarası, offset> 

Uygulama gerçekleştirmeyi kolaylaştırmak için ,segmentler numaralandırılır ve segment adıkullanmaktansa segment numaraları üzerindenerişim sağlanır.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 71/87

Sevinç İlhan Omurca - OS - Bolum 9 71

Segmentasyon Donanımı 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 72/87

Sevinç İlhan Omurca - OS - Bolum 9 72

Segmentasyon Örneği 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 73/87

Sevinç İlhan Omurca - OS - Bolum 9 73

Paylaşım 

 

Sayfalı Bölümlü Bellek

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 74/87

Sevinç İlhan Omurca - OS - Bolum 9 74

Sayfalı Bölümlü BellekYönetimi Gerek paging „in gerekse segmentation „un kendilerine göre avantajları

ve dezavantajları vardır. Bu iki yaklaşımı birleştirmek en verimli sonuçlardan birisi olacaktır. Bu uygulamanın en iyi örneklerinden birisi Multics sistemlerde

görülmektedir. Mantıksal adres evreni bölümlere(segmentlere) ve segmentler de

sayfalara ayrılırlar. Bu şekilde segmentasyonda temel sakıncayı oluşturan değişik boydaki

segmentleri sayfa tabanında ele almak mümkün olmaktadır. Bölümlü sayfalı bellek yönetiminde adresler üç bileşenden oluşurlar. 

Segment numarası  Segmente göreli sayfa numarası  Sayfa içi adres

 

Segmentation with Paging

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 75/87

Sevinç İlhan Omurca - OS - Bolum 9 75

Segmentation with Paging- paged segmentation on the GE 645 (Multics- MultiplexedInformation and Computing Service )

The MULTICS operating system: Mantıksal adres: 18-bit segment no, 16-bit offset Parçalanmayı önlemek için, segmentler sayfalanmıştır.  Her segment için ayrı bir sayfa tablosu vardır. 

segmentlength

page-tablebase

s d

>= 

Trap+

yes

no

segment tablebase register

d

p d„ 

+ f f d„ 

physicalmemory

physical address

page table for segment s

logical address

segment table

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 76/87

Sevinç İlhan Omurca - OS - Bolum 9 76

...

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 77/87

Sevinç İlhan Omurca - OS - Bolum 9 77

...

Mantıksal adreslerden fiziksel adreslere geçişte iki temel çizelgekullanılır:  Segment tanım çizelgesi  Sayfa tanım çizelgesi 

Bölümlü-sayfalı bellek yönetiminde segment tanım çizelgesi,programları oluşturan bölümlerin başlangıç adresi yerine, bubölümler için öngörülen ayrı ayrı sayfa tanım çizelgelerininbaşlangıç adreslerini tutar.

Segmentlerin boy bilgisi yerine, ilgili sayfa tablosunun boybilgisine yer verilir.

Segmentlerin belleğe yüklenmesi sayfa sayfa yapılır. Budurumda segmentin tümünün bellekte tutulması anlamını yitirir.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 78/87

Sevinç İlhan Omurca - OS - Bolum 9 78

Page Table Yapıları 

Hierarchical Paging (Two Level Paging)

Inverted Page Tables

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 79/87

Sevinç İlhan Omurca - OS - Bolum 9 79

Hierarchical Page Tables

Mantıksal adres uzayını birden fazla pagetable‟a böler  

Uygulanan basit bir teknik: iki seviyeli

sayfalama tablosudur.

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 80/87

Sevinç İlhan Omurca - OS - Bolum 9 80

page number page offset

p i  p 2  d  

10 10 12

İki seviyeli Sayfalama Örneği 

Mantıksal bir adres (on 32-bit machine with 4K pagesize) ikiye bölünmüştür : 20 bitlik bir page number. 12 bit lik bir page offset.

Sayfa tablosu sayfalandığında, page numberşunlara bölünmüştür : 10-bit bir page number 10-bit bir page offset

O halde, mantıksal bir adres:  pi: an index into the outer page table, p2: the displacement within the page of the outer page table

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 81/87

Sevinç İlhan Omurca - OS - Bolum 9 81

İki Seviyeli Sayfa Tablosu Şeması 

… 

… 

… 

… 

outer page table

(page directory)

page tablesmemory

  

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 82/87

Sevinç İlhan Omurca - OS - Bolum 9 82

Adres-Dönüşüm Şeması 

32-bit lik bir sayfalama mimarisinde ikiseviyeli adres dönüşüm şeması 

page number page offset

p 1  p 2  d  

10 10 12

pagedirectory

pagetable

Mainmemory 

p 1 

p 2 

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 83/87

Sevinç İlhan Omurca - OS - Bolum 9 83

..

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 84/87

Sevinç İlhan Omurca - OS - Bolum 9 84

Inverted Page Table: Hashed

CPU f dp d

Physicalmemory

Logicaladdress

Physicaladdress

Page table

Page numberoffset

p fhashfunction

 

Inverted Page Table

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 85/87

Sevinç İlhan Omurca - OS - Bolum 9 85

gArchitecture

CPU f dp d

Physicalmemory

Logicaladdress

Physicaladdress

Page table

Page numberoffset

pid psearch

pid

Process ID

f

 

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 86/87

Sevinç İlhan Omurca - OS - Bolum 9 86

Intel x86 Segmentation

Index TI=0 RPL

315 2 1 0IntelLogicaladdress

Segment Selector31 0

Offset

:

Global DescriptorTable (GDT)

Limit=0xfffffAccess

Base Address = 0

Limit=0xfffffAccess

Base Address = 0+

IntelLinearAddresses

Windows VirtualAddresses

0

0xffffffff

 

Intel 30386selector offset

l t

Intel logicalAddress

5/16/2018 90_BOLUM9 - slidepdf.com

http://slidepdf.com/reader/full/90bolum9 87/87

Address Translation

The Intel 386usessegmentation with pagingfor memorymanagementwith a two-level pagingscheme.

10 10 12

2231 21 11 0Intel LinearAddress

12

4Mb PDE

4Kb PDE

Page directory1024x4byte entries(one per process)

PTE

Page table1024 entries

Physical Address

operand

4 Kb page

operand

4 Mb page

22 bitoffset

4kb pageframe

4MB page frame

limit base

s

+

descriptortable

offset

selector