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

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "BELLEK Yönetimi. Ana Bellek Yönetimi. Ana Bellek Yönetimi"

Transkript

1 BELLEK Yönetimi Hafta 13 Bellek bilgisayarı oluşturan 3 ana bileşenden biridir. (MİB bellek I/O ). İşlemcinin çalıştırdığı programlar ve programa ait bilgiler bellek üzerinde saklanır. Bellek geçici bir depolama alanıdır. Bu nedenle bilgisayarlarda programları daha uzun süreli ve kalıcı olarak saklamak için farklı birimler mevcuttur. 1 2 Ana Bellek Yönetimi Bir bilgisayar sisteminin en önemli donanımsal kaynaklarından biri olan ana belleğin, görevler arasında paylaştırılması ana belleğin yönetimi olarak adlandırılır. Programların ve işlenen verilerin ana bellekte yer alacakları konumların belirlenmesi, düzenlenmesi, izlenmesi, gereksenen alanların sağlanması, bu alanların dışına taşmaların denetlenmesi gibi işlevler hep bellek yönetimi kapsamında ele alınır. 3 Ana Bellek Yönetimi Bilgisayar sistemlerinde bellekler, ana bellek ve ikincil bellekler olarak iki gruba ayrılır. Ana bellek, aynı zamanda canlı bellek, yarı iletken bellek, RAM bellek gibi adlarla da anılır. İkincil belleklerin, işletim dışı verilerin saklandığı ve korunduğu, bir bellek türü olduğu bilinir. 4 ROM, RAM, PROM, EPROM, EEPROM, FLASH MEMORY, VE ÖNBELLEK; OLARAK SAYILABILIR. ROM yapımcı veya kullanıcı tarafından bir daha değiştirilmemek üzere konulan program komutlarını içerir. RAM da saklanan bilgiler değiştirilebilir. RAM daki bilgilere erişim, disk ya da disket sürücülerindeki erişimle karıştırılmayacak kadar hızlıdır

2 RAM bellekler DRAM (Dynamic RAM) ve SRAM (Statik RAM) olmak üzere iki çeşit. Dinamik RAM tipi bellekler veriyi tutabilmek için sabit elektrik akımına ihtiyaç duyarlar, bu yüzden depolama hücrelerinin her saniyede yüzlerce kez (ya da her birkaç milisaniyede bir) tazelenmesiyani elektronik yüklerle yeniden yüklenmesigerekir. Statik RAM elektrik olduğu sürece içinde veri bitlerini saklayan bir RAM dir. 7 PROM un özellikleri temelde ROM la aynıdır. Bir kez programlanır ve bir daha programı değiştirilemez ya da silinemez. Ancak PROM un üstünlüğü yonganın fabrikada yapılırken programlanmak zorunda olmayışıdır. 8 RAM ların elektrik kesildiğinde bilgileri koruyamaması ROM ve PROM ların yalnızca bir kez programlanabilmeleri bazı uygulamalar için sorun yaratmıştır. EPROM programlayıcı aygıt yardımı ile bir EPROM defalarca programlanabilir, silinebilir. 9 EEPROM un özel bir uygulaması FLASH MEMORY dir. Aralarındaki en önemli fark ise EEPROM a bilgilerin byte byte yazılması FLASH lara ise bilgilerin sabit bloklar halinde yazılmasıdır. 10 Bu sabit bloklar halinde yazılma özelliği FLASH MEMORY i EEPROM a daha hızlı yapmıştır. EEPROM larda olduğu gibi FLASH MEMORY nin de bir yaşam süresi vardır. Bu den kez yazmaya izin verebilecek şekildedirler. 11 Normalde işlenecek bilgilerin hepsi ANA BELLEK (RAM) de bulunur. Bu yüzden işlemcinin her veri işleme ihtiyacında ANA BELLEĞE gitmesi zaman kaybına yol açacaktır ve işlemci yeteri kadar verimli kullanılmayacaktır. İşte bu yavaşlığı önlemek için önbellekler kullanılır. 12 2

