TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Faculty | Computer Science
Informatikzentrum

Implementierung eines Linux Treibers für die Verwaltung von persistenten Speicher

Student(anonymous, Login required)
SupervisorArthur Martens
ProfessorProf. Dr. Rüdiger Kapitza
Projectdanceos
IBR GroupDS (Prof. Kapitza)
TypeBachelor Thesis
Statusfinished

Motivation

Die Hauptspeicher heutiger Computer basieren auf flüchtigen RAM-Bausteinen. Wird der Hauptspeicher von seiner Spannungsversorgung getrennt (z.B. durch einen Stromausfall), so sind alle Daten, die sich zu dem Zeitpunkt im Hauptspeicher befinden, verloren. Dies ist insbesondere in verteilten Systemen wo Datenintegrität wichtig ist nicht hinnehmbar. Um die Integrität der Daten zu gewährleisten werden üblicherweise Transaktionslogs und Checkpoints verwendet. Da hierbei Daten auf die Festplatte geschrieben werden müssen oft dies zu einer signifikanten Leistungsminderung. Abhilfe versprechen neue persistente Hauptspeicher- technologien, engl. Non-Volatile Random Access Memory (NVRAM). NVRAM weist ähnliche Charakteristiken wie heutige DRAM Speicherbausteine auf (byte-Adressierbarkeit, Zugriffsraten), benötigt hierfür aber keine permanente Spannungsversorgung.

Aufgrund des hohen Kostenfaktors und verschiedener Hardwareseitiger Limitierung ist nicht damit zu rechnen, dass in naher Zukunft Systeme vollständig mit NVRAM ausgestattet sein werden. Stattdessen sind hybride Lösungen mit einer Kombination aus traditionellen und nichtflüchtigen RAM zu erwarten. Dies stellt Systeme vor die Herausforderung, wie mit zwei unterschiedlichen Sorten von Hauptspeichern umzugehen ist und welche Schnittstellen man dem Programmierer zur Verfügung stellt. Eine Möglichkeit den persistenten Hauptspeicher zu nutzen ist ihn über einen dedizierten HEAP bereitzustellen. Hierfür muss das Betriebssystem dem Benutzer die Möglichkeit geben Persistente Seiten anzulegen und sie im Bedarfsfall wiederzufinden (z.B. nach einem Stromausfallbedingten Absturz). In Unixoiden Systemen übernimmt der MMAP-Systemaufruf die Verwaltung von Hauptspeicherseiten. Jedoch erfüllt MMAP nicht die Anforderungen die für persistente Hauptspeicherseiten nötig sind.

Aufgabenstellung

Im Rahmen dieser Bachelorarbeit soll, angelehnt an den MMAP-Systemaufruf, ein eigener NVMMAP-Systemaufruf entwickelt werden. Die NVMMAP-Systemaufruf soll, wie die MMAP-Systemaufruf in der Lage sein den Physikalischen Speicherbereich eines Geräts in den virtuellen Adressbereich des Benutzers abzubilden. Innerhalb des Kernelspace ist es die Aufgabe von NVMMAP den Persistenten Speicher auf Seitengranularität zu verwalten und gegenüber verschiedenen Benutzern abzuschirmen. Der wichtigste Unterschied zu MMAP ist jedoch, dass der NVMMAP-Systemaufruf sogenannten anonymen Zuordnungen genügend Information persistent speichert oder herausgibt, so dass nach einem Neustart des Systems die Zuordnung ohne großen Aufwand wiederhergestellt werden kann.

Um dies zu realisieren muss zunächst ermittelt werden, ob die NVMMAP-Systemaufruf als Kernelmodul implementiert werden kann oder, ob der Linux-Kernel an sich verändert werden muss. Weiterhin muss geklärt werden welche Informationen NVMMAP an den Benutzer herausgeben muss um eine Zuordnung später wiederherstellen zu können und welche Informationen hierfür innerhalb von NVMMAP gespeichert werden müssen. Kern der Arbeit ist dann die Implementierung von NVMMAP für ein Linux Betriebssystem. Abschließend sollen die korrekte Funktionsweise sowie die Geschwindigkeit der Implementierte Lösung untersucht werden.


last changed 2016-06-15, 09:40 by Arthur Martens
printemailtop