Sunuyu indir
1
Chapter 9: Bellek Yönetimi
Genel bilgiler Konum değiştirme Yan yana yerleştirme Yer Değiştirme Bölütleme Sayfalama ile Bölütleme Operating System Concepts
2
Genel Bilgiler Program hafızaya çağrılmalı ve çalıştırmak için bir düreçten geçirilmelidir. Girdi sırası – diskte hafızaya çağrılmayı bekleyerek programı çalıştırmaya yarayan işlemler grubu Kullanıcı programları, çalıştırma aşamasından önce bir çok fazdan geçer. Operating System Concepts
3
Talimatlar ve verileri hafızaya adreslemek
Talimat ve verilerin adres ilişkilendirmelerinin hafıza adreslerine bağlanması üç farklı aşamada gerçekleşir. Operating System Concepts
4
Talimatlar ve verileri hafızaya adreslemek
Derleme zamanı: Eğer hafızanın konumu öncelikliyse, mutlak kod oluşturulabilir. Eğer başlangıç konumları değişirse kod tekrar derlenmelidir. Yükleme zamanı: Derleme zamanında hafızanın yeri bilinmediği takdirde yer değiştirebilir kod oluşturulmalıdır. Çalıştırma zamanı: İşlem, yürütme sırasında bir hafıza segmentinden ötekine yer aktarılabilirse ilişkilendirme ertelenir. Adres haritaları için donanım desteği gereklidir(e.g., base and limit registers). Operating System Concepts
5
Kullanıcı Programı Çoklu İşleme
Operating System Concepts
6
Mantıksal - Fiziksel Adres Alanı
Hafıza yönetiminde, kendisinden bağımsız fiziksel adres boşluğuna bağlanmış olan bir mantıksal adres boşluğunun konsepti, hafıza yönetiminde esastır. Mantıksal adres – CPU tarafından oluşturulur. Sanal adres olarak da kullanılır. Fiziksel adres – hafıza birimi tarafından tanınan adresler. Operating System Concepts
7
Mantıksal - Fiziksel Adres Alanı
Derleme zamanı ve yükleme-zamanı adres-ilişkilendirme planlarında mantıksal ve fiziksel adresler benzerdir. Mantıksal (sanal) ve fiziksel adresler ise çalıştırma-zamanı adres-ilişkilendirme planlarında ayrışırlar. Operating System Concepts
8
Bellek Yönetim Birimi (MMU)
Sanalı fiziksele haritalayan donanım cihazı. MMU planında, yeniden konumlandırma kaydedicisindeki değer, kullanıcı işlemiyle, hafızaya gönderildiği anda oluşturulan her adrese eklenir. Kullanıcı programı, mantıksal adreslerle ilişki kurar ve hiçbir zaman gerçek fiziksel adresleri tanımaz. Operating System Concepts
9
Dinamik Yer Değiştirme ile Register Değiştirme
Operating System Concepts
10
Dinamik Yükleme Program, çağrılmadıkça yüklenmez.
Hafıza alanından daha çok fayda sağlanmasıdır. Kullanılmamış program hiçbir zaman yüklenmez. Nadir olarak ortaya çıkan durumlarla baş edilmesi için gerekli olan büyük miktardaki koda ihtiyaç duyulduğunda kullanışlıdır. İşletim sistemi için özel bir destek gerekli değildir Program yazılımı sırasında tamamlanır. Operating System Concepts
11
Dinamik Bağlama Çalıştırma zamanına kadar ilişkilendirme ertelenir.
Küçük bir kod parçası olan olan stub (kalıntı), uygun olan hafıza-yerleşimi kitaplığı altprogramının yerini tespit etmek için kullanılır. Stub, altprogramın adresiyle kendisinin yerini değiştirerek altprogramı yürütür. Altprogramın, işlemcinin hafıza adresinde bulunup bulunmadığını kontrol etmek için işletim sistemi gereklidir. Dinamik ilişkilendirme, özellikle kitaplıklar için kullanışlıdır. Operating System Concepts
12
Örtüşmeli (Yer Paylaşım)
Sadece bahsi geçen her talimat ve her an ihtiyaç duyulan verileri hafızada tutun. İşlem, kendisine ayrılan hafıza miktarından daha fazla yer kapladığında gereklidir. Kullanıcı tarafından çalıştırılır, işletim sisteminden özel destek ihtiyacı yoktur, overlay yapısının programlama tasarımı karmaşıktır. Operating System Concepts
13
İki geçişli Assembler için paylaşım
Operating System Concepts
14
Yer Değiştirme Geçici olarak hafızdan yedekleme alanına aktarılabilen ve daha sonra devam eden yürütmeler için yeniden hafızaya çağrılan bir işlemdir. Saklama alanı – tüm kullanıcılar için tüm hafıza resimlerinin kopyalarını yerleştirecek genişlikte hızlı disklerdir. Bu hafıza görsellerine doğrudan erişimi sağlamalıdır. Dışa taşıma, içeri taşıma – Önceliğin esas olduğu hesaplama algoritmaları için kullanılan değişkenin farklılaştırılmasıdır. Önceliği düşük olan işlemin değiştirilmesiyle yüksek öncelikli işlem yüklenebilir ve çalıştırılabilir. Aktarma (swap) zamanının başlıca bölümü transfer zamanıdır. Toplam transfer zamanı, aktarılan hafızanın miktarı ile doğrudan orantılıdır. Aktarmanın modifiye edilmiş olan versiyonları bir çok sistemde bulunur. UNIX, Linux ve Windows v.b. Operating System Concepts
15
Yer Değiştirme Şeması Operating System Concepts
16
Sürekli Tahsis Ana hafıza genellikle iki bölümden oluşur: Genellikle durduma değişkesi ile düşük hafızada çalıştırılan varolan işletim sistemi Kullanıcı işlemleri ise yüksek hafızada tutulur. Operating System Concepts
17
Sürekli Tahsis Tek bölümlü dağıtım
Yeniden konumlandırma-kaydedicisi şeması kullanıcı işlemlerini, diğer işlemlerden korumak için kullanınılır. Yeniden konumlandırma-kaydedicisi, kayda değer en küçük fiziksel adresleri içerir. Limit kaydedicisi çeşitli mantıksal adresler içerir; her mantıksal adres, limit kaydedicisinden daha az olmalıdır. Operating System Concepts
18
Tekrar Yerleştirme ve Limit kayıtları için Donanım Desteği ( Hardware Support for Relocation and Limit Registers) Operating System Concepts
19
Sürekli Tahsis(Contiguous Allocation) (Devam)
Çoklu-bölüm tahsisi Hole(Delik) – kullanılabilir bellek bloğu;çeşitli büyüklükteki holes(boşluklar) bellek boyunca dağılmış. Bir proses geldiğinde, onun sığabileceği büyüklükte bir hole(delik) bellek tahsis edilir. İşletim sistemi şu bilgileri tutar: a) ayrılan bölümleri b)serbest bölümleri(hole) OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 8 process 10 process 2 process 2 process 2 process 2 Operating System Concepts
20
Dinamik Depolama-Tahsis Sorunu (Dynamic Storage-Allocation Problem )
N boyutlu serbest boşluk(hole) listesinden bir istek nasıl yerine getirilir: First-fit(İlk durum): İlk bulduğu yere yerleştirir. Best-fit(En uygun durum): Tüm liste aranır boyutlarına bakarak en az boşluk bırakacak şekilde yerleştirilir. Worst-fit(En kötü durum): Tüm liste aranır büyük boşluklar bırakır. First-fit(ilk durum) and best-fit(en uygun durum),hız ve depolama bakımından worst-fit(en kötü durum) den daha iyi. Operating System Concepts
21
Parçalanma(Fragmentation)
Dış parçalanma(External Fragmentation) – toplam bellek alanı çalıştıracak programa yettiği halde boşluklar farklı bölgelerde olduğundan yerleştirilemez. İç parçalanma(Internal Fragmentation) – ayrılan bellek istenen bellek den biraz daha büyük olabilir ; bu boyut farkı dahili bellekte vardır , ama kullanılmamaktadır. Dış parçalanma(External Fragmentation) azaltmanın yolları; Shuffle bellek içeriğine , tüm boş bellek ile birlikte bir büyük blok yerleştirmek. Dinamik yeniden yerleştirme olduğu takdirde sıkıştırma mümkündür, ve yürütme zamanında yapılır. Giriş/Çıkış(I/O) sorunu Bu Giriş/Çıkış dahil edilirken bellekte tutulur. Tek işletim sistemi arabellekleri I/O yapın. Operating System Concepts
22
Sayfalama(Paging) Prosesin mantıksal adres alanı devamlı olmayabilir;İkincisi uygun olduğu sürece fiziksel adres ayrılıyor. Fiziksel adres sabit boyutlara bölünür buna çerçeve (frame)denir.(512byte ve 8192byte arasında 2 güç boyutu vardır and) Mantıksal adres aynı boyutlara bölünür ve buna sayfa (page) denir. Tüm boş çerçeveleri takip eder. N boyutlu bir sayfayı çalıştırmak için, n tane boş çerçeve bulmak lazım ve programları oraya yüklemeliyiz. Mantıksal adresi fiziksel adrese çevirmek için bir sayfa tablosu ihtiyaç var. İç parçalanma Operating System Concepts
23
Adres Çevirme Planı(Address Translation Scheme)
Address generated by CPU is divided into: Sayfa yapısı(Page number (p)) – fiziksel bellek her sayfanın taban adresini kullanan bir sayfa tablosu kullanır. Sayfa sapması(Page offset (d)) – fiziksel bellek adresini tanımlamak için taban adresi ile birleştirilerek bu bellek birimi gönderilir. Operating System Concepts
24
Adres Çevirim Mimarisi(Address Translation Architecture)
Operating System Concepts
25
Sayfalama Örneği(Paging Example)
Operating System Concepts
26
Sayfalama Örneği(Paging Example)
Operating System Concepts
27
Boş Çerçeveler(Free Frames)
Tahsisden önce Tahsisden sonra Operating System Concepts
28
Sayfa Tablo Uygulaması(Implementation of Page Table)
Sayfa tablosu ana bellekte tutulur. Sayfa tablo base register(taban kaydedici) (PTBR) sayfa tablosu sayısını gösterir. Sayfa tablo length register(uzunluk kaydedici) (PRLR) sayfa tablosu boyutunu gösterir. Bu düzende her veri/talimat için 2 bellek erişimi gerektirir . Bir sayfa tablosu için ve bir de veri/talimat için. İki bellek erişim sorunu associative memory (çağrışımlı bellek) veya translation look-aside buffersuse(çevirim bakma-kenar tamponlar) (TLBs) adı verilen özel hızlı ve donanım arama ön bellek kullanımı ile çözülebilir. Operating System Concepts
29
Çağrışımlı Bellek (Associative Memory)
Çağrışımlı bellek– paralel arama Adres Çeviri (A´, A´´) A´ çağrışımlı kayıt ise , çerçeve # dışarı alır . Aksi takdirde hafıza sayfa tablosundan çevçeve # alır Sayfa # Çerçeve # Operating System Concepts
30
TLB ile Donanım Sayfalama (Paging Hardware With TLB )
Operating System Concepts
31
Etkin Erişim Süreci İlişkilendirilebilir Arama = zaman birimi
Bellek döngü süresinin 1 mikrosaniye olduğunu varsayılır Çağrışımsal kayıtların sayısı ile ilgili oranı; bir sayfa numarası çağrışımlı kayıtları bulunan verileri bir defa, yüzde - oranı ile çarp Hit oranı = Etkin Erişim Süreci(EES) EES = (1 + ) + (2 + )(1 – ) = 2 + – Operating System Concepts
32
Hafıza Koruması Bellek koruma her bir çerçeve ile koruma bit ilişkilendirerek uygulanmaktadır. Geçerli-geçersiz her bağlı giriş için bit sayfa tablosu : "Geçerli" ilişkili sayfa sürecin mantıksal adres alanı olduğunu gösterir ve bu nedenle yasal bir sayfasıdır. "Geçersiz" sayfa sürecin mantıksal adres alanı olmadığını gösterir. Operating System Concepts
33
Sayfa Tablosundaki Geçerli ve ya Geçersiz Bitler
Operating System Concepts
34
Sayfa Tablosu Yapısı Hiyerarşik Çağrı Hashed Sayfa Tabloları
Ters Sayfa Tabloları Operating System Concepts
35
Hiyerarşik Çağrı Tabloları
Birden fazla sayfa tablolarına mantıksal adres alanı ayır Basit bir teknik iki düzey sayfa tablodur. Operating System Concepts
36
İki Düzeyli Çağrı Örneği
Bir mantıksal adresi (4K sayfa boyutuna sahip 32-bit makinede) ayrılmıştır: 20 bit oluşan bir sayfa numarası. Bir sayfa 12 bit oluşan ofset. Sayfa tablosu belleği olduğundan, sayfa sayısı daha da ayrılır: 10-bit sayfa numarası. 10-bit sayfa ofset. Bu nedenle aşağıdaki gibi, bir mantıksal adres: sayfa numarası sayfa offseti Burada pi dış sayfa tabloya dizin ve p2 dış sayfa tablonun sayfa içinde değiştirmesidir. Pi P d Operating System Concepts
37
İki Düzeyli Sayfa-Masa Programı
Operating System Concepts
38
Adres-Çeviri Programı
İki düzeyli bir 32-bit belleği mimarisi için adres-çeviri programı
39
Hashed Sayfa Tabloları
Ortak adres alanları > 32 bit Sanal sayfa numarası bir sayfa tablo içinde karmadır. Bu sayfa tablosu aynı konumda bir karma elemanları zinciri içerir. Sanal sayfa numaraları bir eşleşme arar bu zincirde karşılaştırılmıştır. Bir eşleşme bulunursa, ilgili fiziksel çerçeve elde edilir. Operating System Concepts
40
Hashed Sayfa Tabloları
Operating System Concepts
41
Ters Sayfa Tablosu Bellekteki her gerçek sayfası için bir giriş.
Giriş bu sayfanın sahibi süreci hakkında bilgileri gerçek bellek konumunu, saklanan sayfanın sanal adresi oluşur. Her sayfa tablosunu saklamak için gerekli belleğ azaltır, ancak artışlar zaman içinde bir sayfa referans oluştuğunda masa aramak gerekiyordu. Birine arama sınırlamak için karma tablo– veya en azından bir kaç - sayfa tablosu girdilerini kullanın. Operating System Concepts
42
Ters Sayfa Tablo Mimarisi
Operating System Concepts
43
Paylaşılan Sayfalar Paylaşılan Kodlar
Süreçler arasında paylaşılan salt okunur (evresel) kodu bir nüshası (yani, metin editörleri, derleyiciler, pencere sistemleri). Paylaşılan kod tüm süreçlerin mantıksal adres alanı aynı yerde görünmesi gerekir. Özel kod ve veri Her işlem kodu ve veri ayrı bir kopyasını tutar. Özel kod ve veri sayfaları mantıksal adres alanı her yerde görünebilir. Operating System Concepts
44
Paylaşılan Örnek Sayfalar
Operating System Concepts
45
Segmentasyon Hafıza yönetim şeması,bellek kullanıcı modelini destekler
Bir program segmentlerin(bölümlerin) birleşimidir,programın yapıtaşı olan bölümler mantıksal birimler olup: Ana program, Prosedür, Fonksiyon, Metot, Nesne, Yerel değişkenler, global değişkenler, Ortak bir blok, Yığın, Sembol tablosu ve diziler Operating System Concepts
46
BİR PROGRAMIN KULLANICI GÖRÜNÜMÜ
Operating System Concepts
47
Segmentasyonun Mantıksal Görünümü
1 4 2 3 1 2 3 4 Kullanıcı alanı Fiziksel bellek alanı Operating System Concepts
48
Segmentasyon Mimarisi
Mantıksal adres iki bölümden oluşur: <segment numarası, ofset>, Segment tablosu - haritaların iki boyutlu fiziksel adresleri, her tablonun girdisi vardır: Base(Temel) – segmentlerin fiziksel başlangıç adreslerini tutar limit - parçanın uzunluğunu belirtir. Segment tablosu Bankası kayıt kesimi tablonun konumu işaret (stbr) bellek. Segment tablosu uzunluğu kayıt (stlr) bir program tarafından kullanılan parça sayısını gösterir; segment numarası is legal if s < STLR. Operating System Concepts
49
SEGMENTASYON MİMARİSİ (Devamı)
Tehcir. dinamik Tablo tarafından segment Paylaşma. Paylaşılan segmentler Benzer segment sayısı Tahsis. İlk uyan\ en uygun Dış parçalanma Operating System Concepts
50
SEGMENTASYON MİMARİSİ(Devamı)
Koruma. Tabloda önlisans Segmentine her girişle birlikte : Onaylama bit = 0 illegal segment Okumak/yazmak / ayrıcalıkları yürütmek Segmentler ile ilgili Koruma bit; kod paylaşımı bölüm düzeyinde gerçekleşir. Değişen Segment uzunluğu yanında , bellek ayırma dinamik bir depolama ayırma sorunudur. Bir segmentasyon Örneğin aşağıdaki şemada gösterilmiştir Operating System Concepts
51
SEGMENTASYON DONANIMI
Operating System Concepts
52
SEGMENTASYON ÖRNEĞİ Operating System Concepts
53
BÖLÜMLERİN PAYLAŞIMI Operating System Concepts
54
SEGMENTASYON İLE ÇAĞRI– MULTICS
MULTICS'i sistem belleği kesimleri dış parçalanma sorunları ve uzun iş arama süreleri ile çözüldü. Çözüm, segment tablo girdisi olmayan kesiminin temel adresi değil, bu segment için bir sayfa tablo taban adresi içeren saf segmentasyondan farklıdır. Operating System Concepts
55
MULTICS'i Adres Çevirisi Programı
Operating System Concepts
56
Segmentasyon ile Çağrı– Intel 386
Aşağıdaki şekilde de görüldüğü gibi, Intel 386 iki düzeyli bir çağrı düzeni ile bellek yönetimi için disk belleği ile segmentasyon kullanır. Operating System Concepts
57
Intel Adres Çevirisi Operating System Concepts
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.