Efficient Swapping of Shared Virtual-Memory Objects

With Morsels we introduced a novel new memory-management paradigm, that shifts from the management of individual pages to larger virtual-memory objects, technically represented as subtrees of the page-table hierarchy. This reduces management overhead and enables very fast transfer between address spaces.

By design, morsels exist in main memory without being just an intermediate representation of a file. However, for some applications it would be desirable to store objects on a disk in order to persist its data during reboots or to cope with limited main memory.

This project aims to develop a robust file format along with serialization and deserialization routines specifically tailored for Morsels. The file format should support storing Morsels either in whole or in part, preserving their hierarchical structure as subtrees. Additionally, crash consistency is imperative to prevent data corruption. Optional enhancements, such as checksum validation and incremental update mechanisms, will also be considered to further enhance reliability and efficiency.

Key Tasks:

  1. Designing an appropriate file format capable of representing Morsels and their hierarchical relationships.
  2. Implementing serialization routines to translate Morsel objects into the designated file format.
  3. Developing deserialization routines to reconstruct Morsel objects from persisted files.
  4. Ensuring crash consistency to safeguard against data corruption during storage and retrieval operations.
  5. Exploring optional features like checksum validation to ensure data integrity and incremental update mechanisms to optimize storage efficiency.

Topics: Linux, C, Virtual Memory

image

Efficient Copy-on-Write for Virtual-Memory Objects

Implementing classical, full-featured COW with multiple nesting levels would introduce substantial management overhead on the operating system side. Our goal with Morsels is to eliminate this overhead while retaining limited COW functionality.

 
Typ
Masterarbeit

 
Status
laufend

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Pasha Fistanto

Huge Pages for Virtual-Memory Objects

Currently, Morsels only support 4-KiB pages, but with larger page sizes the management overhead could be further reduced and the average memory access could be sped up, due to faster page-table walks and an increased TLB coverage.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Marko Bolowski (abgegeben: 18. Mar 2024)

Page Eviction for Shared Virtual-Memory Objects

The translation lookaside buffer (TLB) caches present page table entries, so that pages can not be unmapped by simply clearing the related page table entry. However, page eviction is vital for implementing advanced features like swapping and huge-page merging.

 
Typ
Masterarbeit

 
Status
laufend

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Tim Hollmann

IOMMU-assisted Memory Management: Sharing Virtual Memory Objects for Efficient Computing

Efficient Memory Management for Modern Computing Systems: Sharing Morsel Virtual Memory Objects between Processors and Devices via IOMMU.

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Kenny Albes (abgegeben: 05. Dec 2023)

Efficient Serialization of Page-Table-Based Virtual Memory Objects

With the discontinuation of Intel Optane and persistent memory being rarely available in general, alternative solutions need to be considered. One approach is to persist virtual memory objects on disk when persistent memory is not available.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Project
ParPerOS

Databases on NVRAM

Bringing the advantages of non-volatile memory to database applications using the new morsel memory primitive as efficient abstraction layer.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Matthias Wormann (abgegeben: 02. Oct 2023)

Morsel Managment Layer: Making Morsels Actually Useful

Bringing the new morsel memory abstraction to applications.

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Darian Biastoch (abgegeben: 26. Oct 2023)

Primitives and Abstractions for Self-Contained Virtual-Memory Areas in the Linux kernel

Implement the basic abstraction for self-contained virtual-address-space areas in Linux, by which we want to ease the allocation, the sharing, and the management of huge amounts of memory. [PDF]

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Lars Wrenger
Florian Rommel
Christian Dietrich
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Alexander Halbuer (abgegeben: 16. Nov 2022)