Bölüm 9: Sanal Bellek

Benzer belgeler
Background (Arka Plan)

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemlerine Giriş

BELLEK YÖNETY. Bellek Yönetimi

Sanal Bellek (Virtual Memory)

Bölüm 8: Ana Bellek. Operating System Concepts 9 th Edition. Mehmet Demirci tarafından çevrilmiştir.

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

BELLEK YÖNETY NETİMİ. Bellek Yönetiminin Gerektirdikleri. Bellek Yönetimi. Bellek Yönetiminin Gerektirdikleri. Bellek Yönetimi Teknikleri

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

İşletim Sistemlerine Giriş

İşletim Sistemleri (Operating Systems)

Görüntü Bellek. Ana Bellek. Fiziksel Adres. Belek Uzayı. Bellek hiyerarşisi. Hız Maliyet (+) Ana Bellek. Boyut (+) DISK. Görüntü Adres.

Bilgisayar İşletim Sistemleri BLG 312

William Stallings Computer Organization and Architecture 9 th Edition

İşletim Sistemlerine Giriş

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemlerine Giriş

Bölüm 8: Ana Bellek 8.1

İşletim Sistemlerine Giriş

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Fiziksel Veritabanı Modelleme

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri (Operating Systems)

Bölüm 7: Kilitlenme (Deadlocks)

BM-311 Bilgisayar Mimarisi

İşlem Yönetimi (Process Management)

Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir.

BM-311 Bilgisayar Mimarisi

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İşletim Sistemlerine Giriş

BTP 205 İŞLETİM SİSTEMLERİ

BELLEK Yönetimi. Ana Bellek Yönetimi. Ana Bellek Yönetimi

B-Tree Dosya Sistemi (BTRFS)

YZM 3102 İşletim Sistemleri

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

Yrd.Doç.Dr. Celal Murat KANDEMİR

Yrd. Doç. Dr. Caner ÖZCAN

Çekirdek Nedir? Ne yapar?

Bilgisayarların Gelişimi

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

Göstericiler (Pointers)

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

Windows XP: Virtual Memory / Sanal Bellek Perşembe, 07 Eylül :51 - Son Güncelleme Salı, 12 Eylül :07

Bilgilerin Uzun Vadeli Saklanması

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

Bölüm 4: Threads (İş Parçaları)

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Kütük Yönetimi. Kütük Yönetim Sisteminin İşlevleri. Hacettepe Üniversitesi Kavramsal Kütük Modeli.

Yrd. Doç. Dr. Caner ÖZCAN

İşletim Sistemlerine Giriş

İŞLETİM SİSTEMLERİ. (Operating Systems)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Bilgisayar İşletim Sistemleri BLG 312

Yrd. Doç. Dr. Caner ÖZCAN

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

İşletim Sistemlerine Genel Bakış

Şekil. 64 Kelimelik Yığıtın Blok Şeması

BTP 205 İŞLETİM SİSTEMLERİ

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

Bilgisayarım My Computer. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Metin İşlemleri, Semboller

ASENKRON (Eş Zamanlı Olmayan) HABERLEŞME ARA YÜZEYİ

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

BM-311 Bilgisayar Mimarisi

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

Bilgisayarda Programlama. Temel Kavramlar

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

1.1. Yazılım Geliştirme Süreci

Veritabanı. Ders 2 VERİTABANI

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Chapter 12: Depolama Sistemleri

Bilgisayarım My Computer

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

William Stallings Computer Organization and Architecture 9 th Edition

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

DİSK DEPOLAMA ALANLARI

2. Belgeye Metin Ekleme

İşletim Sistemi. BTEP205 - İşletim Sistemleri

Transkript:

Bölüm 9: Sanal Bellek Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013

Bölüm 9: Sanal Bellek Temeller İsteğe bağlı sayfalama Yazma olunca kopyalama (Copy-on-Write) Sayfa değişimi Çerçeve ayırma Thrashing Belleğe eşlenen dosyalar Çekirdek belleği ayırma İşletim sistemi örnekleri 9.2 Silberschatz, Galvin and Gagne 2013