3 Önbellek aslında SRAMlerden oluşmuş bellek topluluğudur. Çalışma şekli ise işlenecek olan bilgiyi alınmak istendiğinde ilk defa buraya uğranmasıdır. Ön belleğin kullanım amacı işlenecek olan bilgi işlemeden önce buraya getirilerek bilgilerin işlenmeye hazır hale getirilmesidir Internal (L2) Cache : Bu işlemci üreticisi tarafından üretilen ve CPU üzerinde bulunan cache bellek türüdür. 2- External (L1) Cache : Anakart üzerinde bulunan ve anakart üreticisi tarafından üretilen cache bellek türüdür. 14 Geleneksel Bellek (Conventional Memory): DOS un ana belleğidir (base memory olarak da bilinir) KB arası hafıza bölgesidir. MS- DOS uygulamaları burada çalışır. Bütün PC lerde 640K sınırı söz konusudur. 15 Üst Bellek ve Genişletilmiş Bellek 1024 KB - 4 GB Uzatılmışbellek alanı Yüksek bellek alanı KB Üst bellek alanı KB Geleneksel bellek (Temel bellek) *Temel Bellek *Hafızanın İlk 640 KB lık bölümü *DOS programları Ayrılmış bellek olarak da bilinen bu alan 640 KB ile 1 MB arasındaki hafıza bölgesidir. Üst bellek blokları halindedir. Tak-çalıştır elemanların sürücüleri, video sürücüleri bu alanda tutulur. EMM386.exe dosyası tarafından yönetilir. 3

4 1024 KB - 4 GB KB Uzatılmış bellek alanı Yüksek bellek alanı Üst bellek alanı KB Geleneksel bellek (Temel bellek) Üst bellek *Ayrılmışbellek *384 KB *UMB ler halinde * Sistem BIOS * Tak-çalıştır sürücüler * Video sürücüler Uzatılmış Bellek (Extended Memory): Bilgisayarlarda 1Mb ın yukarısındaki bellek alanına verilen isimdir. Windows gibi özel programlar, DOS ta RAM sürücüler ve SMARTDRIVE tarafından kullanılır. HIMEM.SYS ile kullanılabilir hale getirilir. Yani programların çalıştırılması için değil verilerin saklanması için kullanılır. Genişletilmiş Bellek (Expanded Memory ): Genişletilmiş bellek olarak tercüme edilen expanded memory, 640K dan daha fazla belleğe ihtiyacı olan programların kullanması içindir KB - 4 GB KB KB Uzatılmış Bellek Uzatılmış bellek alanı Yüksek bellek alanı Üst bellek alanı Geleneksel bellek (Temel bellek) *XMS (extended memory specification) *1 MB üzeri bellek *Windows kullanır. *HIMEM.SYS kontrol eder. İşletim sistemlerinde bellek hiyerarşisini yöneten parçaya ise bellek yöneticisi (memory manager) denir. Bellekte tutulan bilgiler, komutlar /operatörler ve komutların uygulanacağı veriler olmak üzere ikiye ayrılır. 23 Ana bellekte ayrıca iletim sistemi bulunmakta ve bilgisayar kapanana kadar sürekli bellekte bulunmaktadır. 24 4

