BİLGİSAYAR MİMARİLERİ 6.Hafta: Sanal Bellek

Slides:



Advertisements
Benzer bir sunumlar
İşlemci Zaman Planlaması
Advertisements

BİLGİSAYAR NEDİR?.
Bilgi Teknolojisinin Temel Kavramları
Öğr.Gör. Dr. Şirin KARADENİZ
B+-Ağaçları.
Asansör Simülatörünün Ürettiği Sonuçlar Üzerinde Yapılan K-means++ Kümeleme Çalışması ile Trafik Türünün Tahmini M. Fatih ADAK Bilgisayar Mühendisliği.
4 Kontrol Yapıları: 1.Bölüm.
Kurulum Öncesi.
Bellek Yönetimi Process H 2 KB
İşletim Sistemi.
Thread (İş parçacığı/iplik)
Bölüm 9: Sanal Bellek.
Bellek Yönetimi.
AĞ PROTOKOLÜ.
Bilgi Teknolojisinin Temel Kavramları
Dağıtık Ortak Hafızalı Çoklu Mikroişlemcilere Sahip Optik Tabanlı Mimari Üzerinde Dizin Protokollerinin Başarım Çözümlemesi I. Ulusal Yüksek Başarım ve.
Chapter 9: Bellek Yönetimi
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
Yapısal Program Geliştirme – if, if-else
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
BİLGİSAYARIN AÇILMASI.
BÖLÜM 9 Bellek Yönetimi.
Mikroişlemciler ve Mikrobilgisayarlar
DERS 5 PIC 16F84 PROGRAMLAMA.
Ders 2 Donanım Birimleri.
Makine Öğrenmesinde Yeni Problemler
İŞLEM BİRİMLERİ RAM İŞLEMCİ Örnek: ANAKART
CACHE MEMORY Ersin ERSOY
Bilgi Teknolojisinin Temel Kavramları
BİLGİSAYAR DONANIMI Hazırlayan: Emre ŞENTÜRK ( )
Bölüm 10: Sanal Bellek Arkaplan İsteğe bağlı disk belleği
MERKEZ HAKEM KURULU İL GÖZLEMCİ RAPORLARI EYLÜL 2015.
BİLGİSAYAR MİMARİLERİ 12.Hafta: Çok İşlemcili Sistemler
BİLGİSAYAR MİMARİLERİ 4.Hafta: Bellek Hiyerarşisi-2
BELLEK YÖNETİMİ Memory Management
BİLGİSAYAR MİMARİLERİ 1.Hafta: Bilgisayar Mimarisine Giriş
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
BÖLÜM 9 Bellek Yönetimi.
Yrd. Doç. Dr. Sevinç İlhan Omurca OS Bolum 10
BİLGİSAYAR MİMARİLERİ 5.Hafta: Bellek Hiyerarşisi-3
BİLGİSAYAR MİMARİLERİ 7.Hafta: Çoklu-Çevrim İşlemci
BİLGİSAYAR MİMARİLERİ 3.Hafta: Bellek Hiyerarşisi-1
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
BİLGİSAYAR MİMARİLERİ 11.Hafta: Pipeline Sorunları
BİLGİSAYAR MİMARİLERİ 13
BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ
BİLGİSAYAR MİMARİLERİ 10.Hafta: Pipeline İşlemci
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
FAT VE NTFS DOSYA YAPISI
YONT 409 PROJE YÖNETİMİ.
Makine Öğrenmesinde Yeni Problemler YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ.
BİLGİSAYAR NEDİR?.
Bilgi Sistemleri Hafta4
DERS 5 PIC 16F84 PROGRAMLAMA.
Bellek Yönetimi(Memory management)
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
Bilgisayar Donanım ve Sistem Yazılımı
Bilgisayar Donanım ve Sistem Yazılımı
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

BİLGİSAYAR MİMARİLERİ 6.Hafta: Sanal Bellek Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü

Ders Planı Giriş: Zahiri bellek Zahiri bellek tasarımında temel sorunlar Sayfalama organizasyonu Adres map algoritması, fragmantation & relocation Sayfa tablosu Sayfa yerleştirme algoritmaları Demand paging Translation Lookaside Buffer (TLB)

Giriş: Zahiri bellek Zahiri bellek çok büyük bellek görüntüsü oluşturuyor Birçok işin kapladığı alan fiziksel bellekten çok büyük olabilir Her bir prosesin adres alanı fiziksel bellekten büyük olabilir Fiziksel belleğin çok iyi kullanılmasını sağlıyor (utilization yüksek) Bellek yönetimini kolaylaştırıyor (bugün için ana neden) Bellek hiyerarşisinden (ön bellek yapısından) istifade ederek ortalama erişim süresini düşük tutmak İki hafıza birimi de konu ile ilgili: Ana bellek ve ikincil bellek Zahiri adres: Programcının kullandığı adres Zahiri adres alanı: Zahiri adreslerden oluşan bölge Bellek adresi: Fiziksel bellekteki word-byte’ların adresi, gerçek adres

Zahiri bellek tasarımında temel sorunlar İkincil bellekten (sabit diskten) ana belleğe taşınacak veri bloğunun boyutu ne olmalıdır? Ana belleğe blok olarak veri getiriliyor. Eğer ana bellek dolu ise bellekten bazı verilerin atılıp yerine yenisinin konulması lazım. Hangi blok atılacak? (replacement poltikası) Yeni gelen blok ana belleğin neresine konmalı (placement politikası). Eksik blok sadece hata (page fault) olması durumunda ikincil bellekten getirilmelidir. (fetch/load politikası)