Hedefler Sanal bellek sisteminin faydaları İsteğe bağlı sayfalama (demand paging), sayfa değiştirme algoritmaları, sayfa çerçevesi kavramları Çalışma kümesi modelinin temelleri Paylaşılan bellek ile belleğe eşlenen dosyalar arasındaki ilişki Çekirdek belleğinin yönetimi 9.3 Silberschatz, Galvin and Gagne 2013

Temeller Kod yürütülmek için bellekte olmalıdır, ama programın tümü birden pek kullanılmaz. hata kodları, az kullanılan rutinler, büyük veri yapıları Kısmen yüklenmiş programı yürütme kabiliyeti varsa Program fiziksel belleğin sınırlarıyla kısıtlı değildir Program çalışırken daha az bellek harcar -> aynı anda daha fazla program çalışabilir CPU kullanımı ve üretilen iş artar, yanıt süresi ve iş bitirme süresi artmaz Değiş-tokuş için daha az I/O gerekir -> programlar daha hızlı çalışır 9.4 Silberschatz, Galvin and Gagne 2013

Temeller Sanal bellek mantıksal belleğin fizikselden ayrılması Programın sadece bir kısmı bellekte olsa bile yürütme mümkün Mantıksal adres alanı fiziksel adres alanından çok daha büyük olabilir Adres alanları birçok süreç tarafından paylaşılabilir Daha etkin süreç oluşturma Daha fazla eş zamanlı çalışan program Daha az I/O gereksinimi (yükleme ve değiş-tokuş için) 9.5 Silberschatz, Galvin and Gagne 2013

Temeller Sanal adres alanı sürecin bellekte nasıl tutulduğuna dair mantıksal görünüm Genelde 0 dan başlar, alanın sonuna kadar bitişik adresler içerir Fiziksel bellek sayfa çerçevelerine bölünerek düzenlenir MMU mantıksalı fiziksele eşler Sanal bellek şu yollarla gerçekleştirilebilir: İsteğe bağlı sayfalama (Demand paging) İsteğe bağlı bölütleme (Demand segmentation) 9.6 Silberschatz, Galvin and Gagne 2013

Fiziksel Bellekten Daha Büyük Sanal Bellek 9.7 Silberschatz, Galvin and Gagne 2013

Sanal Adres Alanı Stack en yüksekten başlayıp aşağıya büyür, heap aşağıdan yukarıya büyür. Adres alanını daha iyi kullandırır. İkisinin arasında kullanılmayan alan boşluk olarak kalır. Heap veya stack yeni sayfaya ihtiyaç duyana dek fiziksel bellek gerekmez Seyrek (sparse) adres alanlarına imkan verir, boşluklar sayesinde kullanılan bellek büyüyebilir. Sistem kütüphaneleri sanal adres alanına eşlenerek paylaşılır. Sayfalarının okuma-yazma izinleriyle sanal adres alanına eşlenmesi sonucu paylaşılan bellek yapısı gerçekleştirilir. fork() esnasında sayfalar paylaşılabilir, böylece süreç oluşturma hızlanır. 9.8 Silberschatz, Galvin and Gagne 2013

Sanal Bellekte Paylaşılan Kütüphane 9.9 Silberschatz, Galvin and Gagne 2013

İsteğe Bağlı Sayfalama Sürecin tümü yükleme zamanında belleğe getirilebilir, Veya bir sayfa ancak gerektiğinde belleğe getirilir. Daha az I/O Daha az bellek gereksinimi Daha hızlı yanıt Daha çok kullanıcı Değiş-tokuşlu bir sayfalama sistemine benzer (sağda) Sayfaya ihtiyaç var referans geçersiz referans abort (iptal) bellekte değil belleğe getir Tembel değiş-tokuşçu Sayfa lazım olmadıkça asla belleğe alma 9.10 Silberschatz, Galvin and Gagne 2013

