83
Silberschatz, Galvin and Gagne ©2009 perating System Concepts – 8 th Edition Bölüm 7: Ana Bellek

Bölüm 7 : Ana Bellek

  • Upload
    shona

  • View
    104

  • Download
    1

Embed Size (px)

DESCRIPTION

Bölüm 7 : Ana Bellek. Bellek Yönetimi. Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The Intel Pentium. Geçmiş Bilgiler. Program çalışmak için ( run ) diskten Belleğe getirilmeli ve bir işlem haline gelmelidir - PowerPoint PPT Presentation

Citation preview

Page 1: Bölüm 7 :   Ana Bellek

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Bölüm 7: Ana Bellek

Page 2: Bölüm 7 :   Ana Bellek

8.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Bellek Yönetimi

Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The Intel Pentium

Page 3: Bölüm 7 :   Ana Bellek

8.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 4: Bölüm 7 :   Ana Bellek

8.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Taban ve Limit Kaydediciler (Base and Limit Registers) base and limit registerlar işlemlerin mantıksal adres alanını tanımlar.

Page 5: Bölüm 7 :   Ana Bellek

8.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Bellek Yönetimi

Page 6: Bölüm 7 :   Ana Bellek

8.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Base and Limit Registerlar ile Donanım Adres Koruması

Page 7: Bölüm 7 :   Ana Bellek

8.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Page 8: Bölüm 7 :   Ana Bellek

8.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Mantıksal Fiziksel Adres

Page 9: Bölüm 7 :   Ana Bellek

8.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 10: Bölüm 7 :   Ana Bellek

8.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 11: Bölüm 7 :   Ana Bellek

8.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Kuşbakışı Bellek İşlemleri

Sembolik İsimler

Mantıksal Adres

Fiziksel Adres

Binding/Bağlama

Fiziksel Bellek birçok işlem tarafından kullanılmaktadır

RelocationAllocationPagingSegmentation

Page 12: Bölüm 7 :   Ana Bellek

8.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Programlama Adımlarıtest1.c, test2.c

gcc –c test1.c; gcc –c test2.c

test1.o, test2.o

gcc –o test test.o test2.o –lmylib -lm

test

./test

test, math library, standard C libraries

C source C source

compiler compiler

objectcode

objectcode

linker

staticlibrary

dynamiclibrary executable

loader

memoryimage

mylib,

Page 13: Bölüm 7 :   Ana Bellek

8.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 14: Bölüm 7 :   Ana Bellek

8.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Bellek Adresleri Oluşturma

14Compilation Linking Loading

Prog P...foo()...

P:...push ...jmp _foo...foo: ...

0 P:...push ...jmp 75...foo: ...75

100

175

Library routines

0

P:...push ...jmp 175...foo: ...

1100 P:...push ...jmp 1175...foo: ...1175

Library routines

1000

DİSKTE BELLEKTE

Page 15: Bölüm 7 :   Ana Bellek

8.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Bellek Adresleri Oluşturma Address representation

Source program: symbolic (such as count) After compiling: re-locatable address

14 bytes from the beginning of this module After linkage editor, loader or run-time referring: absolute address

Physical memory address 2000

15

0

250

2000

2250Re-locatable Address Absolute Address

(Physical Memory)Symbolic Address

int I;goto p1;p1

Page 16: Bölüm 7 :   Ana Bellek

8.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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)

Page 17: Bölüm 7 :   Ana Bellek

8.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Need hardware support for address maps (e.g., base and limit registers)

Page 18: Bölüm 7 :   Ana Bellek

8.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Yorumlama Zamanında Binding,

18

Sembolik Adres

PROGRAM

JUMP i

LOAD j

DATA

i

j

Kaynak Kod

Fiziksel Bellek Adresi(Physical Memory Addresses)

1024

JUMP 1424

LOAD 2224

1424

2224

Absolute Load Module

Compile

The CPU generates the absolute addresses

Link/Load

Absolute Addresses(Physical Memory Addresses)

1024

