2023-06-252023-06-25https://tore.tuhh.de/handle/11420/16269Die Verwaltung der Speicherressourcen ist seit jeher Kernaufgabe des Betriebssystems. Nun stehen Betriebssystementwicklern jedoch diesbezüglich vor disruptiven Veränderungen: Neue Speicherarten wie High-Bandwith Memory (HBM) oder Non-Volatile Memory (NVM) sind verfügbar und unterschiedlichste Geräte, wie RDMA-fähige Netzwerkadapter, GPGPUs oder FPGA-basierte Beschleuniger greifen neben der CPU direkt über eine IO-MMU auf den virtuellen Speicher zu. Diese heterogenen Speichersysteme machen es erforderlich, nicht nur die klassische Speicherhierarchie und deren Speicherzugriffsmuster infrage zu stellen, sondern auch die Art und Weise, wie der Speicher innerhalb des Kernels verwaltet und verfügbar gemacht wird.In ParPerOS untersuchen wir neue Abstraktionen für ein einheitliches, aber effizientes und optional absturzkonsistentes Low-Level-Speichermanagement für Datenobjekte in heterogenen Speichersystemen, die aus flüchtigen, persistenten, verteilten und anderen Arten von Hauptspeicher bestehen können und auf die eine Vielzahl unterschiedlichster Prozessoren (CPU, GPU, NIC, RDMA) parallel zugreift.The management of memory resources has always been a core task of the operating system. However, OS designers are now facing disruptive changes on the memory side: New memory types, such as high-bandwidth memory (HBM) or non-volatile memory (NVM) have arrived and more types of processing elements, such as RDMA-capable NICs, GPGPUs, or FPGA-based accelerators, access virtual memory directly via the IO-MMU. These heterogeneous memory systems (HMSs) put not only the suitability of the classical memory hierarchy and memory access patterns at question, but also challenge the way memory is managed inside the kernel.In ParPerOS, we examine new abstractions for unified but efficient and optionally crash-consistent low-level memory management for data objects in heterogeneous memory systems that may consist of volatile, persistent, distributed and other types of main memory, accessed in parallel by a multitude of different processing elements (CPU, GPU, NIC, RDMA).Parallel Persistency OS