Hafıza Yönetimi (Memory Management)

Yazan : Şadi Evren ŞEKER

Bir işletim sisteminin (operating system) birden fazla işlem çalıştırması durumunda (multi process) bu işlemlerin hafızayı nasıl paylaşacakları ve hafızanın nasıl daha verimli kullanıcağı hafıza yönetiminin konusudur.

Şayet işletim sisteminde tek işlem (process) çalışıyorsa bu çözülmesi çok daha kolay bir durumdur. İşlemler derlendikten (compile) sonra hafızaya yükleyici (loader) ismi verilen bir programla yüklenir ve işlemci (CPU) bu işlemi çalıştırmaya başlar. İşlem bitene kadar bilgisayar bu işlemin kontrolünde olur ve ancak işlem tamamen bittikten sonra hafızadan kaldırılarak yerine yenisi konulabilir ve farklı bir işlem çalıştırılabilir.

Ancak bir işletim sistemi birden fazla işlemi çalıştırmak gerekiyorsa burada bir iki problem ortaya çıkar.

İşlemlerin hafıza adresleri: Çalışan işlemler programlanır veya derlenirken hafızayla ilgili işlemleri gereği adres bilgileri içerirler. Örneğin bir program hafızadaki sabit bir adrese (sözgelimi 150 numaralı adres olsun) erişmek isteyebilir.

Bilindiği üzere hafızada aynı adrese sahip tek yer bulunmaktadır. Dolayısıyla örneğin 150 numaralı adrese erişme talebi tek bir yerdir oysaki programların adres erişme talepleri genelde yine programın farklı bir alanına erişmek içindir. Buradaki problem hafızada birden fazla işlemin yüklenmesi durumunda aynı adrese sadece bir işlemin yüklenecek olması ve her işlemin farklı adreslerde çalışacak olmasıdır. Dolayısıyla hafızadaki adresler hareketli olacak (dinamic, dynamic addressing) ve her işlem artık farklı bir adres aralığına yüklenecektir.

Örneğin yukarıdaki şeklin hafızayı (RAM) temsil ettiğini farz edelim. Bu resimde de görüldüğü üzere iki işlem aynı anda hafızya yüklenmiş bu işlemlerden ilki 100-400 aralığında yüklü ikincisi ise 500-800 aralığında yüklüdür.

Örneğimize geri dönecek olursak 150 numaralı hafıza adresi 1. işlemin yüklü olduğu adrestir. 2. işlemin buraya erişmesi ise risklidir. Bunun çok basit iki temel sebebi vardır.

  1. Güvenlik ihlali olabilir. Yani örneğin bu adreste bir kullanıcının şifresi yazılı olabilir ve başka bir işlem buraya erişirse (ki bu başka bir işlem başka birisinin işlemi de olabilir) bu şifreyi ele geçirebilir
  2. çalışan işlemlerin birbirine müdahalesinin sonucu kestirilemez. Yani siz işletim sisteminde bir kelime işlem programı çalıştırdığınızı düşünün (örneğin word) herhangi birisi girip sizin wordde yazıklarınızı daha kaydetmeden ekranda yazılıyken değiştirebilir, sonuçlar her zaman bu örnek kadar masum da olmak zorunda değildir. Pek çok ihtimalde sistemin çökmesi veya kalıcı olarak zarar görmesi mümkündür.

İşte hafıza yönetimi kapsamında

gibi problemler çözülmektedir. Bu problemlerin çözülmesi için sayfalama (Paging) ve kıtalama (bölütleme, segmentation) ismi verilen yöntemler kullanılmaktadır.

Daha fazla bilgi için hafıza yönetiminde güvenlik başlıklı yazıyı okuyabilirsiniz.

Bu yazıyı beğendiyseniz, başkalarının da ilgisini çekebilirsiniz:


385 views

Leave a Reply


9 + = onsekiz

Benzer Yazılar:

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Hafıza Yönetimi (Memory Management)' isimli yazı 03 Dec 2008 tarihinde, saat: 12:04 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam385 defa okunmuştur.

Benzer yazıları Bilgisayar Kavramları, işletim sistemleri, Sistem Programlama (System Programming) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Category: Bilgisayar Kavramları, işletim sistemleri, Sistem Programlama (System Programming)