5 Bellek Yöneticisinin Görevleri: 1) Belleğin hangi kısımlarının kullanılıp hangilerinin kullanılmayacağını izlemek, 2) İşlemlere gerektiğinde bellek ayırmak, 3) İşlem sonlandığında ise işleme ayrılan bellek bölgesini boşaltmak, 4) Ana bellekte yer kalmadığında ikincil belleği kullanmak, 5) Ana bellek alanındaki durum bilgisini tutmak. Bir işletim sisteminin bellek yönetiminin yararları şunlardır: Bellekteki herhangi bir işlemi başka bir yere aktarabilmelidir. Birden fazla işlem veya kullanıcı olduğunda bir kullanıcının diğer kullanıcı alanlarına girmeleri önlenmelidir. Kullanıcılar arası kaynak paylaşımını sağlamalıdır. Belleğin mantıksal alanlara bölünmesini sağlayarak bilgiye erişimi kolaylaştırmalıdır. 26 Ana Bellek Yönetimi Ana işlem birimi yönünden bakıldığında ana bellek, bir sözcük dizisi gibi görülür. Ana bellekte her sözcüğün bir adresi bir de içeriği bulunur. Ana bellekte bir sözcüğün adresi, bu sözcüğe erişimde, adres yolu üstüne yüklenen konum değeridir. Bu değer, fiziksel adres olarak nitelenir. Kod dizilerinden oluşan programlar içinde kullanılan adresler ise program başına göreli mantıksal adresler olarak nitelenir. Bellek Yönetim Yöntemleri 1) Tek Programlama Yöntemi, 2)Çoklu Programlama, 27 1) Tek Programlama Yöntemi: (Tek ve Bitişken Bellek Yönetimi): Genellikle tek işlemli işletim sistemleri tarafından kullanılır. İşlem ana bellekte yok ise ikincil bellekten ana belleğe yüklenir ve işlem bitimine kadar orada kalır. Ana belekte çalışma esnasında yalnızca bir tek işlem/program bulunur. Ana Bellek İŞLETİM SİTEMİ İŞLEM BOŞ 5

6 2-Çoklu Programlama a) Değişmez Bölümlü Bellek Yönetimi, b) Değişken Bölümlü Bellek Yönetimi, c) Yeri Değiştir Bölümlü Bellek Yönetimi, d) Sayfalı Bellek Yönetimi, e) Bölümlü Bellek Yönetimi, f ) Sayfalı Sanal Bellek Yönetimi, g) Bölümlü Sanal Bellek Yönetimi, h) Bölümlü-Sayfalı Sanal Bellek Yönetimi. Durgun Bellek Yönetimi Bellek Yönetim Türlerinin Sınıflandırılması Bellek Yönetimi Bitişken Bellek Yönetimi Devingen Bellek Yönetimi Gerçek Bellek Yönetimi Parçalı Bellek Yönetimi Sanal Bellek Yönetimi 32 Tek ve Bitişken Bellek Yönetimi Ana bellek, aynı anda, işletim sistemi ile tek bir kullanıcı programı tarafından paylaşılır. Tek iş düzeni ve tek görevli işlem ortamlarında kullanılabilen, bu nedenle de, artık kişisel bilgisayar sistemleri için bile yetersiz kalan bir bellek yönetim biçimidir. Değişmez Bölümlü Bellek Yönetimi Tek iş düzeninden çok iş düzenine geçiş, ana bellek yönetiminde de tek ve bitişken bellek yönetiminden değişmez bölümlü bellek yönetimine geçişi zorunlu kılmıştır. Ana bellek, işletim sistemi ve kullanıcı programları olmak üzere irili ufaklı birden çok bölüm arasında paylaşılır. Her iş işletime alınmadan önce, ana bellekte kendisine, boyuyla uyumlu bir bölüm atanır Değişmez Bölümlü Bellek Yönetimi MİB in bir göreve anahtarlandığında, ilgili işin taban ve tavan adreslerini yazmaçlarda tutmak zorundadır. İşletim sistemi, ana bellek düzeniyle ilgili bir Bölüm Tanım Çizelgesi tutar. Bu çizelgede tüm bölümlerin Giriş Adresleri, Boyları, Kullanımda olup olmadıkları gösterilir. Bir iş, işletime alınacağı zaman bölüm tanım çizelgesi taranarak bölüm ataması yapılır. First Fit: Tarama sırasında rastlanan ilk boş bölümün atanması Best Fit: İşin gerektirdiği sığaya en uygun boydaki bölümün atanması 35 Değişken Bölümlü Bellek Yönetimi Temel ilkesi; bölümlerin, konum ve boyları itibarıyla, işlerin görevlere dönüştürülüp sisteme sunuluşları aşamasında, devingen olarak yaratılmasıdır. Bir görev hazır görevler kuyruğuna ilk kez bağlanacağı zaman, gerektirdiği büyüklükte alan, ana bellekte kullanılmayan boş alanlar içinden bulunur ve yeni bir bölüm olarak bölüm tanım çizelgesine eklenir. Bu yöntemde, bölüm tanım çizelgesinin yanı sıra, bir de boş alan çizelgesi tutulur. Bölüm tanım çizelgesi bölümlere atanan bölümlerin bilgilerini, Boş alan çizelgesi de bölümler arasında boş bitişken alanlara ilişkin konum, boy gibi bilgileri tutar. Boş alan seçilirken çeşitli algoritmalar kullanılır. best fit (en uygun alan) first fit (ilk uyan alan) worst fit (en büyük alan) 36 6

