41
Bellek Yönetimi (3)

Bellek Yönetimi (3)

  • Upload
    july

  • View
    68

  • Download
    0

Embed Size (px)

DESCRIPTION

Bellek Yönetimi (3). Görüntü Bellek. Gerçek bellek – Ana bellek Görüntü (Sanal/Virtual) bellek – Disk üzerinde oluşturulan ikincil bellek – Çoklu programlamayı daha etkin kılar. – Ana bellek boyu kısıtlarından programcıyı kurtarır. Görüntü (Sanal) Bellek (Virtual Memory). - PowerPoint PPT Presentation

Citation preview

Page 1: Bellek Yönetimi (3)

Bellek Yönetimi (3)

Page 2: Bellek Yönetimi (3)

Görüntü Bellek

• Gerçek bellek– Ana bellek• Görüntü (Sanal/Virtual) bellek – Disk üzerinde oluşturulan ikincil bellek– Çoklu programlamayı daha etkin kılar.– Ana bellek boyu kısıtlarından programcıyı kurtarır.

Page 3: Bellek Yönetimi (3)

Görüntü (Sanal) Bellek (Virtual Memory)

• Çalışma anında prosesin tüm parçalarının birden bellekte olması gerekmez

• Proses çalışması boyunca belleğe alınıp, bellekten atılabilir ve her seferinde farklı bir bölgeye yerleştirilebilir.

• Prosesin parçalarının bellekte birbirini izleyen bölgelerde olması gerekli değil

Page 4: Bellek Yönetimi (3)

Görüntü (Sanal) Bellek (2)

• İşletim sistemi başlangıçta belleğe prosesin bir kısmını yükler

• Yerleşik set (resident set) - prosesin bellekte bulunan kısmıdır.

• İhtiyaç duyulan bir bölge bellekte yoksa kesme oluşur

• İşletim sistemi prosesi bloke eder

Page 5: Bellek Yönetimi (3)

Görüntü (Sanal) Bellek (3)

• İstenen mantıksal adresi içeren parçası belleğe yüklenir

– İşletim sistemi tarafından disk G/Ç isteği oluşturulur

– Disk G/Ç işlemi yürütülürken bir başka proses çalışır

– Disk G/Ç işlemi tamamlanınca kesme oluşur. İşletim sistemi bekleyen prosesi Hazır durumuna getirir.

Page 6: Bellek Yönetimi (3)

Prosesi Parçalara Ayırmanın Avantajları

• Ana bellekte daha fazla proses bulunabilir– Prosesin sadece gerekli parçaları yüklenebilir– Bellekte çok proses olduğundan en az birinin Hazır durumunda olması olasılığı yüksek• Bir proses tüm ana bellekten daha büyük

olabilir

Page 7: Bellek Yönetimi (3)

Thrashing

• Bellekten atılan bir parçaya hemen ihtiyaç duyulması durumu

• İşlemci zamanı proses parçalarını ana bellek ve ikincil bellek arasında taşımakla geçer.

• Bu soruna karşılık, işletim sistemi, prosesin geçmişine bakarak hangi parçalara ihtiyaç duyacağını veya duymayacağını tahmin eder

Page 8: Bellek Yönetimi (3)

Yerellik Prensibi

• Proses içi program kodu ve veri erişimleri birbirine yakın bölgelerde kalma eğilimindedir

• Kısa bir süre içinde prosesin sadece küçük bir alt kümesi gerekecektir

• Hangi parçaların gerekeceği konusunda tahminde bulunmak mümkün

• Etkin bir çalışma sağlamak mümkün

Page 9: Bellek Yönetimi (3)

Bellek Bölümleme (Tahsisi)

• Bölmeleme (Partitioning)– Sabit– Dinamik

• Basit sayfalama (Paging)• Basit Kesimleme (Segmentation)• Sayfalamalı görüntü bellek (Virtual Memory)• Segmanlamalı görüntü bellek

