Çöp toplama (bilgisayar bilimi)

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 Collection, 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
 A Glance at Garbage Collection in Object-Oriented Languages
 On-the-fly garbage collection: an exercise in cooperation 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 Page
 A Real-Time Garbage Collector Based on the Lifetimes of Objects by H. Lieberman and C. Hewitt, MIT Artificial Intelligence Laboratory
 TinyGC - an independent implementation of the BoehmGC API
 Conservative Garbage Collection Implementation for C Language by Yasin Hınıslıoğlu

Bellek yönetimi