1 / 41

Bellek Yönetimi (3)

Bellek Yönetimi (3). Görüntü Bellek. Gerçek bellek – Ana bellek Görüntü (Sanal/Virtual) bellek – Disk üzerinde oluşturulan ikincil bellek – Çoklu programlamayı daha etkin kılar. – Ana bellek boyu kısıtlarından programcıyı kurtarır. Görüntü (Sanal) Bellek (Virtual Memory).

july
Télécharger la présentation

Bellek Yönetimi (3)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bellek Yönetimi (3)

  2. Görüntü Bellek • Gerçek bellek – Ana bellek • Görüntü (Sanal/Virtual) bellek – Disk üzerinde oluşturulan ikincil bellek – Çoklu programlamayı daha etkin kılar. – Ana bellek boyu kısıtlarından programcıyı kurtarır.

  3. Görüntü (Sanal) Bellek (Virtual Memory) • Çalışma anında prosesin tüm parçalarının birden bellekte olması gerekmez • Proses çalışması boyunca belleğe alınıp, bellekten atılabilir ve her seferinde farklı bir bölgeye yerleştirilebilir. • Prosesin parçalarının bellekte birbirini izleyen bölgelerde olması gerekli değil

  4. Görüntü (Sanal) Bellek (2) • İşletim sistemi başlangıçta belleğe prosesin bir kısmını yükler • Yerleşik set (resident set) - prosesin bellekte bulunan kısmıdır. • İhtiyaç duyulan bir bölge bellekte yoksa kesme oluşur • İşletim sistemi prosesi bloke eder

  5. Görüntü (Sanal) Bellek (3) • İstenen mantıksal adresi içeren parçası belleğe yüklenir – İşletim sistemi tarafından disk G/Ç isteği oluşturulur – Disk G/Ç işlemi yürütülürken bir başka proses çalışır – Disk G/Ç işlemi tamamlanınca kesme oluşur. İşletim sistemi bekleyen prosesi Hazırdurumuna getirir.

  6. Prosesi Parçalara Ayırmanın Avantajları • Ana bellekte daha fazla proses bulunabilir – Prosesin sadece gerekli parçaları yüklenebilir – Bellekte çok proses olduğundan en az birinin Hazır durumunda olması olasılığı yüksek • Bir proses tüm ana bellekten daha büyük olabilir

  7. Thrashing • Bellekten atılan bir parçaya hemen ihtiyaç duyulması durumu • İşlemci zamanı proses parçalarını ana bellek ve ikincil bellek arasında taşımakla geçer. • Bu soruna karşılık, işletim sistemi, prosesin geçmişine bakarak hangi parçalara ihtiyaç duyacağını veya duymayacağını tahmin eder

  8. Yerellik Prensibi • Proses içi program kodu ve veri erişimleri birbirine yakın bölgelerde kalma eğilimindedir • Kısa bir süre içinde prosesin sadece küçük bir alt kümesi gerekecektir • Hangi parçaların gerekeceği konusunda tahmindebulunmak mümkün • Etkin bir çalışma sağlamak mümkün

  9. Bellek Bölümleme (Tahsisi) • Bölmeleme(Partitioning) – Sabit – Dinamik • Basit sayfalama (Paging) • Basit Kesimleme (Segmentation) • Sayfalamalı görüntü bellek (Virtual Memory) • Segmanlamalıgörüntü bellek

  10. SayfalamalıGörüntü Bellek • Diskin bir bölümü de ana bellek alanıymış gibi kullanılır. • Her prosesin kendi sayfa tablosu var • Sayfa tablosunun yanında bir de «İndeks tablosu» tutulur. • Sayfa tablosunda ek olarak • Sayfa Bellekte Kayıtlığı (Sayfanın bellekte olup olmadığını gösterir) • Değişim Kayıtlığı (Bellekteki ve diskteki kopya arasında fark olup olmadığını gösterir) • Erişim Hakkı Kayıtlığı bulunur.

  11. SayfalamalıGörüntü Bellek (2)

  12. Sayfa Tabloları • Sayfa tablosunun tamamı çok yer gerektirebilir. • Sayfa tabloları da ikincil bellekte saklanır • Çalışan prosesin sayfa tablolarının bir kısmı da ana belleğe alınır.

  13. TranslationLookasideBuffer • Her görüntü bellek erişiminde iki fiziksel bellek erişimi olabilir: • sayfa tablosunu getirmek için • veriyi getirmek için • Bu problemin çözümünde sayfa tablosu kayıtlarını tutmak için hızlı bir cep bellek kullanılır: TLB(TranslationLookasideBuffer) (Çeviri arabellek tamponu) • En yakın zamanda kullanılmış olan sayfa tablosu kayıtlarını tutar

  14. TLB kullanımı

  15. Sayfa Boyu • Sayfa boyu küçük olursa iç parçalanma daha az • Küçük sayfa boyları olursa proses başına gereken sayfa sayısı artar. • Proses başına fazla sayfa olması sonucunda sayfa tablosu boyları büyür. • Sayfa tablosu boyunun büyük olması sonucu tablonun ikincil bellekte tutulan kısmı daha büyük • İkincil belleklerin fiziksel özellikleri nedeniyle daha büyük bloklar halinde veri aktarımı daha etkin ⇒ sayfa boyunun büyük olması iyi

  16. Sayfa Boyu • Zaman içinde proseslerin yakın zamanda eriştikleri sayfaların büyük kısmı bellekte olur. Sayfa hatası düşük olur. • Sayfa boyu büyük olunca sayfalarda yakın zamanlı erişimlere uzak kısımlar da olur. Sayfa hataları artar.

  17. Sayfa Boyu • Birden fazla sayfa boyu olabilir. • Büyük sayfa boyları program komut bölümleri için kullanılabilir • Küçük boylu sayfalar iplikler için kullanılabilir • Çoğu işletim sistemi tek sayfa boyu destekler

  18. Adres Dönüştürme Süreci Adres dönüştürme sürecin de, bellek yöneticisinin gerçekleştirmesi gereken işlemler şunlardır: 1. Bellekte göreve atanacak boş bir sayfa aramak. 2. Bellekte kullanılabilir boş bir sayfa yoksa, yer açmak üzere ana bellekten çıkarılacak sayfanın seçimini yapmak. 3. Ana bellekten çıkarılacak sayfada değişiklik yapılmışsa (diskteki kopyasından farklı ise) sayfayı diskteki yerine yazmak. 4. Erişilmek istenen sayfayı ana belleğe yüklemek. 5. Yarıda kesilen komutun işletimini yeniden başlatmak.

  19. 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 • Saat Yöntemi

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

  21. En erken erişilmiş sayfayı çıkarma (LeastRecentlyUsed - LRU) • Yakın geçmişte kullanılmamış sayfayı çıkarma algoritması olarak bilinir.

  22. 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.

  23. Saat yöntemi • Kullanım biti adını alan ek bit • Sayfa belleğe yüklendiğinde kullanım bitine 1 yüklenir • Sayfaya erişimde kullanım biti bir yapılır • Çevrelkuyruk tutulur. İşaretçi en son belleğe alınan sayfanın bir sonrasını gösterir. • Bellekten atılacak sayfa belirlenirken bulunan kullanım biti 0 olan ilk sayfa seçilir. • Atılacak sayfa belirlenirken 1 olan kullanım bitleri de sıfırlanır. • Kullanım biti 0 olan yoksa ilk tur tamamlanır, ikinci turda daha önce sıfır yaptıklarının ilki seçilir.

  24. Bellek Bölümleme (Tahsisi) • Bölmeleme(Partitioning) – Sabit – Dinamik • Basit sayfalama (Paging) • Basit Kesimleme (Segmentation) • Sayfalamalı görüntü bellek (Virtual Memory) • Segmanlamalıgörüntü bellek

  25. Kesimli Görüntü Bellek Yönetimi • 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.

  26. Bellek Bölümleme (Tahsisi) • Bölmeleme(Partitioning) – Sabit – Dinamik • Basit sayfalama (Paging) • Basit Kesimleme (Segmentation) • Sayfalamalı görüntü bellek (Virtual Memory) • Segmanlamalıgörüntü bellek • Kesimli-Sayfalı Görüntülü Bellek

  27. Kesimli Sayfalı Görüntü Bellek Yönetimi • Programların mantıksal adres alanı kesimlere, kesimler de sayfalara ayrılır. • Değişken boydaki kesimleri sayfa tabanında ele almayı mümkün kılar. (Kesimli görüntü bellek yönetiminin temel sakıncasını ortadan kaldırır) • Kesimli-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.

  28. Kesimli Sayfalı Görüntü Bellek Yönetimi • Mantıksal adresten fiziksel adrese geçişte iki temel tablo kullanılır: • Kesim Tablosu • 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 Tablosu • Sayfa Numarası • Başlangıç Adresi • Sayfa bellekte Belirteci • Erişim Hakkı Belirteci • Değişim Belirteci

  29. Linux’ta Bellek Yönetimi • Görüntü Bellek Adresleme – 3 seviyeli sayfa var: • sayfa kataloğu – her aktif prosesin bir sayfa kataloğu var. – boyu bir sayfadır – her kayıt orta aşama sayfa kataloğunun bir sayfasına işaret – her aktif proses için bellekte yer almalı

  30. Linux’ta Bellek Yönetimi (2) • orta aşama sayfa kataloğu – birden fazla sayfadan oluşabilir – her kayıt sayfa tablosunda bir sayfaya işaret eder • sayfa tablosu – birden fazla sayfadan oluşabilir – her kayıt prosesin bir sanal sayfasına işaret eder

  31. Linux’ta Bellek Yönetimi 3 – görüntü adres 4 alandan oluşur • en yüksek anlamlı alan sayfa kataloğundaki bir kayda indis • ikinci alan orta aşama sayfa kataloğundaki bir kayda indis • üçüncü alan sayfa tablosundaki bir kayda indis • dördüncü alan seçilen sayfadaki offset adresi – platformdan bağımsız olarak 64 bitlik adresler

  32. Linux’ta Mantıksal Adres

  33. Linux’ta Bellek Yönetimi 4 • Sayfa atama: – buddy sistemi kullanılır • Sayfa değişimi: – sayfa yöntemine dayalı bir yaklaşım – kullanım biti yerine 8 bitlik yaş alanı var – yaşlı olan (uzun zamandır erişilmemiş) sayfalar öncelikle bellekten atılır

  34. Windows’ta Bellek Yönetimi • Windows’ta 2 seviyeli sanal sayfalar bulunur. • Bu sanal sayfaların tamamı 2 boyutlu bir matris gibi düşünülebilir. • Birinci seviyedeki(boyuttaki) sanal sayfaya Sayfa Yöneticisi (PageDirectory) denir. • Bu kısımda 1024 adet girdi bulunur.

  35. İkinci seviyeye (boyuta) ise Sayfa Tablosu (PageTable) denir. • Bu kısımda ise her biri 1024 girdiden oluşan 1023 tablo bulunmaktadır. Bu tablodaki her bir girdi 4KB’lık bir fiziksel adrese işaret etmektedir.

  36. 32 bitlik bir Sanal Adresin Parçaları -Bir 32 bitlik adreste ilk 10 bit Sayfa Yöneticisi Tablosunda indeks olarak kullanılır. -İkinci 10 bit Sayfa Tablosunda indeks olarak kullanılır. -Kalan 12 bit ise fiziksel çerçevede kaç bit ilerde nereye konumlanacağımızı belirler.

  37. -Sanal Adres Uzayı Windows'ta 2’ye bölünmüştür. -Bunun küçük adresli 2GB’ı kullanıcı modu, büyük adresli 2GB’ı ise çekirdek modu olarak ayrılmıştır. • Bunun nedeni ise sayfalar ve sayfa tablolarının bu uzay içerisinde saklanması • Bir kullanıcı prosesinin sisteme müdahale etmesini engellemektir. Şekilde görüldüğü gibi:

More Related