Temel Kavramlar With swapping, pager guesses which pages will be used before swapping out again Instead, pager brings in only those pages into memory How to determine that set of pages? Need new MMU functionality to implement demand paging Gereken sayfalar zaten bellekteyse, Normal sayfalamayla farkı yok Gereken sayfa bellekte değilse, Bunu tespit edip sayfayı depodan belleğe almalı Program davranışı değişmemeli Programcı kod değiştirmek zorunda kalmamalı 9.11 Silberschatz, Galvin and Gagne 2013

Geçerli-Geçersiz Biti Her sayfa tablosu girdisine bağlı bir geçerli-geçersiz biti vardır (v bellekte, i bellekte değil) Başta bütün girdiler için bu bit i Örnek sayfa tablosu: MMU adres çevrimi sırasında, tablo girdisindeki geçerli-geçersiz biti i ise sayfa hatası (page fault) 9.12 Silberschatz, Galvin and Gagne 2013

Bazı Sayfalar Bellekte Olmadığında Sayfa Tablosu 9.13 Silberschatz, Galvin and Gagne 2013

Sayfa Hatası Bir sayfaya ilk kez referans olursa, OS e trap gider: page fault (sayfa hatası) 1. OS başka bir tabloya bakar: Geçersiz referans abort (iptal) Referans geçerli, yalnızca sayfa bellekte değil 2. Boş çerçeve bul 3. Disk işlemiyle sayfayı çerçeve içine al 4. Tablolarda değişiklik yaparak sayfanın bellekte olduğunu bildir Geçerlilik biti = v 5. Sayfa hatasına yol açan komutu yeniden çalıştır 9.14 Silberschatz, Galvin and Gagne 2013

Sayfa Hatası Olduğunda Adımlar 9.15 Silberschatz, Galvin and Gagne 2013

İsteğe Bağlı Sayfalama Uç durum süreç başladığında bellekte hiçbir sayfa olmasın OS komut işaretçisini sürecin ilk komutuna işaret ettirir, sayfa bellekte yok -> sayfa hatası Diğer sayfaların tümü için ilk erişimde aynısı olur Saf isteğe bağlı sayfalama Aslında bir komut birkaç sayfaya erişebilir -> birkaç sayfa hatası Referans yerelliği (locality of reference) sayesinde problem biraz hafifler İsteğe bağlı sayfalama için donanım desteği gerekir Geçerlilik biti olan sayfa tablosu İkincil bellek Komutu yeniden başlatma 9.16 Silberschatz, Galvin and Gagne 2013

İsteğe Bağlı Sayfalamanın Performansı Aşamalar (en kötü durum) 1. OS e trap gider 2. Kullanıcı registerları ve süreç durumunu saklanır 3. Sayfa hatası olduğu tespit edilir 4. Sayfa referansının geçerli olduğu anlaşılır ve diskte sayfanın yeri bulunur 5. Diskten boş bir çerçeveye okuma başlatılır: 1. Okuma isteği karşılanana kadar cihaz kuyruğunda beklenir 2. Cihazın arama ve gecikme süreleri beklenir 3. Sayfanın çerçeveye aktarımı başlatılır 6. Beklerken CPU yu başkası alır 7. Disk I/O altsisteminden kesme alınır (I/O bitti) 8. Diğer kullanıcının registerları ve süreç durumu saklanır 9. Kesmenin diskten geldiği anlaşılır 10. Sayfa tablosu ve diğer tablolar düzeltilip sayfanın bellekte olduğu gösterilir 11. CPU nun tekrar bu sürece ayrılması beklenir 12. Kullanıcı registerları, süreç durumu, yeni sayfa tablosu yüklenir, kesilen komut sürdürülür 9.18 Silberschatz, Galvin and Gagne 2013

İsteğe Bağlı Sayfalamanın Performansı Üç büyük iş Kesmeye servis dikkatli kodlamayla birkaç yüz komut gerekir Sayfayı okuma uzun sürer Süreci yeniden başlatma kısa sürer Sayfa Hatası Oranı p, 0 p 1 p = 0 ise hata yok p = 1 ise her referans bir hata Gerçek Erişim Süresi (Effective Access Time) (EAT) EAT = (1 p) x bellek erişimi + p (sayfa hatası masrafı + sayfa çıkarma + yerine sayfa koyma) 9.19 Silberschatz, Galvin and Gagne 2013

