24C3 - 1.01

24th Chaos Communication Congress
Volldampf voraus!

Speakers
Hannes
Schedule
Day Day 2 (2007-12-28)
Room Saal 2
Start time 18:30
Duration 01:00
Info
ID 2277
Event type lecture
Track Science
Language en
Feedback

Automatic memory management

Why should I care about something that a computer could handle better, anyway?

Since Java is widespread, automatic memory management is a commonly used technology. There are several approaches to memory management, realtime, parallel, probabilistic algorithms. The lecture will give an overview of different algorithms and current research topics.

Doing memory management by hand is a hard task, most programmers fail to do it correctly, which leads to memory leaks. There are automated algorithms which collect no longer needed memory. This lecture will give a brief overview of used algorithms in different programming language implementations/virtual machines, their deficiencies as well as current research topics in this field.

The history of garbage collection starts in 1960, where McCarthy used mark and sweep garbage collector for Lisp at MIT. Reference counting (Collins, 1960, IBM) has been seen as an alternative to garbage collection. Nowadays, everything which reclaims memory automatically is considered garbage collection.

A real-time garbage collector was developed by Baker in 1978 ("List Processing in Real Time on a Serial Computer"). It was a copying collector, doing incremental, but not concurrent collection. It had several deficiencies, required special hardware, didn't consider variable-sized requests for memory... but was extended by several researchers during the years.

The Boehm GC is a conservative garbage collector for C and C++. It uses a mark and sweep algorithm.

The memory pool system is a garbage collection framework, which integrates different algorithms for different purposes. There is no need to sweep through strings in the hope of finding pointers to somewhere else. This garbage collector is highly optimized and well designed and tested (implemented with Capability Maturity Model level 3), really few defects.

Different programming language implementations use a custom garbage collector, an overview of selected language implementations and their garbage collector will be given.