Skip to main content

BELLEK YÖNETİMİ

Bellek Nedir ?

Veri arkadaki organizasyona bellek sayesinde yerleşir(hem yazılımı hem donanımı ilgilendirir).

Adresleri vardır.

Çekmece veya gözlerden oluşur.

Bu çekmecelerin boyutlarının belirlenmesi, boş olanların boyutlarının takip edilebilmesi, fragmantasyon(boşlukların azaltılması), boşlukların birleştirilebilmesi, gerekli olduğu kadar bellek ayrılabilmesi bellek yönetimi kapsamındadır.

Bütün bu işlemlerde en ufak bir verimlilik bütün programların performansına etki eder.

Belleği efektif kullanmak için böyle bir ayrım vardır. Tüm belleğin hepsiyle uğraşmıyor sadece aktif olan kısmıyla uğraşıyor bu yüzden daha hızlı oluyor.

AnaBellek=AktifBellek=YarıİletkenBellek=RAMdir.

  • İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze anabellek(RAM) denir.
  • Programların ve verilerin işlem aşamasında yer aldığı, ana işlem birimininde doğrudan erişebildiği bellektir.
  • Ana bellek bir sözcük dizisi şeklindedir. Her sözcüğün bir adresi ve bir de içeriği vardır.

Adresler neden 16lık tabanda tutulur -> Daha çok veri tutmak için ve 2’nin üssü olduğu için.

Bellek Yönetimi Nedir ?

Ana belleğin işlemler arasında paylaştırılmasına bellek yönetimi (Memory Management) adı verilir.

Multiprocessing olduğu için bellek yönetimi diye bir şey ortaya çıkar.

İşlemler derlendikten sonra hafızaya yükleyici(loader) ismi verilen bir programla yüklenir ve işlem bitince silinir.

Ancak bir işletim sistemi birden fazla işlemi çalıştırmak istiyorsa problemler ortaya çıkar.

Örneğin bir program hafızadaki sabit bir adrese (söz gelimi 220 numaralı adres olsun) erişmek isteyebilir.

Buradaki problem 220 numaralı tek bir göz vardır ve bu göze başka bir algoritmadan dolayı başka biri yerleşmek isteyebilir veya zaten yerleşmiştir.

Dolayısıyla hafızadaki adresler dinamik olacak ve her işlem artık farklı bir adres aralığına yüklenecektir.

Çalışan işlemlerin birbirine müdahalesinin sonucu kestirilemez. Çünkü;

  • Bilgilerin biri kaybolabilir.
  • Kesintiye uğradığı zaman devam etmeleriyle ilgili problem olabilir.
  • Bir şifre durumu söz konusu olabilir.
  • Yetkisi dışında erişmemesi gereken bir şeye erişebilir.
  • Kesintiye uğradıktan sonra aynı performansla ilerlemesini garanti edemeyiz.
  • Deadlock oluşabilir.

Bellek Yöneticisinin Görevleri

  • Talep edilen adresle gerçek adres arasındaki bağın kurulması.
  • Aynı anda çalışan birden fazla program için hafızanın verimli kullanılmasını sağlamak
  • Boşlukları azaltmak
  • İşlemler arasındaki haberleşmenin senkronizasyonunu sağlamak.

Belllek Yöneticisinin Amaçları

  • Bellekteki herhangi bir işlemi başka bir yere aktarabilmelidir.
  • Birden fazla işlem ve ya kullanıcı olduğunda bir kullanıcının diğer kullanıcının alanlarına girmesini önlemelidir.
  • 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.
  • Belleğin yetmediği durumlarda fiziksel başka bellek alanlarını kullanabilmelidir.

İşlem Bazlı Olarak Ne Yapılır?

  • Yer değiştirme (relocation)
  • Koruma (protection)
  • Paylaşma (sharing)
  • Mantıksal yapılanma (logicalorganization)
  • Fiziksel yapılanma (physicalorganization)

Yer Değiştirme

Sanal bellekli sistemlerde bellekteki programların farklı zamanlarda, belleğin farklı yerlerinde bulunabilmesi gerekir.

Bunun temel nedeni, programın bir süreliğine bellekten dışarı götürülmesinin ardından tekrar geri getirildiğinde her zaman aynı bellek bölgesine yerleştirilmesinin mümkün olmamasıdır.

Bu yüzden işletim sisteminin bellek yönetimi bellekte programların yerini değiştirebilmeli ve bu yer değiştirme sonrasında program kodu içindeki referansları doğru şekilde ayarlayarak her zaman bellekte doğru yeri işaret etmesini sağlayabilmelidir.

Koruma

Yetkilendirmedir.

Bir process başka bir processin bellek alanına izni olmadan erişemez.

Çalışmaları anında kontrol edilebilmelidir.

Paylaşma

Farklı süreçler arasındaki bellek her ne kadar koruma altında olmuş olsa da uygun durumda farklı sürecin farklı bellek alanına erişip bilgiyi paylaşması mümkün olmalıdır.

