Memory Management (Proseminar)
Computer programs typically need memory to run. Often, memory has to be allocated dynamically at runtime and sometimes quite a lot of memory is needed. Memory is not infinite, however, so it usually needs to be managed appropriately by freeing memory that is no longer needed for reuse. There are various ways to accomplish this task and different tradeoffs can be made. In this proseminar, we will examine several techniques to do memory management on the application level. We will only briefly discuss memory management on the level of operating systems.
Topics include:
- Virtual memory
- Manual memory management
- Allocators
- Tracing garbace collectors
- Reference counting
- Region-based memory management
- Linearity and borrowing
- …
The course language will be German or English, depending on the participants.
Entry in the alma-system: Link
Instructors
- Marius Müller
ResearcherMarius Müller (Office: Room B211) - Klaus Ostermann
HeadKlaus Ostermann
Registration
If you want to participate, please send an e-mail with the following data to mari.mueller@uni-tuebingen.de:
- Matrikelnummer
- name
- Studiengang + Abschluss
- Fachsemester
- your student e-mail address
The number of participants is restricted to 10. Places are assigned on a first-come, first-served basis. The deadline for registering is 22.04.24. Please also send an e-mail with your preferences for the topics to present, see the orga slides.
Structure
We will meet weekly on Thursday, 14-16 in room C214 (PC-Poolraum) at Sand 14. Every week one participant will give a (roughly) 35-min presentation on one of the topics of this seminar with an ensuing class discussion of about 10 min led by the speaker. Every participant will be the speaker two times.
Requirements
Apart from basic programming skills, it may be helpful to have attended the lectures “Programming Languages 1” and Programming Languages 2”, but this is not strictly required.
First Meeting
The first meeting will take place on Thursday, 18.04.24, 14 c.t. in room C214 (PC-Poolraum) at Sand 14.
Schedule
Date | Topic | Name |
---|---|---|
18.04.24 | First Meeting | Marius |
16.05.24 | Manual Memory Management & Allocators | Thomas |
06.06.24 | Operating System & Virtual Memory | Amina |
13.06.24 | Garbage Collectors: Basics & Mark-Sweep | Thomas |
20.06.24 | Moving Garbage Collectors | Mohamad |
27.06.24 | Reference Counting | Nalin |
27.06.24 | Heap Partitioning for GC | Nalin |
04.07.24 | Region-Based Memory Management | Moritz |
18.07.24 | Comparing & Unifying Tracing and RC | Mohamad |
18.07.24 | Operating System & Virtual Memory 2 | Amina |
25.07.24 | Linearity, Ownership & Borrowing | Moritz |