Bellek Yönetimi (3)

Preview:

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

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)

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

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

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.

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

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

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

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

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.

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

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.

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

TLB kullanımı

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

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.

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

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.

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

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)

22

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

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

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)

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.

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

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.

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

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.

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

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ı

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

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

Linux’ta Mantıksal AdresSayfa katalog No

Katalog No Sayfa No Ofset

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

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.

• İ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.

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.

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

Recommended