BTP 205 İŞLETİM SİSTEMLERİ



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

Sanal Bellek (Virtual Memory)

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

BELLEK YÖNETY. Bellek Yönetimi

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

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

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

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

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

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

Background (Arka Plan)

Bölüm 8: Ana Bellek 8.1

Bilgisayar İşletim Sistemleri BLG 312

William Stallings Computer Organization and Architecture 9 th Edition

İşletim Sistemleri (Operating Systems)

PROSESLER. Proses. Proses

Bölüm 9: Sanal Bellek

İşletim Sistemlerine Giriş

Proses. Prosesler 2. İşletim Sistemleri

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemleri (Operating Systems)

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

Windows Eski Sürümleri Bellek Yapısı

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

BM-311 Bilgisayar Mimarisi

İşletim Sistemlerine Giriş

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

DİSK DEPOLAMA ALANLARI

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

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

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

ELN1001 BİLGİSAYAR PROGRAMLAMA I

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

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

YZM 3102 İşletim Sistemleri

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

İşlem Yönetimi (Process Management)

BM-311 Bilgisayar Mimarisi

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

Komutların Yürütülmesi

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.


Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

EKLER EK 12UY0106-5/A4-1:

Bilgisayar İşletim Sistemleri BLG 312

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

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

MİKROİŞLEMCİ MİMARİLERİ

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

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

BTP 209 SİSTEM ANALİZİ VE TASARIMI

HSancak Nesne Tabanlı Programlama I Ders Notları

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

Bilgisayarların Gelişimi

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

BTP 205 İŞLETİM SİSTEMLERİ

İşletim Sistemlerine Giriş

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

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

Özyineleme (Recursion)

Embedded(Gömülü)Sistem Nedir?

Süreç Yönetimi. Logo

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

BM-311 Bilgisayar Mimarisi

Bilgilerin Uzun Vadeli Saklanması

BM-311 Bilgisayar Mimarisi

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

İşletim Sistemlerine Genel Bakış

Computer Networks 7. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

BİLGİSAYAR MİMARİSİ-II İÇERİK ADRESLEMELİ BELLEK

VERİ TABANI YÖNETİM SİSTEMLERİ

İşletim Sistemlerine Giriş

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

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

Veri ve Dosya Yapıları. Kütük Organizasyonu 1

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

8086 Mikroişlemcisi Komut Seti

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

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

BM-311 Bilgisayar Mimarisi

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

DESTEK DOKÜMANI. Tablolu Malzeme Sınıfları

HAL KAYIT SİSTEMİ HAL HAKEM HEYETİ İŞLEMLERİ KULLANICI KILAVUZU

VT Gerçeklenmesi Ders Notları- #3

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.

Master boot record (MBR)

İŞLETİM SİSTEMLERİ. Öğr. Gör. Fatih ALBAYRAK

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

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

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

Transkript:

BTP 205 İŞLETİM SİSTEMLERİ BELLEK YÖNETİMİ Dr. Önder EYECİOĞLU 2012

Giriş: Bir programın çalışabilmesi için ana belleğe taşınması ve bir görev kontrol bloğu(pcb) içerisine yerleşmesi gereklidir. Bellekler, ana bellek (main mem.) ve ikincil bellekler (secondary mem.) olarak ikiye ayrılır. Yalnızca Ana bellek ve kaydediciler (registers) CPU ile doğrudan haberleşebilirler. CPU içerisindeki Register lar, CPU ile bir CPU saat döngüsünde haberleşirler. Aynı bellek veriyolu üzerinde bir işlem aracılığıyla erişilen ana bellek için bu söylenemez. Bellek erişimi tamamlamak için birçok CPU saat döngüleri gerekli olabilir. Bunun için ana bellek ile CPU arasına hızlı bir bellek yerleştirilir(cache mem.) Ana belleğin görevler arasında paylaştırılmasına, programların ve verileri için ana bellekte alan sağlanması, konumlarının belirlenmesi, denetlenmesi, izlenmesi, taşmaların denetlemesine bellek yönetimi denir. İşletim sisteminin, bellek yöneticisi tarafından gerçekleştirilir.