7 128 kb alan kaplayan yeni bir iş ana belleğe yerleşiyor. Sayfalama (Paging) Fiziksel bellek üzerindeki aynı uzunluktaki bloklara çerçeve (frame), Mantıksal bellek üzerindeki aynı uzunluktaki bloklara ise sayfa (page) denilmektedir. Sayfaların uzunlukları donanım tarafından belirlenmektedir. (2 nin katları; 512 byte, 16 MB, ) 37 Sayfalama (Paging) MİB nin oluşturduğu adres iki bölümden oluşmaktadır; sayfa numarası (p): fiziksel bellekteki her bir sayfanın taban adresini tutan sayfa tablosundaki gösterge. sayfa ofseti (d): taban adresi ile birleştirilerek fiziksel bellekte sayfanın içerisindeki yerin belirlenmesinde kullanılır. Sayfa tablosunda hem sayfa hem de ofset adresi bulunmaktadır. Fiziksel ve mantıksal belleğin sayfalama modelleri sayfa 0 sayfa 1 sayfa 2 sayfa 3 Mantıksal Bellek Sayfa Tablosu Çerçeve numarası 0 1 sayfa sayfa 2 4 sayfa sayfa 3 Fiziksel Bellek Sayfalama Sayfalama örneği; 4 byte uzunluğunda sayfalardan oluşan 32 byte lık bir bellek olduğunu düşünelim. Mantıksal Address MİB p d f d p f Fiziksel Address f Mantıksal adresi 0 da sayfa ve ofset adresi 0 dır. Sayfa tablosuna bakıldığında sayfa 0 ın çerçeve 5 de olduğu görülmektedir. Böylece mantıksal adres 0, fiziksel bellekte 20 ye ((5*4))+0) karşılık gelmektedir. Fiziksel Bellek Sayfa Tablosu 7

8 Sayfalama örneği; 4 byte uzunluğunda sayfalardan oluşan 32 byte lık bir bellek olduğunu düşünelim. Mantıksal adres 3 (sayfa 0, ofset 3) fiziksel bellekte 23 ü ((5*4))+3) adreslemektedir. Sayfalama örneği; 4 byte uzunluğunda sayfalardan oluşan 32 byte lık bir bellek olduğunu düşünelim. Mantıksal adres 4 (sayfa 1, ofset 0), sayfa tablosuna bakıldığında çerçeve 6 dadır ve fiziksel bellekte 24 ü ((6*4))+0) adreslemektedir. Sayfalama örneği; 4 byte uzunluğunda sayfalardan oluşan 32 byte lık bir bellek olduğunu düşünelim. Mantıksal adres 13, fiziksel adreste 9 u ((2*4)+1) adreslemektedir. Bölümleme (Segmentation) Bölümlemede; mantıksal adres alanı bölümlerden oluşmaktadır. Adres hem bölüm numarası hem de bölüm içerisindeki adresi belirten ofset numarasından meydana gelmektedir. <bölüm numarası, ofset> Bölümleme (Segmentation) Bölüm tablosunda; bölümün başlangıç yerini tutan bölüm taban ve bölümün uzunluğunu yani bitiş yerini belirlemede kullanılan bölüm tavan kaydedicileri bulunmaktadır. Bölümleme (Segmentation) MİB tarafından oluşturulan mantıksal adreste; s: bölüm numarasını, d: bölümdeki ofset adresi göstermektedir. 8