İsteğe Bağlı Sayfalama Örneği Bellek erişim zamanı = 200 ns Ortalama sayfa hatası servis zamanı = 8 ms EAT = (1 p) x 200 + p (8 ms) = (1 p) x 200 + p x 8,000,000 = 200 + p x 7,999,800 Sayfa hatası oranı 1/1000 ise EAT = 8.2 mikrosaniye. 40 kat daha yavaş!! Performans düşüşü < %10 olsun istersek, 220 > 200 + 7,999,800 x p 20 > 7,999,800 x p p <.0000025 400,000 bellek erişiminde bir sayfa hatasından daha az hata olmalı 9.20 Silberschatz, Galvin and Gagne 2013

Yazma Olunca Kopyalama Copy-on-Write (COW) sayesinde ebeveyn ve çocuk süreçler başta aynı sayfaları paylaşabilir. Eğer biri paylaşılan bir sayfayı değiştirirse o zaman sayfa kopyalanır COW ile süreç oluşturma daha verimli olur çünkü sadece değişen sayfalar kopyalanır Genelde boş sayfalar sayfa havuzundan bulunur Havuzda her zaman boş çerçeveler olmalıdır yoksa sistem yavaşlar 9.22 Silberschatz, Galvin and Gagne 2013

Süreç 1 Sayfa C yi Değiştirmeden Önce 9.23 Silberschatz, Galvin and Gagne 2013

Süreç 1 Sayfa C yi Değiştirdikten Sonra 9.24 Silberschatz, Galvin and Gagne 2013

Boş Çerçeve Yoksa? Sayfa değişimi bellekte kullanılmayan bir sayfa bul, dışarı at Algoritma sonlandır? değiş-tokuş? Performans açısından istediğimiz en az sayfa hatasına yol açan bir algoritmadır. Aynı sayfa belleğe defalarca gelebilir. 9.25 Silberschatz, Galvin and Gagne 2013

Sayfa Değişimi Sayfa hatası servis rutininde bir değişiklik ile sayfa değişimi getirilebilir, böylece bellekten sınırın üstünde yer ayrılmaz. Sayfa aktarım masrafını azaltmak için kirli (dirty) bit kullanılır, yalnızca değişen sayfalar diske yazılır. Sayfa değişimiyle mantıksal-fiziksel bellek arasındaki ayrışma tamamlanır. 9.26 Silberschatz, Galvin and Gagne 2013

Sayfa Değişimi Gereksinimi 9.27 Silberschatz, Galvin and Gagne 2013

Temel Sayfa Değişimi 1. İstenen sayfanın yerini diskte bul. 2. Boş bir çerçeve bul: - Boş çerçeve yoksa, sayfa değişimi algoritması kullanarak kurban çerçeve seç. - Kurban çerçeve kirliyse diske yaz. 3. İstenen sayfayı çerçeveye getir; sayfa ve çerçeve tablolarını güncelle. 4. Hataya sebep olan komutu yeniden başlat ve devam et. Sayfa hatası durumunda iki sayfa aktarımı gerçekleşebilir EAT artar. 9.28 Silberschatz, Galvin and Gagne 2013

Sayfa Değişimi 9.29 Silberschatz, Galvin and Gagne 2013

Sayfa ve Çerçeve Değişim Algoritmaları Çerçeve ayırma algoritması şunları belirler: Her sürece kaç çerçeve verilecek Hangi çerçeveler değiştirilecek Sayfa değişim algoritması İlk erişimde ve tekrar erişimde en düşük sayfa hatası oranı istenir. Algoritmayı değerlendirmek için belli bir bellek referans dizisi denenir ve bu dizi için kaç sayfa hatası oluştuğuna bakılır. Aynı sayfaya tekrar erişim sayfa hatasına yol açmaz. Sonuçlar boş çerçeve sayısına bağlıdır. Örneklerde referans dizisi aşağıdaki sayfa numaralarından oluşur: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1 9.30 Silberschatz, Galvin and Gagne 2013