Page 10: Bellek Yönetimi (3)

Sayfalamalı Görüntü Bellek• Diskin bir bölümü de ana bellek alanıymış gibi

kullanılır.• Her prosesin kendi sayfa tablosu var• Sayfa tablosunun yanında bir de «İndeks tablosu»

tutulur. • Sayfa tablosunda ek olarak– Sayfa Bellekte Kayıtlığı (Sayfanın bellekte olup

olmadığını gösterir)– Değişim Kayıtlığı (Bellekteki ve diskteki kopya

arasında fark olup olmadığını gösterir)– Erişim Hakkı Kayıtlığı bulunur.

Page 11: Bellek Yönetimi (3)
Page 12: Bellek Yönetimi (3)

Sayfalamalı Görüntü Bellek (2)

Page 13: Bellek Yönetimi (3)

Sayfa Tabloları

• Sayfa tablosunun tamamı çok yer gerektirebilir.

• Sayfa tabloları da ikincil bellekte saklanır• Çalışan prosesin sayfa tablolarının bir kısmı da

ana belleğe alınır.

Page 14: Bellek Yönetimi (3)

Translation Lookaside Buffer

• Her görüntü bellek erişiminde iki fiziksel bellek erişimi 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 cep bellek kullanılır: TLB (Translation Lookaside Buffer)

(Çeviri arabellek tamponu)• En yakın zamanda kullanılmış olan sayfa

tablosu kayıtlarını tutar

Page 15: Bellek Yönetimi (3)

TLB kullanımı

Page 16: Bellek Yönetimi (3)

Sayfa Boyu

• Sayfa boyu küçük olursa iç parçalanma daha az• Küçük sayfa boyları olursa proses başına gereken sayfa

sayısı artar.• Proses başına fazla sayfa olması sonucunda sayfa

tablosu boyları büyür.• Sayfa tablosu boyunun büyük olması sonucu tablonun

ikincil bellekte tutulan kısmı daha büyük• İkincil belleklerin fiziksel özellikleri nedeniyle daha

büyük bloklar halinde veri aktarımı daha etkin sayfa ⇒boyunun büyük olması iyi

Page 17: Bellek Yönetimi (3)

Sayfa Boyu

• Zaman içinde proseslerin yakın zamanda eriştikleri sayfaların büyük kısmı bellekte olur. Sayfa hatası düşük olur.

• Sayfa boyu büyük olunca sayfalarda yakın zamanlı erişimlere uzak kısımlar da olur. Sayfa hataları artar.

Page 18: Bellek Yönetimi (3)

Sayfa Boyu

• Birden fazla sayfa boyu olabilir.• Büyük sayfa boyları program komut bölümleri

için kullanılabilir• Küçük boylu sayfalar iplikler için kullanılabilir• Çoğu işletim sistemi tek sayfa boyu destekler

Page 19: Bellek Yönetimi (3)

Adres Dönüştürme Süreci

Adres dönüştürme sürecin de, bellek yöneticisinin gerçekleştirmesi gereken işlemler şunlardır: 1. Bellekte göreve atanacak boş bir sayfa aramak. 2. Bellekte kullanılabilir boş bir sayfa yoksa, yer açmak üzere

ana bellekten çıkarılacak sayfanın seçimini yapmak. 3. Ana bellekten çıkarılacak sayfada değişiklik yapılmışsa

(diskteki kopyasından farklı ise) sayfayı diskteki yerine yazmak.

4. Erişilmek istenen sayfayı ana belleğe yüklemek. 5. Yarıda kesilen komutun işletimini yeniden başlatmak.

Page 20: Bellek Yönetimi (3)

Sayfa Çıkarma Algoritmaları

• Ana bellekten sayfa çıkarma algoritmaları; ana bellekte yer kalmadığı durumlarda diske ana bellekteki bir sayfanın geçici olarak aktarılması işlemini (Ana bellek-disk arası gelgit) en aza indirmeyi hedefler. – İlk giren sayfayı çıkarma – En erken erişilmiş sayfayı çıkarma– En geç erişilecek sayfayı çıkarma– Saat Yöntemi