9 Bölümleme (Segmentation) Ofset adres, taban ve tavan kaydedicisi değerleri arasında olmalıdır. Eğer değeri fazla olursa mantıksal adresin bölümü aşması nedeniyle işletim sistemi devreye girmektedir. Eğer değeri bu belirtilen sınırlar arasında ise bölüm taban kaydedicisi ile bu adres toplanmakta ve bu şekilde istenilen byte a ulaşılabilinmektedir. Bölümleme Bölümleme örneği Sayfalama ve bölümleme arasındaki farklar; Bölümlemenin amacı adres alanının mantıksal olarak dilimlenmesidir. Sayfalama ise belleğin fiziksel olarak dilimlenip bir düzeyli bir bellek (sabit disk, bellek farkı gözetmeden erişim) oluşturulması amacına yöneliktir. Sayfalar makine donanımına bağlı olarak sabit boyuttadır. Bölümler ise kullanıcı tarafından belirlenecek boyuttadır. Sayfalama ve bölümleme arasındaki farklar; Program adresinin sayfa ve ofset numaralarına ayrılması donanımın bir işlevidir. Ofset numarasının sınırı aşması otomatik olarak sayfanın çevrilmesine sebep olur. Oysa bölüm ve ofset numarasında bir sınır aşma hadisesi söz konusu değildir. Bu durumda bellek erişim hatası yani erişilmemesi gereken yere erişim hatası oluşur. Bölümlemenin sayfalama ile birlikte kullanılması Bölümler kendi içerisinde sayfalara ayrılmaktadır. Mantıksal adres üç parçadan oluşmaktadır; bölüm, sayfa ve ofset adresi. Bölüm numarası Sayfa numarası Sayfadaki ofset numarası 9

10 Sayfalı Bellek Yönetimi Görevlerin mantıksal adres evrenleri, birbirini izleyen, eşit uzunlukta parçalardan oluşur. Bu parçalar program sayfası olarak adlandırılır. Bu evren içinde adreslerin iki birleşeni bulunur (s,x). Bu birleşenlerden ilki (s) sayfa numarası, ikincisi ise (x) sayfa başına göreli adrestir. İşletim sistemi her görev için Sayfa Tanım Çizelgesi tutar Sayfa Numarası Sayfa Başlangıç Adresi Erişim Hakkı İşletim sistemi hangi sayfaların boş olduğunu Bellek Tanım Çizelgesi nde tutar. 55 Sayfalı Bellek Yönetimi Sayfalı bellek yönetiminde, programların mantıksal adres evrenlerini eşit uzunlukta sayfalara ayırmak ve bu sayfaları ana bellekte bitişken olma zorunluluğu bulunmayan fiziksel sayfalarla eşleştirmek ilkesi, görevlere atanacak bitişken bellek parçalarını küçülterek kullanılmayan en küçük parçayı bile değerlendirebilmeyi amaçlar. 56 Bölümlü Bellek Yönetimi Görevlere atanacak bitişken bellek parçalarını küçültmenin bir yolu da program adres evrenlerini kesimlere (Segment) ayırmaktır. Kesimler, programlar içinde, içerikleri yönünden mantıksal bütünlüğü bulunan parçalara verilen addır. Programlar, örneğin, Ana yordamın bulunduğu kesim Alt yordamların bulunduğu kesim Değişken, dizi, dizgi gibi, verilerin topluca tutulduğu kesim Yığıt olarak kullanılan kesim gibi değişik türde kesimlerden oluşabilir. Kesimlerin birbirleriyle bitişken olarak düşünülmeleri de gerekmez. Kesimlerden oluşan programlar içindeki adresler, kesim kimliği (numarası) ve kesim içi adres olarak, iki birleşenden oluşur. 57 Bölümlü Bellek Yönetimi Sayfalı ve Bölümlü bellek yönetimleri birbirlerine çok benzerler. Ancak bu iki yönetim biçimi arasında önemli temel fark: Programların mantıksal adres evrenleri; Sayfalı bellek yönetiminde mekanik biçimde eşit uzunlukta sayfalara, Bölümlü bellek yönetiminde ise değişken uzunlukta, mantıksal bütünlüğü taban alan kesimlere ayrılır. 58 Sayfalı Görüntü Bellek Yönetimi Sayfalı bellek yönetiminden farklı olarak diskin bir bölümü de ana bellek alanıymış gibi kullanılır. Görüntü bellek düzeninde tüm program sayfalarının ana bellekte bulunma zorunluluğu yoktur. Görüntü bellek düzeninde sayfalar diskte saklandığından her görev için, Sayfa tanım çizelgesi yanında bir de Kütük tanım çizelgesi tutulur. Sayfa tanım çizelgelerinde ek olarak Sayfa Bellekte Belirteci (Sayfanın bellekte olup olmadığını gösterir) Değişim Belirteci (Bellekteki ve diskteki kopya arasında fark olup olmadığını gösterir) Erişim Hakkı Sayfalı Görüntü Bellek Yönetimi