Sayfa Hatası vs. Çerçeve Sayısı 9.31 Silberschatz, Galvin and Gagne 2013

İlk Giren İlk Çıkar (FIFO) Algoritması Referans dizisi: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1 3 çerçeve (süreç başına 3 sayfa aynı anda bellekte bulunabilir) 15 sayfa hatası Referans dizisine göre bu sayı değişebilir. Çerçeve eklemek sayfa hatalarını artırabilir! Belady s Anomaly Sayfaların yaşları nasıl takip edilir? FIFO kuyruğu kullanarak 9.32 Silberschatz, Galvin and Gagne 2013

Belady s Anomaly 9.33 Silberschatz, Galvin and Gagne 2013

Optimal Algoritma En uzun süre kullanılmayacak sayfayı değiştir Örnekte 9 sayfa hatası Bunu nereden bileceğiz? Geleceği okuyamayız Bu algoritmayı, uygulanan algoritmanın ne kadar optimale yakın olduğunu ölçmekte kullanırız. 9.34 Silberschatz, Galvin and Gagne 2013

Least Recently Used (LRU) Algoritması En uzak geçmişte kullanılmış (en uzun süredir kullanılmayan) sayfayı değiştir Gelecek yerine geçmiş bilgisini kullan Her sayfayla ilişkili son kullanım zamanı (geçmişe dönük) 12 hata better than FIFO dan daha iyi, Optimalden daha kötü Sık kullanılan iyi bir algoritma Nasıl gerçekleştirilir? 9.35 Silberschatz, Galvin and Gagne 2013

Sayaçlı gerçekleştirim LRU Algoritması Her sayfada bir sayaç vardır; sayfaya her referansta saat değeri sayaca kopyalanır. Sayfa değişimi gerektiğinde sayaçlara bakarak en küçük değer bulunur. Tabloda arama gerekir. Stackli gerçekleştirim Sayfa numaralarından oluşan bir stack tutulur, her elemanda iki bağ (link) vardır. Sayfa referansı olunca: Sayfa numarası tepeye çıkarılır 6 pointer değişir Her güncelleme daha masraflıdır Sayfa değişimi sırasında arama gerekmez 9.36 Silberschatz, Galvin and Gagne 2013

Stack ile LRU Gerçekleştirimi 9.37 Silberschatz, Galvin and Gagne 2013

LRU ya Yaklaşım Algorithmaları LRU özel donanım gerektirir ve yavaştır Referans biti Her sayfayla ilişkili bir bit, başta = 0 Sayfaya referans olunca bit 1 yapılır. Değişim gerekince biti 0 olan herhangi bir sayfayı değiştir Ancak referans sırası bilinmez İkinci şans algoritması FIFO artı donanım tabanlı referans biti Saat değişimi Değişecek sayfanın referans biti = 0 -> değiştir referans biti = 1 ise: referans bitini 0 yap, sayfayı bellekte bırak kuyrukta sonraki sayfayı aynı kurallarla değiştir 9.38 Silberschatz, Galvin and Gagne 2013

İkinci Şans Algoritması 9.39 Silberschatz, Galvin and Gagne 2013

Gelişmiş İkinci Şans Algoritması Referans bitiyle birlikte değişme biti kullan (referans, değişme) çiftini al 1. (0, 0) hem kullanılmamış hem değişmemiş değişime en uygun 2. (0, 1) kullanılmamış ama değişmiş o kadar iyi değil çünkü değiştirmeden önce diske yazmak lazım 3. (1, 0) kullanılmış ama temiz yakında tekrar kullanılabilir 4. (1, 1) kullanılmış ve değişmiş yakında tekrar kullanılabilir ve değiştirmeden önce diske yazmak lazım İkinci şans algoritmasını kullan ama sayfayı en düşük sınıftan seç Dairesel kuyruğu birkaç kez aramak gerekebilir. 9.40 Silberschatz, Galvin and Gagne 2013