Page 21: Bellek Yönetimi (3)

21

• Bellekte uzun süre kalan bir sayfanın, gelecek komut işletimlerinde erişilme olasılığının düşük olacağı varsayımına dayanır.

İlk giren sayfayı çıkarma(FIFO)

Page 22: Bellek Yönetimi (3)

22

• Yakın geçmişte kullanılmamış sayfayı çıkarma algoritması olarak bilinir.

En erken erişilmiş sayfayı çıkarma (Least Recently Used - LRU)

Page 23: Bellek Yönetimi (3)

23

• Kuramsal olarak en iyi sonucu verecek algoritmadır. Zira bellekten bir sayfa çıkarmak gerektiğinde, o an en geç erişilecek sayfanın hangisi olduğu tahmin edilecektir.

En geç erişilecek sayfayı çıkarma (Optimal)

Page 24: Bellek Yönetimi (3)

Saat yöntemi• Kullanım biti adını alan ek bit• Sayfa belleğe yüklendiğinde kullanım bitine 1 yüklenir• Sayfaya erişimde kullanım biti bir yapılır• Çevrel kuyruk tutulur. İşaretçi en son belleğe alınan sayfanın

bir sonrasını gösterir.• Bellekten atılacak sayfa belirlenirken bulunan kullanım biti 0

olan ilk sayfa seçilir.• Atılacak sayfa belirlenirken 1 olan kullanım bitleri de sıfırlanır.• Kullanım biti 0 olan yoksa ilk tur tamamlanır, ikinci turda daha

önce sıfır yaptıklarının ilki seçilir.

Page 25: Bellek Yönetimi (3)

Bellek Bölümleme (Tahsisi)

• Bölmeleme (Partitioning)– Sabit– Dinamik

• Basit sayfalama (Paging)• Basit Kesimleme (Segmentation)• Sayfalamalı görüntü bellek (Virtual Memory)• Segmanlamalı görüntü bellek

Page 26: Bellek Yönetimi (3)

26

Kesimli Görüntü Bellek Yönetimi

• Kesim tanım çizelgelerinde– Kesim başlangıç (base)– Boy (limit)– Erişim hakkı– Kesim Bellekte Belirteci(0 veya 1)– Erişim Belirteci– Değişim Belirteci ‘de bulunmalıdır.

Page 27: Bellek Yönetimi (3)

Bellek Bölümleme (Tahsisi)

• Bölmeleme (Partitioning)– Sabit– Dinamik

• Basit sayfalama (Paging)• Basit Kesimleme (Segmentation)• Sayfalamalı görüntü bellek (Virtual Memory)• Segmanlamalı görüntü bellek

• Kesimli-Sayfalı Görüntülü Bellek

Page 28: Bellek Yönetimi (3)

28

Kesimli Sayfalı Görüntü Bellek Yönetimi

• Programların mantıksal adres alanı kesimlere, kesimler de sayfalara ayrılır.

• Değişken boydaki kesimleri sayfa tabanında ele almayı mümkün kılar. (Kesimli görüntü bellek yönetiminin temel sakıncasını ortadan kaldırır)

• Kesimli-sayfalı görüntü bellek yönetiminde mantıksal adresler üç birleşenden oluşur. Bu birleşenler: – Kesim numarası – Kesime göreli sayfa numarası – Sayfa içi adrestir.

Page 29: Bellek Yönetimi (3)

29

• Mantıksal adresten fiziksel adrese geçişte iki temel tablo kullanılır:

• Kesim Tablosu– Kesim Numarası– Başlangıç Adresi (Sayfa tanım Çizelgelerinin başlangıç adresi)– Boyu (ilgili sayfa tanım çizelgesinin boy bilgisi)– Kesime Erişim Denetim Kodu