Giriş: Belleğe işlemlerin yerleşimi Tavan (Limit) ve Taban (Base) kaydedicileriyle donanımsal olarak sağlanır. Taban kaydedici küçük legal fiziksel bellek adresini tutar; Tavan kaydedicisi uzunluğu belirtmektedir ve taban ve tavan kaydedicisi toplanarak işlemin bittiği adres bulunabilir. Taban adresi değiştirilerek bir işlem bellekte yer değiştirilir. Örneğin; a: Program adresi (O anda bulunulan adres) b: Taban adresi (Başlangıç adresi, base adress) olsun. Bu adres haritası aşağıdaki kriterlere göre donanımsal olarak adreslenir; eğera<0isebellekkorumahatası a =B+a eğera >Tavanisebellekkorumahatası a burada istenilen bellek yeridir

Bellek koruma: Hafıza alanının koruma işlemci donanımı kayıtları ile, kullanıcı modunda üretilen her adres karşılaştırmak suretiyle gerçekleştirilir.

Mantıksal ve Fiziksel Adresler CPU tarafından oluşturulan adrese genellikle mantıksal (veya sanal) adres, bellekte yer alan adrese ise fiziksel adres denilmektedir. Ana bellek bir sözcük dizisi şeklindedir. Her sözcüğün bir adresi ve bir de içeriği vardır. Ana bellekte bir sözcüğün adresi, bu sözcüğe erişimde, adres yoluna yüklenen konum değeridir. Bu değer, ilgili sözcük içeriğinin ana bellekte bulunduğu fiziksel konumu gösterdiğinden fiziksel adres olarak nitelenir.

Mantıksal ve Fiziksel Adresler Mantıksal adres ve fiziksel adres, derleme ve yükleme aşamalarında aynıdır. Çalışma aşamasında farklılaşırlar. Bu taban kaydedicisinin (base register) (Mem. Manegement Unit-MMU) değeri ile mantıksal adres toplanarak elde edilen adres ise fiziksel adrestir.

Takas (Swapping) Bir görev (proses), veriyi geçici olarak yedekleme deposuna taşıyıp çalışmaya devam etmek için belleğe geri yükleyebilir. Görevlerin disk ile ana bellek arasında değiş-tokuşuna takas(swap) denir. Kimi durumlarda bitiştirme işlemleri de bellekte gerekli büyüklükte boş bitişken alan oluşturmak için yeterli olamaz. Sisteme sunulan iş, o an sistemde işletimde olan işlemden daha öncelikli ise, görev tanımlarının yapılarak hemen işletime alınması gerektirir. Kimi zaman öncelik görevlerin, işletimleri sonradan tamamlamak üzere geçici olarak diske taşınması boş bellek alanı yaratmak için başvurulan bir yol olabilir. Bu yolla açılan boş bellek alanları yeni görevlerin tanımlanabilmesine ve özellikli işlerin işletimlerinin bir an önce başlatılabilmesine olanak sağlar. İşletimi tamamlanmamış bir görevin, daha öncelikli görevlere ana bellekte yer açmak üzere, geçici olarak diskte, bu amaçla öngörülen alanlara taşınmasına diske taşıma olayı olarak nitelendirilir.

Takas (Swapping) Swapping bir yedekleme deposu gerektirir.yedekleme deposu genellikle hızlı bir disktir. Tüm kullanıcılar için tüm bellek görüntülerin kopyalarını sığabilecek büyüklükte olmalı ve bu bellek görüntüleri doğrudan erişim sağlamalıdır.

Bellek Yönetim Teknikleri 1. Bitişik Bellek Ayırma (Contiguous Memory Allocation) 2. Basit sayfalama (Paging) 3. Basit segmanlama(segmentation) 4. Sayfalamalı görüntü bellek (Virtual Memory) 5. Segmanlamalı görüntü bellek

1. Bitişik Bellek Ayırma (Contiguous Memory Allocation) Ana bellek, işletim sistemi ve çeşitli kullanıcı işlemleri de karşılaması gerekir. Bu nedenle mümkün olan en verimli şekilde ana bellek farklı bölümlerini ayırmak gerekir. Bellek genellikle iki bölüme ayrılmıştır: biri yerleşik işletim sistemi için, diğeri ise kullanıcı işlemleri için kullanılmaktadır. Kullanıcı işlemlerinin aynı anda mevcut bellekte yerleşmesi istenir. Bu nedenle, belleğe taşınmak için bekleyen görevlere mevcut belleğin nasıl paylaştırılacağı belirlenmelidir. Bellekte kullanıcı işlemleri boşluklara (hole) bloklar halinde yerleştirilmektedir. Yeni bir işlem geldiğinde bu belleğe işlemin yeteceği kadar bir alan ayrılarak konumlandırılmakta ve işletim sistemi boş alanlar ve dolu alanlar ile ilgili bilgileri kayıt altına almaktadır.