Sayma Algoritmaları Her sayfaya kaç kere referans olduğunun sayısını tut Yaygın değil En az sıklıkta kullanılan (Least Frequently Used) (LFU) Algoritması: En küçük sayıya sahip sayfayı değiştir En sık kullanılan (Most Frequently Used) (MFU) Algoritması: Sayısı küçük olan sayfalar belleğe yeni gelmiştir, eskilerden değiştir 9.41 Silberschatz, Galvin and Gagne 2013

Sayfa Buffering Algoritmaları Daima boş çerçeve havuzu bulunsun Çerçeve gerekince boşta hazırdır, hata servisi sırasında bulunması gerekmez. Sayfa boş çerçeve içine alınır ve boşaltılıp havuza eklenmek üzere kurban seçilir. Uygun olunca kurban sayfa çıkartılır. Hatta, değişen sayfaların listesini tutalım Destek depo boş dururken sayfaları oraya yazıp biti temizleyelim. Hatta ve hatta, havuza atılan çerçevenin içeriğine dokunmayalım Çerçeve kullanılmadan önce içindeki sayfaya tekrar referans gelirse, sayfayı diskten yüklemeden bu çerçeveden alırız. Kurbanı yanlış seçme durumunda cezayı hafifletir. 9.42 Silberschatz, Galvin and Gagne 2013

Uygulamalar ve Sayfa Değişimi Bu algoritmaların tümü gelecekteki erişimlerle ilgili tahmin içerir Bazı uygulamalar daha iyi bilgiye sahiptir örn. veritabanları Belleği yoğun kullanan uygulamalar çift arabellek kullanabilir OS sayfanın kopyasını bellekte I/O buffer olarak tutar Uygulama sayfayı bellekte kendi işi için tutar OS uygulamaya doğrudan diske erişim verip aradan çekilebilir Raw (ham) disk modu 9.43 Silberschatz, Galvin and Gagne 2013

Çerçeve Atama Her sürecin ihtiyacı olan minimum çerçeve sayısı bellidir. Örnek: IBM 370 SS MOVE komutu için 6 sayfa: komut 6 byte, 2 sayfa tutabilir from için 2 sayfa to için 2 sayfa Maksimum ise sistemdeki toplam çerçeve sayısıdır. İki ana atama yöntemi Sabit atama Öncelikli atama 9.44 Silberschatz, Galvin and Gagne 2013

Sabit Atama Eşit atama Örneğin, 100 çerçeve ve 5 süreç varsa, her sürece 20 çerçeve Birazı boş çerçeve havuzunda tutulabilir Orantılı atama Süreç boyutuna göre atama yapılır Süreç boyutları ve çoklu programlama derecesi değiştiği için dinamik olmak zorunda s S s m total number of a i i size of process i allocation for p i p i frames si m S m 62 s s a a 1 2 1 2 10 127 10 62 4 137 127 62 57 137 9.45 Silberschatz, Galvin and Gagne 2013

Öncelikli Atama Orantılı atama yap ama boyut yerine öncelik kullan Eğer P i süreci sayfa hatasına yol açarsa, Kendi çerçevelerinden birini değiştirmek üzere seç, Veya, daha düşük öncelikli bir sürecin çerçevelerinden seç 9.46 Silberschatz, Galvin and Gagne 2013

Genel vs. Yerel Atama Genel yer değiştirme (Global replacement) süreç, değiştirilecek sayfayı bütün çerçeveler içinden seçer, yani bir süreç diğerinden çerçeve alabilir. Süreç yürütme zamanı çok değişken olabilir Ama üretilen iş daha büyüktür (daha yaygın) Yerel yer değiştirme (Local replacement) her süreç sadece kendine atanmış çerçeveleri değiştirebilir. Her sürecin performansı sadece kendisine bağlı, daha düzgün ve tahmin edilebilir dağılımlı Ama bellek verimsiz kullanılabilir 9.47 Silberschatz, Galvin and Gagne 2013