• Sayfa Tablosu– Sayfa Numarası– Başlangıç Adresi– Sayfa bellekte Belirteci– Erişim Hakkı Belirteci– Değişim Belirteci

Kesimli Sayfalı Görüntü Bellek Yönetimi

Page 30: Bellek Yönetimi (3)

Linux’ta Bellek Yönetimi

• Görüntü Bellek Adresleme– 3 seviyeli sayfa var:• sayfa kataloğu– her aktif prosesin bir sayfa kataloğu var.– boyu bir sayfadır– her kayıt orta aşama sayfa kataloğunun birsayfasına işaret– her aktif proses için bellekte yer almalı

Page 31: Bellek Yönetimi (3)

Linux’ta Bellek Yönetimi (2)

• orta aşama sayfa kataloğu– birden fazla sayfadan oluşabilir– her kayıt sayfa tablosunda bir sayfaya işaret eder• sayfa tablosu– birden fazla sayfadan oluşabilir– her kayıt prosesin bir sanal sayfasına işaret eder

Page 32: Bellek Yönetimi (3)

Linux’ta Bellek Yönetimi 3

– görüntü adres 4 alandan oluşur• en yüksek anlamlı alan sayfa kataloğundaki bir

kayda indis• ikinci alan orta aşama sayfa kataloğundaki bir

kayda indis• üçüncü alan sayfa tablosundaki bir kayda indis• dördüncü alan seçilen sayfadaki offset adresi– platformdan bağımsız olarak 64 bitlik adresler

Page 33: Bellek Yönetimi (3)

Linux’ta Mantıksal AdresSayfa katalog No

Katalog No Sayfa No Ofset

Page 34: Bellek Yönetimi (3)

Linux’ta Bellek Yönetimi 4

• Sayfa atama:– buddy sistemi kullanılır• Sayfa değişimi:– sayfa yöntemine dayalı bir yaklaşım– kullanım biti yerine 8 bitlik yaş alanı var– yaşlı olan (uzun zamandır erişilmemiş) sayfalar öncelikle bellekten atılır

Page 35: Bellek Yönetimi (3)

Windows’ta Bellek Yönetimi

• Windows’ta 2 seviyeli sanal sayfalar bulunur. • Bu sanal sayfaların tamamı 2 boyutlu bir

matris gibi düşünülebilir.• Birinci seviyedeki(boyuttaki) sanal sayfaya

Sayfa Yöneticisi (Page Directory) denir.• Bu kısımda 1024 adet girdi bulunur.

Page 36: Bellek Yönetimi (3)

• İkinci seviyeye (boyuta) ise Sayfa Tablosu (Page Table) denir.

• Bu kısımda ise her biri 1024 girdiden oluşan 1023 tablo bulunmaktadır. Bu tablodaki her bir girdi 4KB’lık bir fiziksel adrese işaret etmektedir.

Page 37: Bellek Yönetimi (3)
Page 38: Bellek Yönetimi (3)

32 bitlik bir Sanal Adresin Parçaları

-Bir 32 bitlik adreste ilk 10 bit Sayfa Yöneticisi Tablosunda indeks olarak kullanılır.-İkinci 10 bit Sayfa Tablosunda indeks olarak kullanılır.-Kalan 12 bit ise fiziksel çerçevede kaç bit ilerde nereye konumlanacağımızı belirler.

Page 39: Bellek Yönetimi (3)
Page 40: Bellek Yönetimi (3)

-Sanal Adres Uzayı Windows'ta 2’ye bölünmüştür.-Bunun küçük adresli 2GB’ı kullanıcı modu, büyükadresli 2GB’ı ise çekirdek modu olarak ayrılmıştır. • Bunun nedeni ise sayfalar ve sayfa tablolarının bu

uzay içerisinde saklanması• Bir kullanıcı prosesinin sisteme müdahale etmesini

engellemektir. Şekilde görüldüğü gibi:

Page 41: Bellek Yönetimi (3)