1. Bitişik Bellek Ayırma (Contiguous Memory Allocation)

1. Bitişik Bellek Ayırma (Contiguous Memory Allocation) İşletim sistemi bellekteki n adet boşluğun bulunduğu listeden işlem için en uygun boşluğu nasıl belirleyeceğine ise 3 strateji kullanarak karar vermektedir. İlk uyan (First-fit): Listeden işlem için yeterli büyüklükte olan ilk boşluğun seçilerek işlemin yerleştirilmesidir. En iyi uyan(best-fit): Listeden işleme uygun büyüklükteki boşlukların aranarak bulunması ve bunların içinden en küçüğünün seçilerek işlemin yerleştirilmesidir. En kötü uyan (Worst-fit): Listeden araştırma yapıldıktan sonra en büyük boşluğun seçilerek işlemin yerleştirilmesidir. İşlemin belleğe yerleştirilme hızı ve belleğin etkili kullanımı açısından ilk uyan ve en iyi uyan stratejileri en kötü uyan stratejisinden çok daha kullanışlıdır.

Belleğin Parçalanma Sorunu Ve Bitiştirme İşlemi Bellek parçalanması, bitişken alanların görevlere atanan bölümlerle, zaman içinde ufalanması olarak bilinir. Bu sorun, kullanılan bölümler arasına sıkışmış, işletim için bekleyen görevlerin gereksinimini karşılayamayan boş alanların varlığıyla ortaya çıkar. Bunun sonucu, bellekteki boş alanların toplamı, gereksenen sığaları karşılıyor olmasına karşın yeni görevlere yer sağlayamaz. Görevlere gereksedikleri belleğin tümüyle ve bitişken bir bütün olarak, işletime sunuş aşamasında sağlanması ve sağlanan bu alanların konumlarının işletim sırasında değiştirilmesi parçalanma sorununun temel nedenleridir.

Belleğin Parçalanma Sorunu Ve Bitiştirme İşlemi

Belleğin Parçalanma Sorunu Ve Bitiştirme İşlemi 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 boş alan oluşturma işlemine denir.

2. Basit sayfalama (Paging) Toplam bellek alanının eşit büyüklükte sayfalara bölünmesine denir. Sayfalı bellek yönetiminde 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. Ana belleği oluşturduğu varsayılan sayfalar ise bellek sayfaları olarak adlandırılır

2. Basit 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. CPU nun oluşturduğu adres iki bölümden oluşmaktadır; a) sayfa numarası(p): fiziksel bellekteki her bir sayfanın taban adresini tutan sayfa tablosundaki gösterge. b) 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.

2. Basit sayfalama (Paging) Sayfa numarası, sayfa tablosunda bir indeks olarak kullanılır. Sayfa tablosu fiziksel bellek her sayfanın taban adresini içerir. Bu taban adresi bellek ünitesine gönderilir fiziksel bellek adresini tanımlamak için ofset sayfası ile birleştirilir.

2. Basit sayfalama (Paging) Sayfalı bellek yönetiminde, görevlerin her program sayfasına bir bellek sayfası atanır. Mantıksal adres evreni içerisinde bitişken olarak yer alan program sayfalarının ana bellekteki karşılıklarının bitişken olma koşulu aranmaz. Hangi program sayfasının, hangi sayfasında bulunduğunu belirleyebilmek amacıyla, her görev için sayfa tanım çizelgesi tutulur. Sayfa tanım çizelgeleri, ilgili görevin program sayfalarının yer aldığı bellek sayfası giriş adreslerini tutarlar. Her görev için ayrı ayrı tutulan bu sayfa tanım çizelgelerinin yanı sıra, bir de, tüm ana bellek için bellek tanım çizelgesi tutulur. Bu çizelge içinde hangi bellek sayfasının dolu, hangisinin boş olduğu bilgisi bulunur. Görevler işletime alınacağı zaman önce bu çizelge taranır. Görevin gereksediği sayıda boş bellek sayfası belirlenir. Görevin sayfa tanım çizelgesi oluşturularak içeriği, belirlenen bu boş sayfa giriş adresleriyle güncellenir. Bellek tanım çizelgesinde, kullanılan fiziksel sayfalar dolu olarak işaretlenir.