11 Sayfalı Görüntü Bellek Yönetimi Adres dönüştürme sürecin de, bellek yöneticisinin gerçekleşmesi gereken işlemler şunlardır: a. Bellekte göreve atanacak boş bir sayfa aramak. b. Bellekte kullanılabilir boş bir sayfa yoksa, yer açmak üzere ana bellekten çıkarılacak sayfanın seçimini yapmak. c. Ana bellekten çıkarılacak sayfada günleme yapılmışsa (diskteki kopyasından farklı ise) sayfayı diskteki yerine yazmak. d. Erişilmek istenen sayfayı ana belleğe yüklemek. e. Yarıda kesilen komutun işletimini yeniden başlatmak. 61 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 62 İlk giren sayfayı çıkarma (FIFO) 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. En erken erişilmiş sayfayı çıkarma (Least Recently Used - LRU) Yakın geçmişte kullanılmamış sayfayı çıkarma algoritması olarak bilinir En geç erişilecek sayfayı çıkarma (Optimal) 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. Bölümlü Görüntü Bellek Yönetimi 65 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

12 Bölümlü Sayfalı Görüntü Bellek Yönetimi Programların mantıksal adres evrenleri kesimlere, kesimler de sayfalara ayrılır. Bölümlü görüntü bellek yönetiminin temel sakıncasını oluşturan değişken boydaki kesimleri sayfa tabanında ele almak mümkün olur. Bölümlü-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. 67 Bölümlü Sayfalı Görüntü Bellek Yönetimi Mantıksal adresten fiziksel adrese geçişte iki temel çizelge kullanılır: Kesim Tanım Çizelgesi 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 Tanım Çizelgesi Sayfa Numarası Başlangıç Adresi Sayfa bellekte Belirteci Erişim Hakkı Belirteci Değişim Belirteci 68 Sanal Bellek Arkaplan İsteğe bağlı disk belleği Süreç Oluşturma Süreç Oluşturma Çerçeveler Tahsisi Yarasız İşlemeThrashing) İşletim Sistemi Örnekler 69 Sanal bellek tekniğinde, işlemin tamamı değil, onun yerine yalnızca o anda çalıştırılacak bölüm belleğe alınır ve ana belleğin kapasitesi artırılır. Günümüzde genel amaçlı bilgisayarların işletim sistemleri çoklu ortam uygulamaları, sözcük işlemcileri, tablolama izlenceleri gibi sıradan uygulamalar için sanal bellek yöntemi kullanılmaktadır 70 Genel Bilgiler Sanal Bellek fiziksel belleğin kullanıcı için mantıksal bellekten desteklenmesi. Program sadece bir kısmını icrası için bellekte olması gerekmektedir. Mantıksal adres alanı, bu nedenle fiziksel adres alanından çok daha büyük olabilir. Adres alanlarını çeşitli uygulamalar tarafından paylaşılmasına olanak sağlar. Daha etkin bir süreç oluşturulmasını sağlar. Sanal bellek üzerinden uygulanabilir : İsteğe bağlı disk belleği Talep segmantasyon 71 Sanal Belleğin Fiziksel Bellekten Büyük Olması 72 12

