Çöp toplama (bilgisayar bilimi)

Çöp toplama (Garbage Collection)

Bilgisayar Biliminde garbage collection kaynak yönetiminin özel bir adımıdır. Bilgisayar hafızasının yönetilmesi işleminde kullanılmaktadır.

Bilgisayar programları çalışma zamanı sırasında bellek ihtiyacı duyarlar ve ihtiyaç duyulmayan hafıza alanları programlar tarafından işletim sistemine iade edilir. Bu işlem C dilinde malloc() ve free() fonksiyonları ile yapılmaktadır. Belirli durumlarda programların akışında bu iki fonksiyonun izini sürmek zorlaşır. İşletim sistemine iade edilmiş bir alanın program tarafından tekrar kullanılması güvenlik açıklarını beraberinde getirmektedir.

Programlama yaparken hafıza yönetimini otomatiğe bağlamak geliştiricilerin işini kolaylaştırmıştır. Böylelikle bir programcı program yazarken hafıza alanını garbage collector sisteminden talep edip, iade işlemine karışılmamaktadır. Kalan tüm işlemler garbage collection mekanizması tarafından yapılmaktadır.

Garbage collection kullanılan hafıza alanlarının izini sürerek ihtiyaç duyulmayan alanları işletim sistemine iade etmektedir. Yeni bir talep geldiği zamanda yer bulup programa göndermektedir.

Garbage collection çalışma zamanında hafıza alanlarını yönetmektedir. Bu da bu sistemin işlemci kullanmasına sebep olmaktadır. İşlemci kullanımı ile alakalı iki farklı yönetim yaklaşımı bulunmaktadır. Birincisi stop-the-world yaklaşımıdır. Herhangi bir t zamanında garbage collector devreye girdiği zaman ilgili programdaki tüm işlemler durdurulur, hafıza yönetimi yapılır, daha sonra işlemler başlatılır. Bu çalışma zamanı kritik uygulamalar için bir dezavantaj oluşturmaktadır. Bu nedenle daha sonra concurrent algoritmalar geliştirilmiştir. Concurrent yaklaşımda garbage collection ile ilgili uygulama eşzamanlı olarak çalışmaktadır.

Dış bağlantılar

  • The Very Basics of Garbage Collection7 Ekim 2011 tarihinde Wayback Machine sitesinde arşivlendi., by Thomas Padron-McCarthy
  • A Garbage Collection Course Curriculum at MSDN Academic Alliance
  • Publications by the OOPS group at the University of Texas at Austin
  • A garbage collector for C and C++ by Hans Boehm
  • Notes on the CLR Garbage Collector[ölü/kırık bağlantı]
  • A Glance at Garbage Collection in Object-Oriented Languages19 Haziran 2006 tarihinde Wayback Machine sitesinde arşivlendi.
  • On-the-fly garbage collection: an exercise in cooperation14 Mayıs 2011 tarihinde Wayback Machine sitesinde arşivlendi. by Edsger W. Dijkstra and Leslie Lamport and A.J.Martin and C.S.Scholten and E.F.M.Steffens
  • Richard Jones and Rafael Lins, Garbage Collection: Algorithms for Automatic Dynamic Memory Management, Wiley and Sons (1996), ISBN 0-471-94148-4
  • Richard Jones' Garbage Collection Page14 Mayıs 2011 tarihinde Wayback Machine sitesinde arşivlendi.
  • A Real-Time Garbage Collector Based on the Lifetimes of Objects25 Mayıs 2011 tarihinde Wayback Machine sitesinde arşivlendi. by H. Lieberman and C. Hewitt, MIT Artificial Intelligence Laboratory
  • TinyGC - an independent implementation of the BoehmGC API18 Aralık 2010 tarihinde Wayback Machine sitesinde arşivlendi.
  • Conservative Garbage Collection Implementation for C Language17 Ekim 2011 tarihinde Wayback Machine sitesinde arşivlendi. by Yasin Hınıslıoğlu
  • g
  • t
  • d
Manuel bellek yönetimi
Delete (C++) · C devingen bellek ayırma · new (C++) · Durağan bellek ayırma
Sanal bellek
Sayfa tablosu · Sayfalama · Sayfalama istemi
Donanım
Etkin sayfalar ön belleği · Bellek yönetim birimi
Çöp toplama
Çöp · Güçlü referans · Referans sayımı · Sonlandırıcı · Zayıf referans
Uygulamalar
Boehm çöp toplayıcı · Çöp öncelikli toplayıcı
Bellek segmentasyonu
Gerçek kip · Korumalı kip · Sanal 8086 kip · x86 bellek segmentasyonu
Bellek güvenliği
Arabellek aşımı · Sarkan işaretçi · Yığın taşması
Konular
Bellek sızıntısı · Erişilemez bellek · Parçalanma
Diğer
Bölge tabanlı bellek yönetimi · International Symposium on Memory Management · Otomatik değişken