Bellek yönetimi, bilgisayardaki bellek erişim haklarını denetlemek için birincil belleği işlemek veya yönetmek için kullanılan işletim sisteminin temel bir olgusudur. Amaç, herhangi bir işlemin henüz kendisine atanmamış belleğe erişmesini önlemektir..
İşletim sistemi, bölümlere ayrılan her işlem için bellek ayırır. Yığın ve Yığın, belleğin işletim sistemine tahsis edilmesinin iki yoludur.
Yığın kesimi otomatik olarak oluşturulan yerel işlev değişkenlerini depolamak için kullanılırken, yığın kesimi dinamik olarak ayrılan bellek için kullanılır.
Her ikisi de bilgisayar RAM'inde saklanır ve bir program yürütülürken büyüyebilir ve küçülebilirler. İkisini ayrıntılı olarak tartışalım ve hangisinin daha iyi olduğunu anlamak için karşılaştıralım.
Yığın bölümü, statik bellek ayırma için kullanılan bir bellek yönetimi tekniğidir. Bilgisayar belleğinde yerel işlev değişkenlerini depolamak için kullanılan özel bir alandır. Bir işlev çağrıldığında, bir yerdeki tüm yerel değişkenlere bellek tahsis edilir ve bu değişkenlere konumlarını bildiğiniz gibi erişebilirsiniz. İşlev sona erdiğinde bellek blokları boşaltılır. Yığın, bu işlemi verimli bir şekilde gerçekleştirmenin yollarından biridir. Bunu, öğelerin bir yığın gibi üst üste yerleştirildiği temel bir veri yapısı olarak düşünün. Benzer şekilde, yerel değişkenlere itme ve patlatma ile erişilebilir. İtme, yığına öğe ekleme anlamına gelir ve haşlama, öğeleri yığından almak anlamına gelir. Öğelere yığıntan son giren ilk çıkar (LIFO) sırasında erişilebilir.
Yığın, dinamik bellek ayırma için kullanılan geniş bir bellek havuzunu ifade eder; bu, program sonlandırılana veya bellek serbest bırakılana kadar bellek ayrılmış olarak kalır. Bellek rastgele ayrılır, böylece belleğe erişmenin kolay bir yolu yoktur. Yığın segmentinden farklı olarak, öğeler başlangıçta tahsis edildiği gibi ters sırada serbest bırakılır. Basit bir ifadeyle, bellek istek üzerine programlara tahsis edilir ve artık gerekmediğinde serbest bırakılır. Yığın öğeleri birbirinden bağımsızdır, yani program çalışırken ve program sona erdiğinde serbest bırakılabilir. Küresel değişkenleri ve ona başvuran birçok değişkeni depolamak için kullanılan bir küresel bellek havuzu gibidir..
Bilgisayar mimarisinde, yığın, bilgisayar belleğinin otomatik değişkenler için açıkça ayrılmış özel bir bölgesidir. Programlamada, otomatik değişken, değişkenin kapsamının bildirildiği blok için yerel olduğu anlamına gelen yerel bir değişkendir. Bellek bloğa girdikten sonra bu değişkenlere otomatik olarak tahsis edilir ve çıkıştan sonra bellek boşaltılır. Öte yandan, bilgisayar belleğinin dinamik bellek ayırma için kullanılan kısmıdır, yani bellek blokları rastgele bir şekilde ayrılır ve ayrılır.
Yığın, işlevi içinde tanımlanmış olan yerel değişkenleri saklamak için kullanılır. Teknik olarak yığın, yerel statik değişkenlere ve kapsam değişkenlerine karşılık gelen statik bellek tahsisini destekler. Bellek, program derlenmeden önce, genellikle derleme zamanında ayrılır ve kullanılan veri yapısına yığın adı verilir. Öte yandan, dinamik bellek tahsisi için kullanılır, yani bellek bir programın yürütülmesi sırasında çalışma zamanında manuel olarak tahsis edilir. Programlar, genellikle veri yapısına bir düğüm eklemek için bellek ister ve gerekirse döndürür.
Bir yığın CPU tarafından yönetilir ve optimize edilir ve verilere son giren ilk çıkar (LIFO) sırasıyla erişilir. LIFO, bellek yığınlarında en son bellek bloğunun ilk serbest bırakılan ve tam tersi olan veri depolama yöntemini ifade eder. Bu etkin bellek yönetimi sağlar. Yığın unsurları, aksine, birbirinden bağımsızdır ve verilere keyfi olarak erişilebilir, yani sıralarına bakılmaksızın herhangi bir zamanda bir bellek bloğu tahsis edilebilir ve serbest bırakılabilir. Yığınların aksine, yığınların bellek bloklarının tahsisi ve yeniden yerleştirilmesi için kesin bir modeli yoktur.
Bellek yığında otomatik olarak yönetilir ve değişkenler otomatik olarak tahsis edilir ve otomatik olarak serbest bırakılır, bu da yığının sadece geçici değişkenler için ayrıldığı anlamına gelir. Yerel değişkenler bir işlev yürütüldüğünde etkinleşir ve sona erdiğinde, değişkenler kapsam dışına çıkar, yani değişkenin kapsamı bir işlev için yereldir ve bu işlev yürütüldüğü sürece mevcuttur. Yığın aksine, program yığın halinde çalıştığından bellek ayrılır, bu da burada saklanan değişkenlere erişmeyi biraz yavaşlatır. Yedek bloklarda belirli bir düzen olmadığından, bellek blokları her zaman tahsis edilebilir ve serbest bırakılabilir.
Her ikisi de bellek ayırmanın en yaygın yoludur ve etkin bellek yönetimi için bilgisayarın RAM'inde saklanır. Bununla birlikte, bir yığındaki belleğe erişim hızlıdır çünkü bellek otomatik olarak yönetilirken, yığınta bellek manuel olarak yönetilecektir, yani bloklar artık gerekli olmadığında boş belleği kendiniz tahsis etmeniz gerekir. Stack, esnekliği sayesinde açıkça daha hızlı ve kullanımı daha kolaydır, ancak avantajları ve eksileri arasında adil bir payı vardır. Yığının bellek boyutu üzerinde bir sınırı olmamasına rağmen, uygulanması biraz zor. Yığın bir yığından daha yavaştır, ancak uygulaması daha basittir.