13 İsteğe bağlı disk belleği Gerekli olduğunda belleğe bir sayfa getirmek Daha az I/O gerekli Daha az bellek gerekli Hızlı tepki Daha fazla kullanıcı Bitişik Disk Alanı için bir Sayfalanmış Bellek transferi Sayfa gereklidir için başvuru geçersiz referans iptal bellek içinde değil belleğe getirmek Geçerli-Geçersiz Bit Sayfa bazı sayfalar ana bellekte değilse tablosu Her sayfa tablosu girdisi ile geçerli-geçersiz bit ilişkilidir (1 bellek içine, 0 bellek dışına) Başlangıçta geçerli-geçersiz ancak tüm girişleri 0 olarak ayarlanır. Bir sayfa tablosu anlık örneği. Frame # valid-invalid bit page table 76 Adresi çevirisi sırasında, sayfa tablosu girdisi eğer geçerli-geçersiz bit Sayfa 0 sayfa Hatası hatası. Bir sayfa hatası İşleme Adımları Bir sayfa için hiç bir referans varsa, ilk referans yakalar OS sayfa hatası OS karar vermek için başka bir tabloya bakar: Yanlış referans hata. Sadece bellek değil. Boş çerçeve alın. Swap sayfa çerçevesi içine. Sıfırla tablolar, doğrulama bit = 1. Talimatı yeniden başlatın : En Son Kullanılan Blok taşıma Otomatik artırma / eksiltme konumu

14 Hiç boş çerçeve var ise ne olur? Sayfa yenileme -bazı sayfa bellekte bulmak Ancak çok kullanımda, dışarı takas. algoritma performans sayfa hatalarının en az sayıda neden olacak bir algoritma istiyorum. Aynı sayfa belleğe defalarca getirilmesi. 79 İsteğe bağlı disk belleği performansı Sayfa Hatası Oranı 0 p 1.0 eger p = 0 sayfa hatası yok eger p = 1, Her başvuru bir arıza olduğunu Etkili Erişim Süresi(EAT) EAT = (1 p) x bellek erişimi + p (sayfa hatası yükü + [swap sayfa dışına] + swap sayfa içine + yükü yeniden) 80 Talep Çağrı Örnek Bellek erişim süresi = 1 mikrosaniye %50 zamanda sayfa değiştiriliyorsa, bu nedenle takas gerekiyor. Swap Sayfa Zamanı= 10 msec = 10,000 msec EAT = (1 p) x 1 + p (15000) P (in msec) 81 Süreç Oluşturma Sanal bellek oluşturma işlemi sırasında diğer yarar sağlar: - Kopyala-on-yazma - Hafıza-Haritalı Dosyalar 82 Kopyala-üzerinde-yazma Kopyala-üzerinde-yazma (COW) ana ve çocuk süreçler hem başlangıçta bellekte aynı sayfaları paylaşmanızı sağlar. Her iki sürecin ortak bir sayfa değişiklik yaparsa, ancak o sayfa kopyalanır. COW sadece sayfaları güncellendi kopyalanır gibi daha etkin bir süreç oluşturulmasını sağlar. Boş sayfa sıfırlanmış-out sayfalık bir havuzdan ayrılır. 83 Memory-Mapped Files (Bellek-Eşlemeli Dosyalar) (Bellek eşlemeli Dosya I/O ları daima I/O rutin bellek erişimini bir disk engellemeye eşleyerek thread lere bölünmesine izin verir.) (Bir dosya ilk talebi bellek kullanılarak okunur. Dosyanın bir sayfa büyüklüğünde kısmı fiziksel bir sayfanın içine dosya sistemi okunur. Sıradan bellek erişir gibi sonraki okuma/yazma için / Dosya kabul edilir.) (Dosya I/O birimleri yerine read(),write() gibi sistem çağrıları ile kullanılarak dosya erişimi basitleştirir.) Ayrıca, çeşitli işlemler bellekte sayfalar paylaşılabilmelerini sağlar ve aynı dosyaları eşleştirmek için olanak sağlar

