noimage

İçeriği Paylaş:

Yerdeğiştirme (Relocation) ve Koruma (Protection), Takaslama (SWAPPING)

Yerdeğiştirme (Relocation) ve Koruma (Protection)Çoklu programlamada yerdeğiştirme ve koruma birer problemdir.Farklı süreçler bellekte farklı adreslerde çalıştıralacaktır. Programın bağlama işlemi yapıldığında, bağlayıcının programdaki kullanıcı prosedürlerinin, kütüphane prosedürlerinin, ana programın adreslerini bilmesi gerekmektedir.Bu bilgileri bilebilmesi için ve program kodlarını bu adreslere göre düzenleyebilmesi için programın bellekte hangi adrese konulduğunu bilmesi gereklidir.Bu bilgi süreç belleğe yüklendiğinde belirli olduğu için, bağlayıcı sürecin her zaman 0 adresine konulduğunu varsayar.Örneğin, bağlayıcının oluşturduğu ikili(binary) programın ilk komutu 100 numaralı bellekteki bir prosedürü çalıştırsın. Eğer bu program 100 numaralı adresten itibaren konulmuşsa program doğru çalışmayacaktır.100 numaralı adreste işletim sistemi bulunmaktadır ve işletim sisteminin olduğu bellek bölgesine geçilir. Bu hatalıdır.   Asıl çalıştırılması gerekli olan prosedür 100+100. bellek gözündedir.Bu probleme yer değiştirme problemi denilmektedir.*Birinci çözüm; program belleğe yüklenirken tüm adres değerlerine programın başlangıç bellek adresi eklenir.Bu işlemin yapılabilmesi için, programdaki hangi kelimelerin (word) adres, hangilerinin işleç olduğunu bağlayıcının bilmesi gereklidir bu işlem bir liste veya bitmap ile çözülmüştür.Belleğin  korunmasıda  son derece önemlidir. Bu işlem için IBM belleği 2Kb lık parçalara ayırmış ve bu parçalara Koruma kodları konulur.*İkinci çözüm; taban yazmacı(base register) ve sınır yazmacı (limit register) adı verilen donanım yazmacı ile çözümdür.Bir süreç belleğe aktarıldığında, bellekteki başlangıç adresi taban yazmacına, bitiş adresi de sınır yazmacına yazılırlar.Bir adres istenildiğinde, bu adrese taban yazmacının’ın değeri eklenir; bulunan bellek adresinin sınır yazmacı değerini geçip geçmediği kontrol edilir.Bu iki yazmaç değeri kullanıcı programları tarafından değiştirilemez.Takaslama (SWAPPING)Tüm aktif süreçler bazen bellekte yer olmadığı için bellekte aynı anda bulunamazlar.Bu süreçlerden bir kısmı diskte bulunmalıdır.Diskte bulunanan süreçler dinamik olarak belleğe yüklenirler.Sürecin tümü çalışırken belleğe getirilir, biraz çalışır ve sonra  diske  kaydedilir.   Bu işleme takaslama(swapping) denilir.image011Diğer bir strateji sanal bellek(virtual memory) dir. Programlara, sadece bir kısmı bellekte olmasına rağmen tamamı bellekteymiş gibi çalışmasına olanak sağlar. Sayfalama işlemi bellekte delikler oluşturabilir. Tüm süreçleri mümkün olan en aşağıya itmek bellekte kullanılabilir bölümler açar. Bu işleme disk sıkıştırma (disk compaction) denilir.Bir süreç oluşturulduğunda ya da takas ile belleğe geldiğinde ne kadar bellek tahsis edilmelidir?Eğer tüm süreçler sabit boyutlu olsalardı bu işlem kolay bir şekilde yapılırdır. İşletim sistemi belirli boyutta bir belek alanı tahsis eder.Bununla birlikte bir sürecin veri bölgesi(heap) ve/veya yığın bölgesi(stack) büyür.

 Bu dinamik büyümelerde eğer büyümenin gerçekleştiği yönde başka süreç varsa mevcut süreç ya başka bir bellek bölgesine taşınacak ya da takaslama işlemi gerçekleştirilecektir.

image013

İçeriği Paylaş:
İlginizi Çekebilir
Yorum Yapılmamış

Henüz Hiç Yorum Yapılmadı..

Yorum Yaz

Yerdeğiştirme (Relocation) ve Koruma (Protection), Takaslama (SWAPPING)

İşletim Sistemleri

31/08/2017 | Yorum Yok | 75 | Mustafa Küçükakarsu