Sayafalama organizasyonu Zahiri ve fiziksel adres alanı eşit boyutta bloklara ayrılır Zahiri bloklara sayfa – page denir Fiziksel bloklara çerçeve – frame denir

Adres map V = {0, 1, 2, …, n-1} zahiri adres alanı M = {0, 1, 2, …, m-1} fiziksel adres alanı MAP: V  M U {Ø} adres map fonksiyonu MAP(a) = a’ Eğer zahiri adres a daki veri, fiziksel adres a’ de mevcutsa MAP(a) = Ø Eğer zahiri adres a daki veri bellekte yok ise

Sayfa tablosu (page table) Sayfa tablosu, adres dönüşümünü (address translation) sağlamak için sıkça kullanılır

Sayfa organizasyonu

Adres mapping (haritalama) algoritması Eğer V = 1 ise sayfa page table’da belirtilen adreste, ana bellektedir aksi halde, sayfa ikincil bellektedir Erişim izinleri: R: salt oku, R/W: yaz-oku, X: icra edilebilir Eğer erişim izinleri belirlenen erişim izinleri ile uyumlu değilse  «protection_violation_fault» oluşur Eğer V = 0 ise  «page_fault» oluşur Protection Fault (koruma hatası): Erişim hakları ihlali; kesme «trap» oluşmasına sebep olur Page fault (sayfa hatası): Sayfa ana bellekte değil. Bu durumda da kesme «trap» oluşur, genelde beraberinde context switch oluşur. Proses sayfası ikincil bellekten getirilene kadar bekletilir.

Fragmentation ve Relocation Fragmentation: Parçalama nedenlerinden dolayı bellek yetersizliği Relocation: Program veya verinin bellekte başka bölgelere taşınabilmesi (tüm pointer değerlerinin ayarlanmasını gerektirir) Internal Fragmentation: Sayfa içinde kullanılamayan kısımlar

Optimum sayfa boyutu Fragmentation’ı minimum yapacak sayfa boyutu seçilir Büyük sayfa boyutu  internal fragmentation kötüleşir Küçük sayfa boyutu  çok fazla sayfa adedi  büyük sayfa tablosu Genel eğilim daha büyük sayfa boyutu yönündedir RAM fiyatı düştükçe ana bellek büyüyor İşlemci hızı ile disk erişim hızı arasındaki açık gittikçe artmaktadır Programcılar daha büyük zahiri adres istiyorlar Birçok makine 4 Kbyte sayfa boyutuna sahip ve gittikçe artıyor

Sayfa yerleştirme (replacement) algoritmaları Ön-bellek replacement algoritması gibi LRU (Least Recently Used): Yakın zamanda kullanılmayan sayfa seçilir Eski erişimlerin tutulmasını gerektirir, gerçeklenmesi zordur İyi performans, lokality prensibi Örnek: En son erişilen sayfa listesi (sıralı olarak) : 10, 12, 9, 7, 11, 10 olsun; Bellekte olmayan 9 nolu sayfa erişilmek istendiğinde ve bellek dolu ise, hangi sayfa kaldırılıp yeni sayfa yerine konmalıdır? (LRU’ya göre)

Sayfa yerleştirme (replacement) algoritmaları Not Recently Used: (Yakında kullanılmayan) Her sayfa için bir referans bayrağı (biti) kullanılabilir : Eğer bayrak = 1 ise sayfa yakın geçmişte kullanıldı (referans) Diğer durumlarda bayrak = 0 Eğer bir sayfa kaldırılacaksa, referans biti 0 olanı kaldır. Bu sayfa bu yakında kullanılmayan sayfadır. NRU’nun saat gerçeklemesi:

Talep karşılığında sayfa getirme (demand paging) Getirme politikası: Sayfa belleğe ne zaman getirildi? Eğer bri talep sonrası getirildi ise buna demand-paging getirme politikası denir Bir başka sayfa getirme yöntemi: Gelecek referansları tahmin ederek, henüz ihtiyaç olmayan sayfaları önceden getirmek Sayfa transfer zaman kayıplarını (overhead) azaltır Gelecek referansları tahmin etmek çok zordur Birçok sistem demand-paging sistemini pre-paging olmadan gerçekler (Pre-fetching etkisini elde etmenin bir diğer yolu da sayfa boyutunu arttırmaktır.)

Zahiri adres ve ön bellek VAPA dönüşümü bir fazla bellek erişimi gerektiriyor Bu durum, ön bellek erişimini çok geciktirmektedir ve bu en hızlı olunması gereken yerdir

Neden ön belleğe PA ile erişilir? VA ön belleklerinin problemi: iki farklı VA aynı fiziksel adrese map edebilir (sinonim problemi)  iki farklı ön bellek verisi aynı fiziksel adres için veri tutuyor olabilir Update (güncelleme): Tüm ön bellek verileri aynı fiziksel adres ile güncellenmeli aksi halde bellek tutarsız olur Bu durumun çözümlenmesi oldukça karışık donanım gerektirir.

TLB: Adres dönüşümünün hızlı yapılması TLB (Translation Lookaside Buffer): Adres dönüşümünün hızlandırılması.

Translation Lookaside Buffer Tamamıyla diğer ön-bellek gibi. TLB dirk map, fully associative ya da set associative olarak organize edilebilir. TLB’ler genelde küçüktür (128-256 satırlıktır). Bu çok hızlı bilgisayarlar için bile yeterlidir. Bu nedenle genelde fully-associative ön bellek olarak gerçeklenir. Birçok orta ölçekli makinelerde küçük n-way set associative ön bellek kullanılır