Thrashing (Boşa Çalışma) Süreç yeterli sayfaya sahip değilse sayfa hatası oranı çok yüksek olur Sayfa erişiminde sayfa hatası olur Bellekteki bir çerçeve değiştirilir Ancak değiştirilen çerçeve az sonra tekrar lazım olur Sonuçta: Düşük CPU kullanımı OS sisteme yeni süreçler eklenmesi gerektiğini süşünür Thrashing sürecin sürekli sayfaları belleğe alıp bellekten atmakla meşgul olması 9.49 Silberschatz, Galvin and Gagne 2013

Thrashing (Boşa Çalışma) 9.50 Silberschatz, Galvin and Gagne 2013

İsteğe Bağlı Sayfalama ve Boşa Çalışma İsteğe bağlı sayfalama neden çalışır? Locality (yerellik) modeli Süreç bir alandan diğerine göç eder Alanlar arasında kesişim olabilir Boşa çalışma neden ortaya çıkar? alan boyutu > toplam bellek boyutu Yerel veya öncelikli sayfa değişimi kullanılarak etki azaltılabilir 9.51 Silberschatz, Galvin and Gagne 2013

Bellek Referans Örüntüsünde Yerellik 9.52 Silberschatz, Galvin and Gagne 2013

Çalışma Kümesi (Working set) Modeli çalışma kümesi penceresi sabit sayıda sayfa referansı Örnek: 10.000 komut WSS i (working set of Process P i ) = en yakın süresince referans yapılan toplam sayfa sayısı fazla küçükse tüm locality alanını kapsamaz fazla büyükse birkaç locality alanını birden kapsar = tüm programı kapsar D = WSS i toplam çerçeve talebi m: boştaki çerçeve sayısı D > m Thrashing D > m ise, süreçlerden birini askıya al ve sayfalarını bellekten at 9.53 Silberschatz, Galvin and Gagne 2013

Çalışma Kümesi Takibi Aralık zamanlayıcı + referans biti Örnek: = 10,000 Zamanlayıcı 5000 birim zaman sonra kesme üretir Bellekte her sayfa için 2 bit tutulur Kesme gelince bitler kopyalanır ve 0 yapılır Sayfa hatası olduğunda, referans biti ve bellekteki bitlerden biri 1 ise sayfa çalışma kümesinde Yeterince kesin değil 10 bit ve 1000 birim zamanda bir kesme daha fazla kesme masrafı artırır. 9.54 Silberschatz, Galvin and Gagne 2013

Sayfa Hatası Sıklığı Çalışma kümesine göre daha doğrudan çözüm Kabul edilebilir sayfa hatası sıklığı (page-fault frequency) (PFF) aralığı belirlenir ve yerel sayfa değişimi uygulanır. Gerçek hata oranı daha düşükse, süreç çerçeve kaybeder Gerçek hata oranı daha yüksekse, süreç çerçeve kazanır 9.55 Silberschatz, Galvin and Gagne 2013

Belleğe Eşlenen Dosyalar Belleğe eşlenen dosya I/O ile disk bloğu bellekte bir sayfaya eşlenir, böylece dosya I/O rutin bellek erişimi haline gelir. Dosya ilk başta isteğe bağlı sayfalamayla okunur. Sayfa kadarlık bir parça, dosyadan fiziksel bellek sayfasına okunur. Bundan sonraki okuma ve yazmalar normal bellek erişimi gibi gerçekleşir. Faydası: Dosya erişimini basitleştirir ve hızlandırır (read() ve write() system çağrıları yerine bellek erişimi) Bellekte sayfa paylaşımına da izin verir. Yalnız yazılan veri ne zaman diske gider? Periyodik olarak ve/veya close() ile 9.57 Silberschatz, Galvin and Gagne 2013

Belleğe Eşlenen Dosyalar 9.59 Silberschatz, Galvin and Gagne 2013

Belleğe Eşlenen I/O ile Paylaşılan Bellek 9.60 Silberschatz, Galvin and Gagne 2013

Bölüm 9 Sonu Silberschatz, Galvin and Gagne 2013