SC(6): Exokerniges Dateihandling und Threadpooling
46 Minuten
Podcast
Podcaster
Beschreibung
vor 3 Jahren
Im SystemCall Podcast beschäftigen wir uns mit aktueller
Betriebssystemforschung - diesmal besprechen wir zwei Vorträge
vom Fachgruppentreffen Betriebsyssteme in Hamburg. Florian stellt
eine Art exokerniges Dateihandling vor, wo das Betriebssystem so
wenig wie möglich Funktionalität beisteuert. Stefan stellt dar
warum die Größe von Threadpools nicht händisch bestimmt werden
sollte und beschreibt ein System nachdem die Anzahl der Threads
dynamisch anhand Systemparameter eingestellt wird.
Ein Exokernel ist eine Betriebssystemarchitektur, bei der der
Betriebssystemkernel die minimale Funktionalität bereitstellt und
ansonsten die Userspace Anwendungen alle Aufgaben der Abstraktion
übernehmen müssen. Im vorgestellten Vortrag wurde gezeigt, dass
aktuelle implizite Ansätze mit Dateien auf Linux zu arbeiten,
eine SSD kaum auslasten könnten, d.h. mmap-Rufe und vor allem das
Freigeben von Speicher mit madvice sind zu langsam. Mit
expliziten Systemrufen wie read und write wäre das aber möglich,
das ist aber aufwändig, besonders sich zu merken auf welchen
Adressen welche Daten der Datei stehen. Also wurde ein System
vorgestellt, wo durch ein Kernelmodul physischer Hauptspeicher
fest reserviert wird und Anwendungen zur Verfügung gestellt wird.
Diese können dann explizit Dateiseiten einlesen und an die
richtige Stelle im Hauptspeicher schreiben. Wird der Speicher
nicht mehr benötigt kann er mit madvice zurückgegeben werden;
beim nächsten Zugriff erhält die Anwendung dann wieder neuen
Speicher vom Kernelmodul und die Anwendung kann die Seite erneut
einlesen.
Threadpools zeichnen sich dadurch aus, dass ahead-of-time also
bevor sie eigentlich gebraucht werden, eine Menge an Threads
erzeugt werden, die solange leerlaufen bis es Aufgaben (also
Tasks) für sie gibt. Viele Anwendungen schreiben sich eigene
Threadpool-Bibliotheken und verlangen vom Endnutzer, dass die
richtige Anzahl Threads statisch eingestellt wird. Das ist
aufwändig und teilweise sinnlos, besonders wenn die Anwendung aus
mehreren unterschiedlichen Phasen besteht (bspw. einlesen großer
Datenmengen, lange Berechnungen, zurückschreiben). Es wird ein
System vorgestellt, wo ein Controller das Einstellen der
richtigen Anzahl von Threads übernimmt. Dabei wird der Durchsatz
der Festplatte verwendet um Bottlenecks zu erkennen und ein
Bergsteigeverfahren angewandt um eine gute Anzahl Threads für die
aktuelle Situation zu finden.
Links
J. Timm & J. S. Rellermeyer, Why Multi-Threading Should No
Longer Be a DIY Job. Tagungsband des FG-BS Frühjahrstreffens
2022. Bonn: Gesellschaft für Informatik e.V.. DOI:
10.18420/fgbs2022f-02
GI Digital Library
Folien
Programm des Fachgruppentreffens
Intro-/Outrotheme
the_emergent
Weitere Episoden
50 Minuten
vor 1 Monat
1 Stunde 8 Minuten
vor 2 Jahren
50 Minuten
vor 2 Jahren
52 Minuten
vor 2 Jahren
1 Stunde 13 Minuten
vor 3 Jahren
In Podcasts werben
Kommentare (0)