15 Bellek-Eşlemeli Dosyalar Sayma Algoritmalar Her sayfa için yapılmış referans sayısı bir sayaç tutun. LFU Algoritma: küçük sayısı ile sayfa yerini alır. MFU Algoritması: küçük sayısı ile sayfa muhtemelen sadece kullanılacak ise henüz getirilmiş ve olduğu argümanı dayalı Çerçeveler Tahsisi Her bir işlem için gereken en az sayıda sayfa. Talimatı: Talimat 6 bayt, 2 sayfa yayılan olabilir. Ele gelen 2 sayfa. İşlemek için 2 sayfa. İki büyük ayırma düzenleri. Sabit tahsisi Öncelik tahsisi 87 Sabit Tahsisi Eşit tahsisi e.g., eğer 100 çerçeve ve 5 proses, Her 20 sayfa verir. Oransal tahsisi - sürecinin büyüklüğüne göre ayırın. si size of process pi S si m total number of frames si ai allocation for pi m S m 64 si 10 s a a Öncelik Tahsisi Önceliklerin yerine boyutu kullanarak orantılı ayırma şeması kullanın. Eğer P i prosesi genel bir sayfa hatası oluşturuyorsa, kendi çerçeveleri değiştirilmesi biri için seçin yedek düşük öncelikli numarası ile bir süreci bir çerçeve seçin. Küresel vs Yerel Tahsisi Küresel yedek- Sürecinin tüm karelerin kümesinden yerine çerçevesini seçer; bir işlemin başka bir kare çekebilirsiniz. Yerel değiştirme Her bir işlem tahsis kare sadece kendi grubundan seçer

16 yararsız işleme Bir süreç "yeterli" sayfaları yoksa, sayfa hata oranı çok yüksektir. Bu yol açar: Düşük CPU kullanımı. işletim sistemi multiprogramming derecesinin artırılması gerektiğini düşünüyor Başka bir işlem sistemi eklendi. yararsız işleme bir proses meşgulse swap içeri ve dışarı olur. Ana Belleğin Parçalanma Sorunu Ana belleğin parçalanması, bitişen alanların görevlere atanan bölümlerle, zaman içinde ufalanmasıdır. Belleğin parçalanması sonucu, bellekteki boş alanların toplamı, gereksenen sığaları karşılıyor olmasına rağmen yeni görevlere yer sağlanamayan durumlarla karşılaşılabilir Bitiştirme Tüm bellek alanına dağılmış durumdaki bölümleri, yerlerini değiştirerek yan yana yerleştirme ve bu yolla bölümler arasında kalan boş alanları da yan yana getirerek tek bir bitişken alan yaratma işlemine BİTİŞTİRME (DEFRAG) işlemi denir. Yeri Değişir Bölümlü Bellek Yönetimi Programların, ana belleğe, derleme sonrası elde edildikleri biçimde yüklenerek işletilebilmelerini ve işletimleri sırasında, herhangi bir önlem almaya gerek kalmaksızın bir yerden diğer bir yere taşınabilmelerini olanaklı kılmaktadır Bitiştirme İşlemleri Ne Zaman ve Hangi Sıklıkla Uygulanır Bellekte parçalanmayı önlemek üzere bitiştirme işlemi, ya her görevin işletiminin bitiminde ya da işletime sunulan işlere bellekte yer bulunamadığı durumlarda gündeme gelebilir. Bitiştirme işlemlerini her işletim bitişte yinelemek; ana belleği verimli kullanmayı amaçlarken işletimi sık sık durdurarak sistem hızının ve kullanılabilirliğinin aşırı düşmesine neden olur. Bitiştirme işlemlerine, ana bellekte yer ihtiyacı oluştukça başvurmak daha anlamlıdır. Bu ihtiyaç bellek yönetici tarafından saptanır. Bitiştirme işlemi, işletim sisteminin inisyatifinde otomatik olarak sistem işletmeni uyarılarak başlatılır