JUMP 1424

LOAD 2224

1424

2224

Process Image (Part)

Page 19: Bölüm 7 :   Ana Bellek

8.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Yükleme Zamanında Binding

19

Relative (Relocatable)Addresses

0

JUMP 400

LOAD 1200

400

1200

Relative Load Module

SymbolicAddresses

PROGRAM

JUMP i

LOAD j

DATA

i

j

Source Code

Compile Link/Load

Absolute Addresses(Physical Memory Addresses)

1024

JUMP 1424

LOAD 2224

1424

2224

Process Image (Part)

Page 20: Bölüm 7 :   Ana Bellek

8.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

20

Relative (Relocatable)Addresses

0

JUMP 400

LOAD 1200

400

1200

MAX =2000

Page 21: Bölüm 7 :   Ana Bellek

8.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 22: Bölüm 7 :   Ana Bellek

8.22 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 23: Bölüm 7 :   Ana Bellek

8.23 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Page 24: Bölüm 7 :   Ana Bellek

8.24 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Relocation register ile Dinamik yerleştime

24

Cpu tarafından oluşturuldu

Bellek Ünitesi tarafından

görülen

Mantıksaldan fiziksele map

Binding at execution time (when reference is made)

0 to MAX

14000 to 14000+MAX

Page 25: Bölüm 7 :   Ana Bellek

8.25 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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ğildirProgram tasarımı ile uygulanır

Page 26: Bölüm 7 :   Ana Bellek

8.26 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 27: Bölüm 7 :   Ana Bellek

8.27 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Page 28: Bölüm 7 :   Ana Bellek

8.28 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

.

Page 29: Bölüm 7 :   Ana Bellek

8.29 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 30: Bölüm 7 :   Ana Bellek

8.30 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Takaslama

Page 31: Bölüm 7 :   Ana Bellek

8.31 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 32: Bölüm 7 :   Ana Bellek

8.32 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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)

Page 33: Bölüm 7 :   Ana Bellek

8.33 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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 dinamik- mantı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.

Page 34: Bölüm 7 :   Ana Bellek

8.34 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Limit ve Relocation Register

Page 35: Bölüm 7 :   Ana Bellek

8.35 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

process 9

Page 36: Bölüm 7 :   Ana Bellek

8.36 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Değişken Bölümlü(Variable Partition) Bellek Yönetimi

Page 37: Bölüm 7 :   Ana Bellek

8.37 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Değişken Bölümlü(Variable Partition) Bellek Yönetim

Page 38: Bölüm 7 :   Ana Bellek

8.38 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Değişken Bölümlü(Variable Partition) Bellek Yönetimi

Page 39: Bölüm 7 :   Ana Bellek

8.39 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 40: Bölüm 7 :   Ana Bellek

8.40 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Boş alan Seçimi Örneğin, aşağıda verilmiş işlemleri ve gerektirdikleri bellek alanlarını

inceleyelimİşlem Bellek SüreP1 600K 10P2 1000K 5P3 300K 20P4 700K 6P5 500K 15

Page 41: Bölüm 7 :   Ana Bellek

8.41 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 42: Bölüm 7 :   Ana Bellek

8.42 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 43: Bölüm 7 :   Ana Bellek

8.43 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 44: Bölüm 7 :   Ana Bellek

8.44 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Adres Çevrimi İşlemcinin oluşturduğu adresler iki kısımdan oluşmaktadır:

Burada p sayfa tablosundaki indeks, d ise sayfa içindeki yerleşimi(ofseti) temsil etmektedir.

Sayfa Numarası Sayfa Ofseti

p d

Page 45: Bölüm 7 :   Ana Bellek

8.45 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Sayfalı Bellek Yönetimi

Mantıksal Adres Fiziksel Adres

Page 46: Bölüm 7 :   Ana Bellek

8.46 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Fiziksel ve Mantıksal Belleğin Sayfalama Modeli

Page 47: Bölüm 7 :   Ana Bellek

8.47 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Sayfalama Örneği