2. Basit sayfalama (Paging)

2. Basit sayfalama (Paging) Sayfalama örneği; 4 byteuzunluğunda sayfalardan oluşan 32 byte lıkbir bellek olduğunu düşünelim.

2. Basit sayfalama (Paging) 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. Mantıksal adres 3 (sayfa 0, ofset 3) fiziksel bellekte 23 ü ((5*4))+3) adreslemektedir. 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

3. Basit segmanlama(segmentation) Bellek yönetiminin önemli bir yönü, kullanıcının belleği kullanması ile gerçek fiziksel belleğin birbirinden çok farklı olmasıdır. Kullanıcı bir program yazdığında, temel olarak kodların saklandığı kod bölümü, verilerin saklandığı veri bölümü ve alt programlara dallanmada kullanılan yığın bölümü oluşturulmaktadır.

3. Basit segmanlama(segmentation) Görevlere atanacak bitişken bellek parçalarını küçültmenin bir yolu da program adres evrelerini bölümlere ayırmaktır. Bölümler, program içinde, içerikleri yönünden mantıksal bütünlüğü bulunan parçalara verilen addır. Programları oluşturan bağımsız Bölümler birbirleriyle bitişken olarak düşünülmeleri de gerekmez. 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>).

3. Basit segmanlama(segmentation) Kesimleme (Segmentation-Bölümleme): Sayfalama, belleğin verimli kullanılmasını sağlamakta idi. Belleğin verimli kullanılması bellek alanlarının çok kullanılması, boş alan bırakılmamasıdır. Adresleme yapılarak boş alanlar bulunabilir. Bunlar programın yapısına (içeriğine) bağlı olmayan (adreslemeler) işlemlerdir. Kesimleme ise, programın içeriğine bağlıdır. Yığınlar, kütükler, global değişkenler, yerel değişkenler gibi programda mantıksal bölümler mevcuttur. Programla verinin aynı anlamda kullanılması burada mantıksal açıdan iyi değildir. Ortak kullanılan veriler için kütükler oluşturulur. B programı A programının içine erişebilir (aynı kütüğü kullanmak için). Bu fazla hacim gerektirir, program büyür, verim düşer. Sayfalama, belleğin mantıksal yapısına bağlı olmadan parçalamadır. Kesimleme ise programın mantığına uygun belleğin parçalanmasıdır. Bellek bir boyutlu bir dizidir. Kesimleme işleminde bellek iki boyutlu bir matris gibi kullanılır. Örneğin assemblerda kod, segment ve data segment vardır. Tüm segmentler için başlangıç adresleri 0(sıfır) ıncı adrestir. Bu mantıksaldır. Fiziksel adreste her bir kesimin taban adresi vardır.

3. Basit segmanlama(segmentation)

4. Sanal Bellek (Virtual Memory) Sanal bellek, programların ve verilerin toplam boyutunun onların erişebileceği ve kullanabileceği fiziksel bellek alanından büyük olabilmesi düşüncesine dayanır. Sanal (Virtual ) bellek, tamamı fiziksel bellekte olmayan işlemlerin (process) çalışmasına olanak sağlayan bir tekniktir. En büyük avantajı, çalışan programların fiziksel bellekten daha büyük olmasına olanak sağlar. İşlemlerin, dosya paylaşımına ve paylaşımlı bellek (sharedmemory) uygularına olanak sağlar. Sanal bellek, uygulanması (implementation) kolay değildir ve dikkatli yapılmazsa performansı düşürür.

4. Sanal bellek (Virtual Memory) Yürütülmekte olan talimatlar (instructions) fiziksel bellek olmalıdır. 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. Böylelikle ikincil bellek yardımıyla ana belleğin kapasitesi artırılır. Sanal bellek, ana belleğin bir benzeri olduğu için sanal bellekte de adresler vardır. Ancak bunlar sanal adreslerdir.

4. Sanal bellek (Virtual Memory) Bellekte sadece kısmen bir programı çalıştırmak birçok faydalar sağlayacaktır: Program kullanılabilir fiziksel bellek ile kısıtlı olmayacaktır. Kullanıcı programlarının daha bellek kullanımı ile, aynı zamanda daha fazla program çalışabilecektir. Sanal adres uzayı, bir işlemin bellekte nasıl depolandığını gösterir bir görüntüdür. sanal bellek yönetiminde yaygın olarak uygulanan teknikler Demand-Paged, SegmentedandDemand-Pagedolarak sıralanabilir.

