Bellek yönetimi

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

Ana belleğin işlemler 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[1].

Bellek yöneticisinin görevi, belleğin hangi parçalarının kullanımda olduğunu, hangi parçalarının kullanılmadığını izlemek, süreçlere bellek tahsis etme(allocate), tahsis edilen belleği geri almak ve bellek ile disk arasındaki takas işlemlerini gerçekleştirmektir[2].

Amaçlar[değiştir | kaynağı değiştir]

Bir işletim sisteminin bellek yönetiminin sonuçları şunlardır:

  • Bellekteki herhangi bir işlemi başka bir yere aktarabilmelidir.
  • Birden fazla işlem veya kullanıcı olduğunda bir kullanıcını diğer kullanıcını alanlarına girmeleri önlenmelidir.
  • 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ı yani hard diskleri kullanabilmelidir[3].

Özellikler[değiştir | kaynağı değiştir]

Çok görevli işletim sistemlerinde bellek yönetim sistemleri genellikle aşağıdaki konuları içerir.

Yer değiştirme (relocation)[değiştir | kaynağı değiştir]

Sanal bellekli sistemlerde bellekteki programların farklı zamanlarda, belleğin farlı 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 (protection)[değiştir | kaynağı değiştir]

Süreçler (process), başka süreçler için ilgili sürecin izni olmadan bellek başvurusu yapmamalıdır. Bellek koruması adı verilen bu mekanizma ile programdaki kötü niyetli ya da hatalı işleyen bir kodun diğer programların çalışmasını etkilemesi engellenir.

Paylaşma (sharing)[değiştir | kaynağı değiştir]

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ılanma (logical organization)[değiştir | kaynağı değiştir]

Programlar genelde modüller şeklinde yapılandırılmıştır. Bu modüllerin bir kısmı gerek sadece okuma, gerekse veri değiştirme şeklinde başka programlar tarafından da kullanılabilir. Bellek yönetimi doğrusal fiziksel alanından farklı olan bu mantıksal yapılanmanın düzenlenmesinden sorumludur. Bunu sağlamanın yöntemlerinden birisi kesimlemedir (segmentation).

Fiziksel yapılanma (physical organization)[değiştir | kaynağı değiştir]

Bellek genellikle hızlı birincil depo ve yavaş ikincil depo şeklinde bölümlenmiştir (örneğin rasgele erişimli bellek RAM ve sabit disk gibi). İşletim sistemlerindeki bellek yönetimi bilginin bu bellek katmanları arasında taşınmasından sorumludur [4].

Ayrıca görülecekler[değiştir | kaynağı değiştir]