Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
İşletim Sistemleri (Operating Systems)
2
Bellek Yönetimi (Memory Management)
3
Bellek Yönetimi (Memory Management)
Bilgisayar bilimlerinin önemli konularından birisi olan işletim sistemlerinin bir görevi de belleği verimli yönetmektir (memory management). Sınırlı miktarda bellek bulunmakta ve çalışan her program bir miktar belleğe ihtiyaç duymaktadır. İşletim sistemi (operating system) bu hafızayı ne kadar verimli kullanırsa ve process’leri ne kadar düzgün yerleştirirse belleğin içerisine sığabilen program miktarı o kadar fazla olur.
4
Cache on Chip (internal cache)
Bellek Organizasyonu Von Neumann mimarisine sahip bir bilgisayar sisteminde bellek en az üç seviyeden oluşur; en üst seviyede CPU kaydedicileri (registers), orta seviyede ana-birincil bellek (RAM) ve en alt seviyede de ikincil bellektir. Kaydedicilere CPU’nun bir saat çevriminde ulaşması mümkündür. Ana belleğe erişim ise birçok saat çevrimi gerektirir. Ana Bellek ile CPU arasına çok daha hızlı ve CPU’ya yakın bir saklama alanı oluşturulur (cache). CPU Registers Ana Bellek Cache on Chip (internal cache) External Cache memory RAM İkincil Bellekler Hard Disk CD ROM Floppy Tape Kapasite daha büyük Erişim Daha Hızlı
5
Fiziksel Ana Bellek Yarıiletken teknolojisi olarak üretilmişlerdir.
Günümüzde DRAM bellekler nispeten ucuz oldukları için büyük bellekli sistemler oluşturmak mümkün olabilmektedir. DDR(Double Data Rate) standardında üretilmektedirler. DDR5 grafik kartlarında yoğun olarak kullanılmaktadır. Bilgisayar sistemlerinde ise DDR4 bellekler kullanılmaktadır. DDR Standardı İç hızı(MHz) Yol hızı(MHz) Transfer Hızı(GB/s) Gerilim(V) DDR2 1.8 DDR3 1.35/1.5 DDR4 1.2
6
İkincil Bellek Fiziksel ana belleğin kapasitesinin tüm process’lerin fiziksel belleğe sığması için yeterli olmadığı durumlarda ikincil bellekten yararlanılır. İkincil bellek olarak kapasitesi ana belleğe göre daha fazla olan ancak daha yavaş erişim başarımına sahip mekanik diskler kullanılır. Son dönemde mekanik disklerin yerini daha pahalı ancak erişim başarımı mekanik disklere göre çok daha iyi olan katı hal (solid state) diskler almaktadır.
7
Bellek Yönetimi İşletim sisteminin birincil görevi temel sistem kaynakları olan işlemci, ana bellek ve diski, kullanıcılar ve onların process’leri arasında paylaştırmaktır. Kullanıcı process’lerinin çalışabilmesi için bellekte bulunması gerekir. İşletim sisteminde fiziksel belleğin yönetiminden sorumlu olan birime bellek yöneticisi adı verilir. Bellek yöneticisi çalışan process’lerin hangi bellek bölümüne yerleşeceğine karar verir, bellek erişimini ve yerleşimini denetler, process’ler arasında bellek paylaşımını organize eder.
8
Bellek Yönetim Birimi (Memory Management Unit-MMU)
Mantıksal adres CPU tarafından oluşturulur. Kullanıcı programı, mantıksal adreslerle ilişki kurar ve hiçbir zaman gerçek fiziksel adresleri tanımaz. MMU(Memory Management Unit) mantıksal adresleri fiziksel adreslere haritalayan donanım birimidir. MMU planında, relocation register’deki değer, kullanıcı işlemiyle hafızaya gönderildiği anda oluşturulan her mantıksal adrese eklenir. Fiziksel Adres: Bellek üzerindeki gerçek adres Mantıksal Adres: İşlemci üretir Göreceli Adres: Adres bir referans noktasına göre ifade edilir. (Genelde proses başlangıç adresi+değer) Bellek Yönetim Birimi: Mantıksal adres->Fiziksel adres
9
Bellek Yönetimi CPU’nun process’ler arasında paylaşımı, ana bellek paylaşılmaksızın gerçekleşemez. Çok process’li sistemlerde, ana belleğin işletim sistemi kullanımı dışında olan alanı, farklı process’lerin kullanımı için değişik parçalara (bitişken alanlara) bölünür. Bir process için ayrılan alanın başlangıç adresi ve son adresi belirlenmelidir. Belleğe process’lerin yerleşimi Tavan (Limit) ve Taban (Base) kaydedicileriyle donanımsal olarak sağlanır. Tavan kaydedicisi uzunluğu belirtmektedir ve taban ve tavan kaydedicisi toplanarak process’in bittiği adres bulunabilir.
10
Bellek Yönetimi Ana belleğin process’ler arasında paylaştırılmasına ana bellek yönetimi ya da bellek yönetimi (memory management) adı verilir. İşletim sisteminin bu amaçla oluşturulan kesimine de bellek yöneticisi (memory manager) adı verilir.
11
Bellek Yönetimi Bellek yöneticisinin başlıca görevleri:
Process’lere bellek tahsis etmek (allocate), tahsis edilen belleği geri almak (deallocate), Belleğin hangi parçalarının kullanımda olduğunu, hangi parçalarının (bitişken alanların) kullanılmadığını izlemek, Bellek ile disk arasındaki yer değiştirme (swap) işlemlerini gerçekleştirmek.
12
Bellek Bölümleme (Memory Partitioning)
Modern işletim sistemleri aynı anda birden fazla process’in çalışmasına olanak verir. Ana bellek, birden fazla process arasında paylaştırılmalı ve bölünmelidir. Bunu yapabilmek için kullanılan yöntemler: Değişmez Bölümlü Belek Yönetimi (Fixed partitioning) Dinamik Bölümlü Bellek Yönetimi (Dynamic partitioning) Sayfalı Bellek Yönetimi (Paging) Kesimli Bellek Yönetimi (Segmentation) Fixed partitioning ve Dynamic partitioning, artık günümüz işletim sistemlerinde kullanılmamaktadır.
13
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
İşletim sisteminde ana belleğin bir bölümü işletim sisteminin kendisine ayrılmıştır. Geri kalan bellek alanı ise bellek yöneticisi tarafından process’ler arasında paylaştırılır. Bellek alanı eşit (equal-size partitioning) veya eşit olmayan (unequal-size partitioning) uzunlukta bölümlere ayrılabilir.
14
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Bellek çok sayıda eşit veya eşit olmayan boyutta bölüme ayrılabilir ve her bölüm bir process’i içerebilir. Process’in hangi bölüme yerleştirileceği fark etmez. Multiprogramming sistemlerde eşzamanlı çalışan program sayısı ayrılan bölüm sayısına bağlıdır. Bir bölüm boşaldığında, hazır kuyruğunda bekleyen bir process seçilerek bölüme atanır.
15
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Equal-size partitioning : Değişmez bölümlü bellek yönetiminde bölümler sabit bir büyüklükte (equal-size) olabilir. Toplam büyüklüğü 64M, bölüm boyutları da 8M olan bir bellek yan tarafta görünmektedir. 10M bir process istek yolladığında 2 bölüm birleştirilecek ve bu istek kaydedilince 6M’lık bir iç parçalanma (internal fragmentation) oluşacaktır.
16
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Değişmez bölümlü bellek yönetiminde bölümlerin sabit bir büyüklükte olması durumunda her process ne kadar boyu küçük de olsa tam bir bölmeyi elinde tuttuğu için iç parçalanma (internal fragmentation) olayına sebebiyet vermektedir. Dolaysıyla bellek kullanımı verimli değildir. Bu durumda; eşit boyda olmayan bölümler kullanılması sorunu bir derece çözer.
17
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Unequal-size partitioning : Değişmez bölümlü bellek yönetiminde bölümler farklı büyüklükte (Unequal-size) de olabilir. Bölüm içi boş kalan yer miktarını en aza indirmek üzere her proses sığacağı en küçük bölmeye yerleştirilir. Toplam büyüklüğü 64M, bölüm boyutları da farklı olan bir ana bellek yan tarafta görünmektedir. 10M bir process istek yolladığında en az iç parçalanmanın oluşacağı bölüm bulunacak process bu bölüme konulacaktır.
18
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Farklı büyüklükteki bölüm boyları olduğu durumda; Her process sığacağı en küçük bölüme yerleştirilir. Ayrılan her bölüm için bir process kuyruğu bulunur. Bir process geldiği zaman kendisini tutabilecek olan en küçük boyutlu bölümün giriş kuyruğuna eklenir. Bölüm içi boş kalan yer miktarını en aza indirmek amaçlanır. Bir process eklendiği bölümün hepsini kullanmaz ise bu kullanılmayan bellek boşuna kullanılmış ve israf edilmiş olur.
19
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Gelen processler boyutlarına göre kuyruklara eklendiğinde, büyük boyutlu bellek bölgelerinin kuyrukları boş kalıp kullanılmaz iken, küçük boyutlu bellek bölgelerin kuyrukları dolu olabilir. Kuyruk dolu olduğunda gelen process boş yer olmasına rağmen bekler. Bunun yerine tüm processler bir kuyruğa konulur ve sıraları geldiğinde uygun bellek gözüne konulurlar.
20
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Bellek kullanımı etkin değil: Her program ne kadar boyu küçük de olsa tam bir bölmeyi elinde tutar. ⇒ iç parçalanma (internal fragmentation) Eşit boyda olmayan bölmeler. kullanılması sorunu bir derece çözer. Maksimum aktif proses sayısı sınırlı İşletim sistemi tarafından gerçeklenmesi kolay. Getirdiği ek yük az.
21
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Bu yöntemde bölme sayısı ve bölme boyları sabit değildir. Process’lere sadece gerektiği kadar bellek alanı atanır. İşletim sistemi belleğin boş ve dolu olan bölümlerini bir tabloda tutar. Bölümlerle ilgili bölüm başlangıç adresi, boyu gibi bilgiler tutulmaktadır. Bu yöntemde process’lere atanan bölümlerin yanı sıra, bu bölümler arasında kalan boş alanların da izlenmesi gereklidir. Kullanılmayan boş yerler yine de oluşur. Dış parçalanma (external fragmentation).
22
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Örnek: 64M ana belleğin aşağıdaki dört program için kullanılacağını varsayınız.
23
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Başlangıçta ana belleğin işletim sistemi bölümünün haricindeki alanların boş olduğunu varsayınız. Programlar birbirleri ardına gerekli bölümleri oluşturarak ana belleğe yüklenirler.
24
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Bu durumda P4 process’i için bellekte yeterli yer yoktur. Yer değiştirme (swap) işlemiyle bir process sanal belleğe taşınır. P2’nin yer değiştireceğini varsayalım.
25
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
P2’nin yer değiştirmesinden sonra bellekte 14M’lık bir bölüm serbest kalır. Bu bölüme P4 yüklenebilir.
26
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
P2’nin çalışması için tekrar ana belleğe yüklenmesi gerektiğini varsayalım. Bu sefer P1’in bekleme durumunda olduğunu ve yer değiştireceğini varsayalım. Yer değiştirme olayından sonra P2 tekrardan ana belleğe yüklenebilir.
27
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Ana Belleğin Parçalanması Sorunu (dynamic storage allocation problem) : Ana belleğin parçalanması, bitişken alanların process’lere atanan bölümlerle, zaman içinde ufalanması olarak tanımlanır. Bu sorun, kullanılan bölümler arasına sıkışmış, işletim için bekleyen process’lerin gereksinimini karşılayamayan boş alanların varlığıyla ortaya çıkar. Belleğin parçalanması sonucu, bellekteki boş alanların toplamı, gerekli sığmaları karşılıyor olmasına karşın yeni process’lere yer sağlanamaz durumlarla karşılaşılır.
28
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Process’lere sağlanan alanların konumlarının işletim sırasında değiştirilememesi parçalanma sorununun temel nedenleridir. Dinamik bölümlü bellek yönetiminde bölümler arasında boş alanlar kalmakta, yani dış parçalanma (external fragmentation) oluşmaktadır.
29
Bitiştirme (Compaction)
Dinamik bölümlü bellek yönetiminde bölümler arasında boş alanlar kalmakta, yani dış parçalanma (external fragmentation) oluşmaktadır. Process’lere sağlanan bellek konumlarının işletim sırasında değiştirilememesi bitişik alanların parçalanma sorununun temel nedenidir. Bu sakıncalı durumun yok edilebilmesi için bitiştirme işlemi (compaction) kullanılabilir. Tüm bellek alanına dağılmış durumdaki bölümleri, yerlerini değiştirerek yan yana yerleştirip tek bir bitişken boş alan oluşturma işlemine bitiştirme işlemi (compaction) denir.
30
Bitiştirme (Compaction)
Bitiştirme işlemiyle tüm kullanılmayan parçalar bir yerde toplanır. Bitiştirme işlemi, işlemciyi meşgul eden, zaman alan ve dolayısıyla bilgisayarı yavaşlatan bir işlemdir. Bitiştirme ihtiyacını azaltmak için farklı yerleştirme algoritmaları kullanılır.
31
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İşletim sistemi, bellekteki boşlukların bulunduğu listeden process için en uygun boşluğu belirlemede çeşitli algoritmalar kullanır: İlk Uygun Yer Algoritması (First Fit) Sonraki Uygun Yer Algoritması (Next Fit) En Uygun Yer Algoritması (Best Fit) “Buddy” Yöntemi
32
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
First-fit en basit, genellikle en iyi ve en hızlı olanıdır. Next-fit, first-fit’e göre biraz daha kötüdür, daha fazla bitiştirme (compaction) gerektirir. Best-fit, isminin aksine en kötü performansa sahiptir. Process yerleştirildiğinde geriye kalan boş alan pek kullanılamayacağından çok daha sık bitiştirme (compaction) yapılmalıdır.
33
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İlk Uygun Yer Algoritması (First-Fit) : Bir process bellek isteğinde bulunduğunda, bellek baştan sona taranır ve process için gerekli olan bellek boyutunu sağlayan ilk boş alana yerleştirilir. Gerçekleştirmesi kolay ve en hızlı çalışan algoritmadır.
34
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Sonraki Uygun Yer Algoritması (Next-Fit) : İlk uygun yer (First Fit) algoritması ile aynı mantıkta çalışır, fakat bu algoritma en son bulduğu uygun yer bilgisini saklar. Bir sonraki aramada belleğin en başından değil de, saklamış olduğu noktadan itibaren aramaya başlar. Genellikle atamalar belleğin son kısımlarında yer alan büyük boşluklardan seçilir. Bu nedenle büyük boşluklar küçük parçalara bölünür. Bu da bitiştirme (compaction) gerektirir. İlk uygun yer (First Fit) algoritmasına göre biraz daha yavaş çalışır.
35
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
En Uygun Yer Algoritması (Best Fit) : Bu algoritma belleğin başından sonuna kadar tüm boş alanları tarar ve process için gerekli olan bellek boyutuna en uygun olan (en yakın boyuttaki) boş bellek alanına process’i yerleştirir. En yavaş çalışan algoritmadır. Çok küçük ve kullanışsız parçalanmalara sebep olur.
36
“Buddy” Yöntemi Tüm boş alan 2U boyutunda tek bir alan olarak ele alınır. Buddy sistem bellek bölümlerini 2i kB olarak ayırır. i=0,1,2,3,…. Bellek bölümleri örneğin, 256K, 64K, 32K … şeklinde olabilir. S boyutundaki bir istek eğer 2U-1 < S <= 2U ise tüm blok atanır Aksi halde blok 2U-1 boyutunda iki eş bloğa bölünür (buddy) S’den büyük veya eşit en küçük birim blok oluşturulana kadar işlem devam eder
37
“Buddy” Yöntemi
38
“Buddy” Yöntemi
39
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Örnek 1 Ana bellekteki boş ve dolu bölümlerin yan tarafta göründüğü gibi olduğunu varsayınız. 16M’lık bir yerleştirme isteğini ilk uygun (first fit), sonraki uygun (next fit) ve en uygun (best fit) yer algoritmasına göre belleğe yerleştiriniz.
40
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İlk uygun yer (first fit) algoritması 22MB’lık bölümü kullanarak 8MB’lık dış parçalanma, sonraki uygun yer (next fit) algoritması son 36MB’lik bölümü kullanarak 20MB’lik dış parçalanma, en uygun yer(best fit) algoritması da tüm yerlere bakarak 18M’lık bölümü kullanarak, 2M’lık dış parçalanma oluşturur.
41
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Örnek 2 Ana bellekte sırayla aşağıdaki boş bölümlerin olduğunu varsayınız. 24K, 20K ve 18K’lık bellek kullanım istekleri için sırasıyla hangi boşlukların kullanılacağını ve oluşacak parçalanmaları aşağıdaki algoritmaları kullanarak belirtiniz. İlk Uygun Yer (First Fit) Algoritması Sonraki Uygun Yer (Next Fit) Algoritması En Uygun Yer (Best Fit) Algoritması
42
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İlk Uygun Yer (First Fit) Algoritması 24 K Boşluk 3 (16K parçalanma) 20 K Boşluk 1 (0K parçalanma) 18 K Boşluk 4 (18K parçalanma)
43
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Sonraki Uygun Yer (Next Fit) Algoritması 24 K Boşluk 3 (16K parçalanma) 20 K Boşluk 4 (16K parçalanma) 18 K Boşluk 6 (0K parçalanma)
44
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
En Uygun Yer (Best Fit) Algoritması 24 K Boşluk 7 (0K parçalanma) 20 K Boşluk 1 (0K parçalanma) 18 K Boşluk 6 (0K parçalanma)
45
Parçalanma (Fragmentation)
Process’ler hafızaya yüklenirken ve atılırken hafıza alanları sürekli parçalanır (fragmentation). Bir process için yeterli alan olabilir, ancak bunlar küçük parçalar halinde dağılmış durumda olabilir. En kötü durumda her iki process arasında boş kısım olabilir. First fit ile yapılan istatistiksel analize göre, N tane kullanılmış bölüm için N/2 tane boş bölüm oluşur. Bu durumda belleğin 1/3 kısmı kullanılamaz. Buna %50 kuralı (50-percent rule) denir. Fragmentation çözümünde küçük bölümler yer değiştirilerek büyük bölüm elde edilir (fazla süre gerektirir). Sayfalama (paging) ve Segmentation yaklaşımları fragmentation çözümünde etkindir.
46
Mantıksal ve Fiziksel Adresler
CPU tarafından oluşturulan adrese mantıksal (veya sanal) adres, Bellekte yer alan adrese ise fiziksel adres denilmektedir. Mantıksal Adres CPU’nun gördüğü adres içeriği iken Fiziksel adres Fiziksel Belleğin gördüğü adrestir. Kullanıcı programı mantıksal adres ile ilgilenir; asla gerçek fiziksel adresi görmez. Mantıksal adresten fiziksel adrese dönüşüm Bellek Yönetim Birimi (MMU) olarak adlandırılan donanım tarafından yapılır.
47
Mantıksal ve Fiziksel Adresler
Programlar gerçek adresle değilde mantıksal adresle çalışırlar. Bir process’i belleğe yerleşirken MMU, relocation register’daki değeri CPU tarafından oluşturulan her adrese ekler (adres belleğe gönderildiğinde). Bu sayede gerçek adrese ulaşılmış olur. Mantıksal adresteki sayfa (page) fiziksel adreste çerçeve (frame) diye geçer.
48
Mantıksal ve Fiziksel Adresler
Adres işlemlerinde taban kayıt edicisi görevini yerine getiren “relocation register, yerleştirme kayıt edicisi” kullanılmaktadır. relocation register daki değer kullanıcı programları tarafından üretilen her adrese eklenir. Taban değeri ve kullanıcı programları da 346 adresine konumlandıysa adres = olacaktır. Böylece kullanıcı programı mantıksal adresle işlem yapar ve gerçek adresi hiç görememektedir.
49
Mantıksal ve Fiziksel Adresler
50
Limit ve Relocation Register
İşletim sistemi, ana belleğin alt adres (low memory) kesimine yüklenir. Kullanıcı process’leri belleğin üst adres (high memory) kesimlerine yüklenir. Relocation register: kullanılabilecek en küçük fiziksel adresi içerir. Limit register, Mantıksal adres aralığını içerir. Her mantıksal adres limit register değerinden daha küçük olmalıdır. Kullanıcı programının işletimi boyunca, Limit register çıkışları + relocation register adresi, erişilen adreslerle sürekli karşılaştırılır. Eğer kullanıcı programı, işletim sisteminin bellek alanına erişirse, program sonlandırılır. Bu denetim düzeneğine bellek koruma düzeneği denir.
51
Limit ve Relocation Register
Base register = relocation register Bu adres haritası aşağıdaki kriterlere göre donanımsal olarak adreslenir; eğer a < 0 ise bellek koruma hatası a’ = B + a eğer a’ > Tavan (limit) ise bellek koruma hatası a’ burada istenilen bellek yeridir.
52
Sayfalı Bellek Yönetimi (Paging)
Hem değişmez (fixed) hem de dinamik (dynamic) bölümleme, belleği verimsiz kullanırlar: biri iç parçalanmaya diğeri ise dış parçalanmaya neden olurlar. Belleğe yeni process’lerin yüklenmesi ve biten process’lerin kaldırılması sırasında, bellekte verimsiz boşluklar oluşur. Belleğin çeşitli yerlerinde küçük parçaların kalması sonucunda bellekte toplamda yeterli yer olmasına karşılık yeni bir process bu parçalara bölünemeyeceği için bellekte yetersiz yer problemi ile karşılaşılacaktır. İç ve dış parçalanma sorununun üstesinden gelmek için sayfalı bellek yönetimi (paging) kullanılabilir.
53
Sayfalı Bellek Yönetimi (Paging)
Sayfalama (paging) yönteminde, Process’lerin mantıksal adres evrenleri, birbirini izleyen, eşit uzunlukta parçalardan oluşur. Bu parçalar program sayfası (page) olarak adlandırılır. Fiziksel bellek (RAM) ise çerçeve (frame) adı verilen küçük bloklara bölünür. Eşit boylu process parçaları: sayfa Eşit boylu bellek parçaları: çerçeve Genelde fiziksel bellek çerçeve uzunlukları (frame size) ve process sayfa uzunlukları (page size) eşittir. Ancak bu bir şart değildir. Sayfaların uzunlukları donanım tarafından belirlenmektedir.
54
Sayfalı Bellek Yönetimi
Her process eşit uzunluktaki sayfalara, ana bellek de eşit uzunluktaki çerçevelere ayrılmıştır. İşletim sistemi her process için sayfa tablosu tutar. Sayfa tabloları bellekte tutulur. Process’lerin hangi sayfasının hangi çerçevede olduğu bilgisi process’lerin sayfa tablosunda tutulmaktadır. Yandaki örnekte sayfa 0, çerçeve 1’de, sayfa 1 çerçeve 4’te, sayfa 2 çerçeve 3’te ve sayfa 3 de çerçeve 7’de yer almaktadır.
55
Sayfalı Bellek Yönetimi
Proseslerin sayfa tablosu değerleri Process sayfalarına bellek çerçevelerinin atanması
56
Sayfalı Bellek Yönetimi
Sayfa uzunluğu donanım tarafından mikroişlemci mimarisinde belirlenir. (2’nin katları; 512 byte, 16 MB,…)
57
Sayfalı Bellek Yönetimi
İşletim sistemi bu yöntemi kullanırken boş çerçevelerin de listesini tutar.
58
Sayfalı Bellek Yönetimi
Sayfalı bellek yönetimi olan sistemlerde CPU tarafından oluşturulan her adres (mantıksal adres) iki bölümden oluşmaktadır: sayfa numarası ve sayfa ofseti. Sayfa numarası (p) fiziksel bellekteki her bir sayfanın taban adresini tutan sayfa tablosundaki göstergedir. Sayfa ofseti (d) taban adresi ile birleştirilerek fiziksel bellekte sayfanın içerisindeki yerin belirlenmesinde kullanılır. Sayfa tablosunda hem sayfa hemde ofset adresi bulunmaktadır. 16-bitlik bir örnek adres uzayı için, yüksek anlamlı 6-bit sayfa numarasını taşır, düşük anlamlı 10-bit ise sayfa ofset değerini gösterir. Sayfa Numarası (p) Sayfa Ofseti (d)
59
Sayfalı Bellek Yönetimi
Mantıksal bellekteki bir adres, sayfa numarası ve sayfa ofsetinden oluşmaktadır. Bu adresin fiziksel bellekteki karşılığının bulunması için sayfa tablosu kullanılır. Sayfa numarası, sayfa tablosu içerisindeki indeks değeri için kullanılır. Sayfa tablosu, her sayfanın fiziksel hafızadaki base adresini içerir. Sayfa ve çerçeve boylarının ikinin kuvvetleri şeklinde seçilmesi dönüşüm hesaplamalarını basitleştirir.
60
Sayfalı Bellek Yönetimi
Örnek 4 bayt uzunluğunda sayfalardan oluşan 32 bayt’lık bir bellek olduğunu varsayınız. Sayfa tablosu yanda verilmiştir. Buna göre aşağıdaki mantıksal adresler için fiziksel adresleri bulunuz. a) 0 b) 3 c) 4 d) 13 Fiziksel adresi hesaplamak için aşağıdaki formül kullanılabilir: Fiziksel Adres (FA)=(Çerçeve Numarası (ÇN)*Çerçeve Boyutu (ÇB))+Ofset (O)
61
Sayfalı Bellek Yönetimi
Çözüm : İlk olarak mantıksal belleğin çizilmesi gerekir. Sayfa boyu : 4 bayt, bellek boyu : 32 bayt Ardından sayfa boyutuna göre belleğin bölünmesi ve her bir mantıksal adresin sayfa numarası ve sayfa ofsetinin hesaplanması gerekir. Sayfa numarası, sayfa tablosundan çerçeve numarasını bulmak için kullanılacaktır.
62
Sayfalı Bellek Yönetimi
a) mantıksal adres : 0 sayfa numarası=0 sayfa ofseti=0 0 numaralı sayfanın bulunduğu çerçeve numarası=5 FA=ÇN*ÇB+O FA=5*4+0=20
63
Sayfalı Bellek Yönetimi
b) mantıksal adres : 3 sayfa numarası=0 sayfa ofseti=3 0 numaralı sayfanın bulunduğu çerçeve numarası=5 FA=ÇN*ÇB+O FA=5*4+3=23
64
Sayfalı Bellek Yönetimi
c) mantıksal adres : 4 sayfa numarası=1 sayfa ofseti=0 1 numaralı sayfanın bulunduğu çerçeve numarası=6 FA=ÇN*ÇB+O FA=6*4+0=24
65
Sayfalı Bellek Yönetimi
d) mantıksal adres : 13 sayfa numarası=3 sayfa ofseti=1 3 numaralı sayfanın bulunduğu çerçeve numarası=2 FA=ÇN*ÇB+O FA=2*4+1=9
66
Sayfalı Bellek Yönetimi
Örnek: Mantıksal adreslerin 16 bit ve sayfa boyutunun 1KB olduğu varsayılsın. Program başına göre bağıl adresi 1253 olan bir bellek erişiminin mantıksal adres eşdeğerini bulunuz.
67
Sayfalı Bellek Yönetimi
16 bit ile 64KB’lik bir alan adreslenebileceğinden 64 tane frame mevcuttur. 64 sayfa 6 bit ile temsil edilebilir, geriye kalan 10 bit de ofset değeridir. (1253)10 adresinin binary karşılığı ( )2’dir. sayfa_no=1 ofset=229 En anlamlı 6 bit sayfa numarası olacağından, bu erişim birinci sayfada ve ofset değeri 229 olan bellek erişimidir.
68
Sayfalı Bellek Yönetimi
Mantıksal Adresten Fiziksel Adres Dönüşümü Adres uzayı (p+d) bitten oluşsun (p:sayfa numarası, d:ofset değeri). Bir önceki örneğe göre p 6 bit ve d 10 bit olacaktır. Dönüşüm için gerekli adımlar, Mantıksal adresin en anlamlı 6 biti ayrılır, Elde edilen sayfa numarası sayfa tablosunu indekslemek için kullanılır. Frame numarası (f) bulunur, frame’in başlangıç adresi f×2o olacaktır ve gerçek adres de bu değere ofset değerinin eklenmesiyle bulunur. Mantıksal adres p: d: 000011 001100 000110 Process sayfa tablosu Fiziksel (gerçek) adres
69
TLB(Translation Lookaside Buffer) ile Sayfalama
TLB, sayfalama işleminin (paging) hızını arttırmaya yarayan bir hafıza bölümüdür. Sayfa tablosunda çerçeve adresini ararken kaybedilen süreyi önlemek için kullanılan özel, küçük ve hızlı bir ön bellektir. Günümüzdeki çoğu bilgisayar mimarisi tarafından desteklenmektedir. Mantıksal bir sayfanın adresi dönüştürüldüğünde sayfadaki öbeklere ulaşımın tekrarı ve dolayısıyla o dönüşümün yakın bir zamanda tekrar kullanılma ihtimali yüksektir. Günümüz makineleri yakın zamanda kullanılan sayfa tablosu satırlarını tutan ve adres dönüşümlerinin izini süren bir ön belleğe sahiptir. Bu özel yapıya Etkin sayfalar ön belleği (Translation Lookaside Buffer-TLB) adı verilir. Etkin sayfalar ön belleği sadece sayfa tablosu eşleştirmelerinin sadece bir kısmını tutan bir ön bellektir.
70
TLB(Translation Lookaside Buffer) ile Sayfalama
CPU tarafından mantıksal bir adres tanımlandığında bu sayfa numarası TLB’ye iletilir. Sayfa numarası burada bulunursa (TLB hit) çerçeve adresi hızlı bir biçimde kullanılarak belleğe ulaşılır. TLB miss oluşursa (sayfa numarası TLB de yoksa) sayfa tablosuna gidilerek çerçeve adresi bulunur ve bu TBL’ye eklenir ki böylece bir daha ihtiyaç olduğunda bu adres hızlı bir biçimde bulunabilir. Eğer TLB alanı dolarsa, işletim sistemi buradaki en az kullanılan değerleri bularak bunların yerine yeni değerleri ekleyecektir.
71
Hiyerarşik Sayfa Tablosu
Mantıksal Adres alanını çoklu sayfa tablolarına böler. İki seviyeli sayfa tablosu olarak uygulanabilir. Modern bilgisayar sistemleri çok büyük mantıksal adres alanlarını kapsamaktadır. (232’den 264’e kadar ) bu durumda sayfa tablosu da çok büyük olmaktadır. Örneğin, 32 bitlik mantıksal adres alanında, sayfa büyüklüğü 4K (212 ) olarak alınırsa sayfa tablosu 232/212 = 1 milyon girişe sahip olacaktır. Bu değer de çok büyük olduğu için, sayfa tablosunu bütün olarak ana bellekte tutmak yerine, sayfa tablosunu parçalara ayırmak daha uygun olmaktadır. Sayfa Tablosuna erişmek için Sayfa Tablosu kullanılması ! 32 bitlik bir sistem 4K’lık sayfalara bölündüğünde mantıksal adresteki sayfa numaraları 20 bitlik , sayfa ofseti ise 12 bitlik olmaktadır. Biz sayfa tablosunu da sayfalandırdığımız için 20 bitlik sayfa numarası da 10 bitlik sayfa numarası ve 10 bitlik sayfa ofseti olarak tekrar ikiye ayrılacaktır. Burada p1 parçaladığımız sayfa tablosundaki indeksi, p2 ise sayfa tablosundaki yerleşimi temsil etmektedir.
72
İki seviyeli Sayfa Tablosu
73
İki Seviyeli Sayfa Mantıksal Adres (o 32-bitlik sistemde with 1K sayfa büyüklüğü) aşağıdaki gibi bölünür : Sayfa numarası 22 bit (32-10=22) Sayfa ofseti 10 bit (1K=2 10) Sayfa tablosu da sayfalandırılacağı için aşağıdaki gibi bir bölümlendirme yapılabilir: 12 bit sayfa numarası 10 bit sayfa ofseti Mantıksal adres aşağıdaki gibi olur: p1 dış sayfa tablosu için indeks ve p2 ise iç sayfa tablosu için yerleşimi içerir. forward-mapped page table Sayfa numarası sayfa ofseti p1 p2 d 12 10 10
74
Adres Geçişi
75
Kesimli Bellek Yönetimi (Segmentation)
Kesimli bellek yönetiminde (segmentation) mantıksal adres alanı sayfalar yerine segmentlerden (kesimlerden) oluşmaktadır. Programların tüm segmentleri aynı boyda olmak zorunda değildir. Ancak segment boyunun bir üst sınırı bulunur. Maksimum segment boyunun bilinmesi gerekir. Bir programın derlenmesi sırasında derleyici segment atamalarını gerçekleştirir.
76
Kesimli Bellek Yönetimi (Segmentation)
1 4 2 3 1 2 3 4 user space physical memory space
77
Kesimli Bellek Yönetimi (Segmentation)
Bir mantıksal adres, hem segment numarası (s) hem de segment içerisindeki adresi belirten ofset numarasından (d) meydana gelmektedir. Mantıksal Adres: <segment-numarası, ofset>, Segment numarası (s) Offset değeri (d)
78
Kesimli Bellek Yönetimi (Segmentation)
Mantıksal adreslerin fiziksel adreslere dönüştürülmesi için segment tablosuna ihtiyaç vardır. Segment tablosu, her segmentin başlangıç (taban) adresi ve uzunluğu bilgisini tutmaktadır. Böylece her segmentin başlama ve bitiş (tavan adresi) noktaları hesaplanabilir. Segment tablosundan segmentin adresi ve boyu alınır. Segment boyları eşit olmadığından dinamik bölmelemeye benzer özelliklere sahiptir. Bir program birden fazla segmentden oluşabilir. Bir programa ilişkin segmentler bellekte ardışıl yerleşmek zorunda değildir.
79
Kesimli Bellek Yönetimi (Segmentation)
Bir mantıksal adresin ofset değeri, taban ve tavan değerleri arasında olmalıdır. Eğer ofset değeri fazla olursa mantıksal adresin segmenti aşması bellek erişim hatası (segment fault) oluşur. Eğer ofset değeri belirtilen sınırlar arasında ise segment taban değeri ile ofset adresi toplanarak, fiziksel adres oluşturulmaktadır. Fiziksel Adres (FA) = Segment Taban Adresi (TA) + Ofset (O)
80
Kesimli Bellek Yönetimi (Segmentation)
Segment ve offset adresiyle iki boyutlu adresleme yapılır. Bellek adresleri tek boyutludur ve dönüştürme işlemi gereklidir. Segment table – İki boyutlu fiziksel adrese dönüştürme işleminde kullanılır. Base (Taban) : Bellekte segmentin başlangıç adresini tutar. limit : Segmentin uzunluğunu tutar.
81
Kesimli Bellek Yönetimi (Segmentation)
82
Kesimli Bellek Yönetimi (Segmentation)
Mantıksal adres alanının yanda göründüğü gibi olduğu varsayılırsa. Segment tablosu bu bilgiler kullanılarak elde edilebilir. Fiziksel bellek de segment tablosu kullanılarak oluşturulabilir.
83
Kesimli Bellek Yönetimi (Segmentation)
Örnek Segment tablosunun yandaki gibi olduğunu varsayınız. Aşağıdaki mantıksal adreslerin (segment no, ofset) fiziksel adres karşılıklarını bulunuz. a) (0, 198) b) (2, 156) c) (1, 530) d) (3, 455) e) (0, 252) Fiziksel adresi hesaplamak için aşağıdaki formül kullanılabilir: Fiziksel Adres (FA) = Segment Taban Adresi (TA) + Ofset (O) Segment No Taban Adresi Uzunluk 660 248 1 1752 422 2 222 198 3 996 604
84
Kesimli Bellek Yönetimi (Segmentation)
İlk olarak her mantıksal adresin hangi segmentde olduğu segment tablosu kullanılarak bulunmalı ve ofset değeri bu segmentin uzunluğu ile karşılaştırılmalıdır. Eğer ofset küçükse fiziksel adres hesaplanmalı, değilse bellek erişim hatası oluşturulmalıdır. Mantıksal adres Fiziksel adres a) (0, 198) 198 < 248 = 858 b) (2, 156) 156 < 198 = 378 c) (1, 530) 530 ≮ 422 bellek erişim hatası d) (3, 455) 455 < 604 = 1451 e) (0, 252) 252 ≮ 248 Segment No Taban Adresi Uzunluk 660 248 1 1752 422 2 222 198 3 996 604
85
Sayfalı ve Kesimli Bellek Yönetimleri Arasındaki Farklar
Kesimli bellek yönetiminin amacı adres alanının mantıksal olarak dilimlenmesidir. Sayfalı bellek yönetiminde ise bellek fiziksel olarak dilimlenip oluşturulur. Sayfalar makine donanımına bağlı olarak sabit boyuttadır. Segmentler ise değişken boyuttadır. 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 segment ve ofset numarasında bir sınır aşması söz konusu değildir. Bu durumda bellek erişim hatası oluşur.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.