4.1 Demand-Paged(İstenebilir-Sayfalı) Demand-Paged bellek yönetim tekniğinin temelini oluşturan kavram ise bir programa ilişkin adresleme alanının tümüyle fiziksel alana yerleştirilmesi zorunluluğunun olmamasıdır Sayfalı bellek yönetiminde programlar, derleyiciler tarafından eşit uzunlukta sayfalar biçiminde hazırlanırlar. Sanal bellek düzeni çerçevesinde hazırlanan bu programların ana belleğe yüklenmeye hazır kopyaları, tümüyle diskte oluşturulur. Diskte yer alan sayfalardan bir kesimi ana belleğe yüklenerek işletim başlatılır. Sanal bellek düzeninde program sayfaları diskte de saklandığından işletime alınan her görev için, sayfa tanım çizelgesi gibi, bir de kütük tanım çizelgesi tutulur. Kütük tanım çizelgeleri program sayfalarının diskte saklandığı tutanak adreslerini içerir. 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ı

4.1 Demand-Paged(İstenebilir-Sayfalı)

4.1 Demand-Paged(İstenebilir-Sayfalı) Bu yöntemde programlar ve veriler sayfalama yönteminde olduğu gibi derleyici/çeviriciler aracılığı ile eşit uzunlukta sayfalara bölünürler. işletimi istenen her işe gereksediği tüm bellek alanını karşılayacak kadar ikincil bellek atanır. Öğelere erişim sayfalama yönteminde olduğu gibi registerler aracılığı ile gerçekleştirilir. Ancak bu yapılarda erişilen sayfanın ana bellekte bulunup bulunmadığını belirleyen bir de belirteç yer alır. Adresleme sürecinde erişilmek istenen sayfa ana bellekte değilse bu gösterge aracılığı ile süreci durdurmak üzere bir kesilme üretilir. işletim sistemi kesilmenin nedenini saptayarak gereksenen sayfanın ana belleğe taşınmasına çalışacaktır. Sayfa ana belleğe getirildiğinde işletimi kesilen komut yeniden başlatılır ve bu süreç iş sonuna değin sürdürülür.

4.1 Demand-Paged(İstenebilir-Sayfalı)

4.1 Demand-Paged(İstenebilir-Sayfalı) Bu durumda iki sorun söz konusudur: 1) Bir program (iş) fiziksel alana yansıtılmamış bir page'deki bilgilere erişmek isterse ne olacaktır? 2) Hangi page'lerin bellekte tutulması gerektiğinde nasıl karar verilecektir? hangi bilgilerin bellekte olduğunu belirlemek için "page map table" ında " 1 bitlik bir statü bilgisi tutulmaktadır. Statü bit'i; Hayır-0(Page bellekte değil) Evet-1(Page bellekte) Bellekte bulunmayan bir page'e erişmek istendiğinde page mapping donanımı, statüsü (0) olan bu page için bir "page- interrupt" ı oluşturur. Bu interrupt'ın servisini yapan işletim sistemi istenilen page'i belleğe yerleştirir ve page map table'da gereken düzenlemeleri yapar. İşte page'lerin gerektiğinde belleğe yüklenmesi nedeniyle bu tekniğe "Demand- Paged" bellek yönetim tekniği adı verilmektedir.

4.1 Demand-Paged(İstenebilir-Sayfalı) Bellekteki bütün bloklar kullanıldığında yeni gelen page nereye yerleştirilecektir?. Ana bellekteki bütün bloklar kullanılıyorsa, yeni bir page'i belleğe yerleştirmek için bellekteki bloklardan birisinin boşaltılması gereklidir. Bunun için boşaltılacak bloktaki bilgilerin ikincil belleğe kopya edilmesi gerekmektedir. Bu işleme page swapping, page removal, page replacement veya page turning adı verilmektedir. Bir diğer soru ise, hangi blokun boşaltılabileceği hakkında nasıl karar verilmelidir? Bu konu ile ilgili birçok çalışma yapılmış ve çeşitli pagereplacement algoritmaları geliştirilmiştir.

4.1 Demand-Paged(İstenebilir-Sayfalı) Adresleme Sürecinin İncelenmesi Bu yöntemde adresleme süreci donanım ve yazılımın tümlediğibir yapıyı kullanır. Erişilmek istenen sayfanın bellekte bulunmadığı durumlarda adresleme sürecinin kesilmesi belirsiz bir süre sonunda çözümlenecek bir aramaya girilmesinden kaynaklanır. Bu aramayı adım adım incelediğimizde çözümleyebileceğimiz sorunları şöyle sıralayabiliriz; a) Bellekte atanacak boş bir sayfa bulma, b) Boş yer yoksa, yer açmak üzere bir seçim yapmak, c) Ana bellekten atılacak sayfa ikincil bellekteki kopyasından farklı ise, yani günlenmiş ise (içindeki veriler değiştirilmiş ise) bu sayfayı ikincil bellekteki yerine yazmak, d) Erişilmek istenen sayfayı ana belleğe yüklemek, e) İşletimi kesilen komutu yeniden başlatmak.

4.1 Demand-Paged(İstenebilir-Sayfalı) Adresleme Sürecinin İncelenmesi

4.1 Demand-Paged(İstenebilir-Sayfalı) Sayfa Çıkarma Algoritmaları: Eksik sayfa uyarısı sonrasında, erişilmek istenen sayfanın taşınacağı boş bir sayfa bulunamaması durumunda bellekten çıkarılacak sayfanın seçimi gündeme gelir. Bu seçim değişik algoritmalara dayalı olarak yürütülür. Bunlar; İlk giren sayfayı çıkarma (FIFO: First Input Fisrt Output) En geç erişilecek sayfayı çıkarma (Optimal) En erken erişilmiş sayfayı çıkarma (Least Recently Used LRU)

4.1 Demand-Paged(İstenebilir-Sayfalı) 1.İlk Giren Sayfayı Çıkarma Algoritması (FIFO) : Bu algoritmanın temelinde belleğe birinci sunulmuş sayfanın gelecekte erişim olasılığının düşük olması varsayımına dayanır. Sayfalar FIFO kuyruğunu oluşturur. Yeni bir sayfanın belleğe sunulması gerektiğinde kuyruğun başındaki sayfa seçilir. Kuyruk her erişilen sayfa değiştiğinde güncellenir. Algoritması basit ve hızlıdır. Ancak belleğe ilk girmiş sayfanın gelecekte kullanım olasılığının düşük olacağı varsayımı doğru değildir. Öyle ki, görevin en sık kullanılan sayfaları da belleğe erken sunulmuş olabilir. Bu bakımdan sık sık erişilen sayfaların da bellekten çıkarılma olasılığı yükselir ve yer değişmelerin(takas:swapping) sayısı artar.

4.1 Demand-Paged(İstenebilir-Sayfalı) 2. En Geç Erişilecek Sayfayı Çıkarma Algoritması (Optimal): Bu algoritmaya göre yakın gelecekte kullanılmayacak sayfalar sayfa tablosundan çıkarılır. Örn: Eğer bir sayfa 800 komuttan, diğeri ise 600 komuttan sonra erişilecekse sayfa çıkarmak gerektiğinde algoritmaya göre 1 sayfa (800 komuttan sonra çalışacak olan) çıkarılacaktır. Kuramsal olarak en iyi sonucu verecek algoritmadır. Bu sayfa değiştirme algoritması sabit sayılı çerçeveler için mümkün olan en düşük sayfa hatası oranını garanti eder.

4.1 Demand-Paged(İstenebilir-Sayfalı) 3. En Erken Erişilmiş Sayfayı Çıkarma Algoritması (LRU): Bu algoritmada temel olarak sayfaların belleğe yüklenme zamanı değil onlara erişilme zamanı önemlidir. Algoritmanın temelinde son zaman diliminde kullanılmamış bir sayfanın gelecekte de kullanılma olasılığının düşük olacağı varsayımına dayanır. Algoritmaya göre sayfa çıkarma gerektiğinde, o ana kadar en erken erişilmiş sayfa çıkarılır. Algoritma ilk giren sayfayı çıkartma algoritmasına göre daha iyi sonuç verir ama daha karmaşıktır. En erken erişilmiş sayfayı belirlemek için bir sayaç kullanılır. Belleğe her erişimde sayaç bir arttırılır. Sayacın içeriği sayfa tablosunda saklanır. Bellekten sayfa çıkartmak gerektiğinde sayaç değeri en küçük olan sayfa seçilir. Her bellek erişiminde sayaçlarda güncelleme yapıldığından algoritmanın verimliliği hız açısından düşer. Algoritma özel donanımla gerçekleştirilir.