n=2 and m=4 32-byte memory and 4-byte pages

Page 48: Bölüm 7 :   Ana Bellek

8.48 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Sayfalama Örneği

Page 49: Bölüm 7 :   Ana Bellek

8.49 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Sayfalama Örneği

Page 50: Bölüm 7 :   Ana Bellek

8.50 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Sayfalama Örneği

Page 51: Bölüm 7 :   Ana Bellek

8.51 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 52: Bölüm 7 :   Ana Bellek

8.52 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 53: Bölüm 7 :   Ana Bellek

8.53 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Boş Çerçeveler

Yerleşimden Önce Yerleşimden Sonra

Page 54: Bölüm 7 :   Ana Bellek

8.54 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 55: Bölüm 7 :   Ana Bellek

8.55 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

TLB ile Sayfalama

Page 56: Bölüm 7 :   Ana Bellek

8.56 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 57: Bölüm 7 :   Ana Bellek

8.57 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Valid (v) /Invalid (i) Bit

Page 58: Bölüm 7 :   Ana Bellek

8.58 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 59: Bölüm 7 :   Ana Bellek

8.59 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Paylaşılan Sayfalar

Page 60: Bölüm 7 :   Ana Bellek

8.60 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Sayfa Tablosu Yapısı

Hiyerarşik Sayfa Tablosu

Tersine Çevrilmiş (Inverted) Sayfa Tablosu

Page 61: Bölüm 7 :   Ana Bellek

8.61 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 62: Bölüm 7 :   Ana Bellek

8.62 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

İki seviyeli Sayfa Tablosu

Page 63: Bölüm 7 :   Ana Bellek

8.63 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

İ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:

p1 dış sayfa tablosu için indeks ve p2 ise iç sayfa tablosu için yerleşimi içerir. forward-mapped page table

Sayfa numarası sayfa ofseti

p1 p2 d

12 10 10

Page 64: Bölüm 7 :   Ana Bellek

8.64 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Adres Geçişi

Page 65: Bölüm 7 :   Ana Bellek

8.65 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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 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

outer page page offset

p1 p2 d

42 10 12

inner page

Page 66: Bölüm 7 :   Ana Bellek

8.66 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Üç seviyeli Sayfalama

Page 67: Bölüm 7 :   Ana Bellek

8.67 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 68: Bölüm 7 :   Ana Bellek

8.68 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Tersine çevrilmiş (Inverted) Sayfa Tablosu

Page 69: Bölüm 7 :   Ana Bellek

8.69 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Tersine çevrilmiş (Inverted) Sayfa Tablosu

Page 70: Bölüm 7 :   Ana Bellek

8.70 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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.

Page 71: Bölüm 7 :   Ana Bellek

8.71 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

User’s View of a Program

Page 72: Bölüm 7 :   Ana Bellek

8.72 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Segmentasyon için Mantıksal Görünüm

1

3

2

4

1

4

2

3

user space physical memory space

Page 73: Bölüm 7 :   Ana Bellek

8.73 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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. indicates number of segments used by a program;

segment number s is legal if s < STLR

Page 74: Bölüm 7 :   Ana Bellek

8.74 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 75: Bölüm 7 :   Ana Bellek

8.75 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Segmentation Hardware

Page 76: Bölüm 7 :   Ana Bellek

8.76 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Example of Segmentation

Page 77: Bölüm 7 :   Ana Bellek

8.77 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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

Page 78: Bölüm 7 :   Ana Bellek

8.78 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Logical to Physical Address Translation in Pentium

Page 79: Bölüm 7 :   Ana Bellek

8.79 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Intel Pentium Segmentation

Page 80: Bölüm 7 :   Ana Bellek

8.80 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Pentium Paging Architecture

Page 81: Bölüm 7 :   Ana Bellek

8.81 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

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?!

Page 82: Bölüm 7 :   Ana Bellek

8.82 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Three-level Paging in Linux

Page 83: Bölüm 7 :   Ana Bellek

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

End of Chapter 7