Mantıksal Yapılandırma

Segmentasyon (bölümlendirme)

Boşlukların birleştirilmesi.

Fiziksel Yapılandırma

Bilginin birincil bellek ve ikincil bellek arasında taşınması.

Boş Bellek Alanlarının Aranması

İkili Arama (Bit-Map)

Bağlaçlı Liste

Komşu Sistemler (Buddy System)

İkili Arama (Bit-Map)

Küçük boyutlu sabit birimlere bölünür

Haritanın her biti bellek durumunu boş mu dolu mu onu kontrol ederiz boşsa bit 0’dır.

Buradaki problem clusterın boyutunun ne kadar olacağı büyük olursa efektif bir kullanım olmaz, küçük belirlersek çok fazla kontrol etme olur işlem süresi uzar.

Bağlaçlı Liste

Birinin adresi diğerinin elemanıdır.

Bellek yöneticisi görev için gereken bellek alanının boyutunu bildiği takdirde, bu yöntemde sadece bu boyuta uygun bellek yeri bulmak amaçlanır.

  • İlk uygun yer bulma (first fit) : Bellek yöneticisi listeyi tarar ve yeterli boyutta boş yer bulunan ilk yere görevi yerleştirir. Bu algoritma çok hızlıdır. Çünkü, arama en kısa yolla gerçekleştirilir. Verimsizdir.
  • En uygun yer bulma (best fit): Görevin boyutuna en yakın olan boş yer aranır. En verimli algoritmadır. Ancak yavaştır.
  • Hızlı uygun yer bulma (quickfit): Bu algoritmada, çok sık kullanılan bellek alanı boyutları, ayrıca listelenir. Belleğe yerleştirilecek görev için uygun yer bu yeni listede aranır.
  • Komşu Yöntem: En yakın yerdeki en uygun boşluk bulunmaya çalışılır.

İç Parçalanma (internal fragmentation) : Belleğin kümelerinin kendi içerisinde yaşadığı fragmantasyonlar. Kendi içindeki boşlukları azaltmak için.

Dış parçalanma (external fragmentation) : Kümeler arasındaki boşlukları azaltmak için uygulanan yöntem. Diğerine göre daha verimlidir.

Problemler

Sleeping Barber:

N berber koltuğu, M bekleme koltuğu, m tane de berber var.

Sırada hiç işlem yoksa berber uyumaya gider, diğer berberlerin traş ettiği kişileri beklemez. (Araya iş girmez kesintisiz.)

Problemleri; tüm koltuklar biterse (koltuk sayısı), berberin işini bitirme süresi, berberin sayısı, n ve m arasındaki ilişki, traş sıraları, işlem sayısı.

Bunları çözen bir algoritma..(process managament)

Tek Şeritli Köprü : 

Bir köprü var iki taraftanda araç girmeye çalışıyor.

Deadlock oluşur. Mutualexclusion(karşılıklı dışlama), no preemption (boşaltılamamazlık).

Nasıl çözülebilir; Bir sağdan bir soldan alınabilir, önceliklerine göre alınabilir, arkada bekleyen sıranın kalabalıklığına göre..

Bu problemler deadlockları modellemede kullanılır.

Eğer şerit çok dar olsaydı araç geçemeseydi kaynak yetersiz de diyebilirdik ama tek bir araba geçebilir olduğu için o modellemeye girmez.

Bilgisayar Tamircisi Problemi:

1 bilgisayar tamircisi var ve bozulan bilgisayarlar getiriliyor.

  1. Derece bozuk bilgisayar 2 güne
  2. Derece bozuk bilgisayar 5 güne
  3. Derece bozuk bilgisayar 10 güne tamir ediliyor.

Belirli bir andaki bozuk bilgisayar sayısı ve tamir edilen bilgisayar sayısı bulma vs algoritmaları.

Üretici- Tüketici :

Her fabrikanın problemidir. Arz-talep ilişkisi.

Arz çok olursa çöpe gider. Talep çok olursa eksik olur. (Kuyruk teorisi diye geçer.)

Problemler; Üretilen ürün tükenmeden yenisi üretilirse bir problem (bellek şişmesi), Fazla tüketildiyse yerine koyacak malzememiz yoksa (öncelik verebiliriz tüketiciler arasında mesela en çok parayı veren vs.)

Kuyruk Teorisi: Kaynak miktarı ve talep edilen kaynak miktarının eşit olamaması durumu.

Hafızayı verimli yönetmek için ;

Segmentasyon

Segmentasyon, her işin, ilgili işlevleri yerine getiren parçaları içeren her bir modül için birer tane olmak üzere farklı boyutlara sahip birkaç bölüme ayrıldığı bir bellek yönetimi tekniğidir. Her bölüm aslında programın farklı bir mantıksal adres alanıdır.

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir