27 Aralık 2012 Perşembe

BELLEK YÖNETİMİ

Bilgisayar sistemini oluşturan temel birimlerden biride bellektir. Programların ve
işlenen verilerin bellekte yer alacakları konumların belirlenmesi, düzenlenmesi, izlenmesi
gereken alanların sağlanması, bu alanların dışına taşmaların denetlenmesi gibi işlevler bellek
yönetimi kapsamındadır.

Bellek, Ana ve İkincil bellek olmak üzere ikiye ayrılır. Ana bellek; aynı zamanda aktif
bellek, yarı iletken bellek, RAM bellek adlarıyla da anılır. Programların ve verilerin işlem
aşamasında yer aldığı, ana işlem biriminin de 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.
Ana bellekte bir sözcüğün adresi, bu sözcüğe erişimde, adres yoluna yüklenen konum
değeridir. Bu değer, ilgili sözcük içeriğinin ana bellekte bulunduğu fiziksel konumu
gösterdiğinden fiziksel adres olarak nitelenir.
Ana bellek sözcükleri, komut kodları ile bu komutların işlenenlerini tutan öğelerdir.
Yazılan kaynak programlar içerisinde işlenenler, kullanıcıların özgürce belirledikleri simgesel
adlarla anılırlar.

6.1. Tek Programlı ve Çok Programlı Sistemlerde Bellek Yönetimi
En basit bellek yönetim sistemi, her bir zaman dilimi içinde bellekte bir görev
bulunması ve tüm bellek alanını bu görevin kullanmasıdır. Bu sistemlerde bellek, işletim
sistemi ve tek görev arasında paylaşılır. Kullanıcının terminalden aldığı komut ile, işletim
sistemi gereken programı belleğe yükler. Görev çalışmasını bitirdikten sonra, sistemin
gönderdiği mesajla kullanıcı yeni görevi belleğe yükler.

Fakat, bilgisayarın verimli çalışması için bellekte aynı zaman diliminde birden fazla
görevin çalışması gerekir. Bunun en basit yolu belleğin “n” sayıda bölümlere ayrılmasıdır.
Sistem çalıştırılmadan önce bölümler (bölümün sınırları) kaydedilir. Görevler geldiği zaman
bölümün boyutuna uygun kuyruğa yerleştirilir.
Bu sistemler OS 360 işletim sisteminde uygulanmıştır ve bu mimariye MFT (Multi
programming Disk Fixed Number of Task) denir.

6.2. Boş Bellek Alanlarının Aranması
Boş bellek alanlarının aranması için genelde 3 yöntem kullanılır:
1.İkili haritalama (Bit-map)
2.Bağlaçlı Liste
3.Komşu Sistemler (Buddy System)
1. İkili Haritalama Yöntemi :Bu yöntemde bellek mantıksal olarak sabit boyutlu küçük
birimlere bölünür. Bölümün boyutu birkaç sözcük uzunluğundan, birkaç KB’a kadar olabilir.

Bu bölümlerin boş yada dolu olması hakkında bilgiler ikili haritada gösterilir. Haritanın her
biti bir bellek bölümünün durumunu gösterir. Bölüm boşsa bit = 0, doluysa bit = 1 değerini
alır.
İkili haritalarda, gelen görev k boyutlu ise, ardışık k sayısıda 0 (boş) bellek yerinin
aranması gerekir. Bu ise, ikili haritalamanın yavaş olmasına yol açtığından pratikte az
kullanılmasına neden olur.


Bellek bölümlerinin büyük boyutlandırılması, haritanın
küçülmesine, bununla birlikte bellek alanının verimsiz
kullanımına neden olur.Bölümler küçük boyutlu alınırsa, harita
büyür ve arama işlemlerinin süresi uzar.
2. Bağlaçlı Liste Yöntemi : Boş ve dolu bellek alanları için yerleştikleri adreslerle birlikte
bağlaçlı liste oluşturulur.
NOT : P =Dolu, H = Boş bellek alanını göstermektedir.

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. Uygun bellek yeri bulmak
için birkaç algoritma vardır:
1. İ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. Ancak en uygun olan belleğe değil, ilk rast gelinen uygun bellek
alanına yerleşim yapılır.

2. 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.
1 1 1 1 1 0 0 0
1 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1
1 1 1 1 0 0 0 1
.......................
P 0 5 H 5 3 P 8 6 P 14 4
H 14 4 P 13 2 P 19 3 P 25 3

3. Hızlı uygun yer bulma (quick fit) : 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.
3. Komşu Sistemlerde Bellek Yönetimi: Komşu sistem yönetiminde bellek yöneticisi
1,2,4,.......,2k boyutlu boşluklar listesi oluşturur. Örneğin 1 MB’lık bellek alanı için 21 liste
oluşturulacaktır.
bellek

boşluk 128 256 384 512 640 768 896
durumu 1 MB/boş yer
A (70K)
B (35K)
C (80K)
Başlangıç durumunda tüm bellek boştur ve yalnız 1MB’lık listede 1MB’lık boş yer
bulunmaktadır.
70 K’lık A görevi belleğe aktarıldığında bellek yöneticisi bu görev için 128K’lık boş yer
ayıracaktır. Öyle bir liste henüz oluşturulmadığından ardışık olarak 256K ve 512K’lık listeler
aranacak ancak onlarda yoktur. Bu sebeple 1MB’lık alanın 512, 256 ve 128’lik alanlara
bölecek ve A görevi ilk boş 128 K’lık alana yerleşecek.
B görevi içinde 64K’lık yer gerekir. 64K’lık listemiz olmadığından 128K’lık blok ikiye
bölünür. İlk 64K lık yere B görevi yerleştirilir. Benzer şekilde C görevi yerleştirilir.

Görev bellekten çıktığında, kalan yerler birleşip 2k alan oluşturuyorsa, bellek alanları
birleştirilir. Yönetim avantajı, sadece 2k ‘lık listeler aranmasıdır. Buda hızlı çalışmasına neden
olur. Ancak bellek verimsiz kullanılır. Her görev için ayrılan alanlarda boş yerler oluşabilir.
Buna iç parçalanma (integral fragmentation) denir.


6.3. Belleğin Parçalanma Sorunu Ve Bitiştirme İşlemi
Bellek parçalanması, bitişken alanların görevlere atanan bölümlerle, zaman içinde
ufalanması olarak bilinir. Bu sorun, kullanılan bölümler arasına sıkışmış, işletim için bekleyen
görevlerin gereksinimini karşılayamayan boş alanların varlığıyla ortaya çıkar. Bunun sonucu,
bellekteki boş alanların toplamı, gereksenen sığaları karşılıyor olmasına karşın yeni görevlere
yer sağlayamaz.

Görevlere gereksedikleri belleğin tümüyle ve bitişken bir bütün olarak, işletime sunuş
aşamasında sağlanması ve sağlanan bu alanların konumlarının işletim sırasında değiştirilmesi
parçalanma sorununun temel nedenleridir.
Bölüm içi yararlanılamayan boş alanlar iç parçalanma, bölümler arasında kalan boş
alanlar ise dış parçalanma kapsamında düşünülür.

Şekil: Ana Belleğin Parçalanması
Bitiştirme; tüm bellek alanına dağılmış durumdaki bölümleri, yerlerini değiştirerek yan
yana yerleştirme ve bu yolla bölümler arasında kalan boş alanları da yan yana getirerek tek bir
bitişken boş alan oluşturma işlemine denir.
İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006
71
İlgili olduğu görevin işletimi sürerken bir bölümün yerinin değiştirilmesi kolayca ve
hiçbir önlem alınmaksızın yapılabilen bir işlem değildir.
Şekil: Bitiştirme İşlemi
6.4. Diske Taşıma (Swapping - Takas)
Zaman paylaşımlı sistemlerde diskte yerleşen görevler dizisi gerektiğin ana belleğe
çağrılır. Görevlerin disk ile ana bellek arasında değiş-tokuşuna takas (swap) denir.
Kimi durumlarda bitiştirme işlemleri de bellekte gerekli büyüklükte boş bitişken alan
oluşturmak için yeterli olamaz. Sisteme sunulan iş, o an sistemde işletimde olan işlemden
daha öncelikli ise, görev tanımlarının yapılarak hemen işletime alınması gerektirir.
Kimi zaman öncelik görevlerin, işletimleri sonradan tamamlamak üzere geçici olarak
diske taşınması boş bellek alanı yaratmak için başvurulan bir yol olabilir. Bu yolla açılan boş
bellek alanları yeni görevlerin tanımlanabilmesine ve özellikli işlerin işletimlerinin bir an
önce başlatılabilmesine olanak sağlar.
İşletimi tamamlanmamış bir görevin, daha öncelikli görevlere ana bellekte yer açmak
üzere, geçici olarak diskte, bu amaçla öngörülen alanlara taşınmasına diske taşıma olayı
olarak nitelendirilir.
İbrahim Türkoğlu – Fırat Üniversitesi, Elektronik ve Bilgisayar Eğitimi Bölümü – 2006
72
Şekil: Diske taşıma ve bellekte yer bekler kuyruğu
Takas MFT sisteminde de uygulanabilir, ama onun değişken bölümlü çok programlama
da (MVT) kullanımı daha verimlidir.
A B C A D B E
Değişken programlama (MVT) sisteminde, belleğe yazılan görevler arasında boş alanlar
olabilir ve bellek sıkılaştırılması yöntemiyle bu boş alanlar birleştirilir. MVT sisteminde
göreve yer ayrılırken bu görevin yeni verilerle genişleyebileceği ve büyüyebileceği göz önüne
alınır.



Hiç yorum yok:

Yorum Gönder