SC(1): Weggabelungen, Kontrollpunkte und Adressräume
1 Stunde 11 Minuten
Podcast
Podcaster
Beschreibung
vor 4 Jahren
Im SystemCall Podcast diskutieren wir aktuelle Themen in der
Betriebssystemforschung. In der ersten Folge besprechen wir "A
fork() in the Road", ein Diskussionspapier über den Systemruf
fork und "Instant OS Updates via Userspace
Checkpoint-and-Restart", in dem eine Möglichkeit dargestellt
wird, den Betriebssystemkern auszutauschen, und die Downtime der
Nutzeranwendungen gering zu halten.
In "A fork() in the Road" (HotOS'19) diskutieren die Authoren
Baumann et al. den Systemruf fork. fork ist in Unix fast die
einzige Möglichkeit einen neuen Prozess zu erzeugen. Dabei wird
der gesamte Elternprozess kopiert, also sowohl der Adressraum,
wie auch andere Kernobjekte, wie Dateideskriptoren. Daraus
entstehen neue Probleme, die bei der erste Implementierung von
fork in den 1970ern nicht bedacht worden sind. Baumann et al.
sprechen sich dafür aus, fork als deprecated zu markieren, in
neuem Code nicht mehr zu verwenden, und aus altem Code zu
entfernen.
"Instant OS Updates via Userspace Checkpoint-and-Restart"
verwendet Checkpoints for die Userspace Anwendungen um den
Speicherinhalt bspw. für in-memory Datenbanken oder Caches über
Kernwechsel hinaus zu erhalten, indem sie nach dem Restart wieder
vom Kontrollpunkt gestartet werden. Dafür verwenden sie CRIU
(Checkpoint-and-Restart in Userspace), eine Anwendung für das
Ziehen von Kontrollpunkten für Linux. Weiter beschreiben Sie
Verbesserungen im eigentlichen Umschalten zwischen den beiden
Kernels durch kexec und besprechen auch Optimierungen im Ziehen
und Wiederherstellen der Kontrollpunkte unserer eigentlichen
Payload-Anwendungen.
Am Ende diskutieren wir kurz die aktuelle Forschung von Florian
Rommel, der sich mit Adressräumen auseinander gesetzt hat und dem
Wartefreien Aktualisieren von Nutzeranwendungen. Dafür wurde das
Prozesskonzept von Linux derart erweitert, dass ein Prozess
mehrere Adressräume beinhalten kann, zwischen denen ein Thread
mehr oder weniger beliebig wechseln kann. Für das Update wird ein
neuer Adressraumklon erstellt und die Änderung im neuen
Adressraum vorgenommen. Änderungen von Thread in dem alten
Adressraum werden auch in den neuen gespiegelt. Wenn die Threads
das für angebracht halten, also wenn sie in einem sicheren
Zustand sind bspw. am Ende der Abarbeitung einer Anfrage,
wechseln sie in die neue Welt und arbeiten fortan auf der
aktualisierten Fassung der Anwendung. Das Papier wurde auf der
OSDI'20 vorgestellt.
Links A fork() in the road
Andrew Baumann, Jonathan Appavoo, Orran Krieger, and Timothy
Roscoe. 2019. A fork() in the road. In Proceedings of the
Workshop on Hot Topics in Operating Systems (HotOS'19).
Association for Computing Machinery, New York, NY, USA, 14–22.
DOI: https://doi.org/10.1145/3317550.3321435
ACM: A fork() in the Road oder
Microsoft Research: A fork() in the Road
Instant OS Updates via Userspace Checkpoint-and-Restart
Kashyap, Sanidhya, et al. "Instant OS Updates via Userspace
Checkpoint-and-Restart." 2016 USENIX Annual Technical Conference
(USENIX ATC'16). 2016.
Usenix: Instant OS Updates via Userspace Checkput-and-Restart
Weiterführende Links:
LWN: KS2021 Checkpoint/restart
Web Archive, IBM: Reboot Linux faster using kexec
LWN: Preparing for user-space checkpoint/restore
Manpage proc(5)
The UNIX Time-Sharing System
From Global to Local Quiescence: Wait-Free Code Patching of
Multi-Threaded Processes
Florian Rommel, Christian Dietrich, Daniel Friesel, Marcel
Köppen, Christoph Borchert, Michael Müller, Olaf Spinczyk, and
Daniel Lohmann. From Global to Local Quiescence: Wait-Free Code
Patching of Multi-Threaded Processes. 14th Symposium on Operating
System Design and Implementation (OSDI '20). 2020.
Usenix: From Global to Local Quiescence: Wait-Free Code
Patching of Multi-Threaded Processes
Weitere Episoden
1 Stunde 8 Minuten
vor 2 Jahren
50 Minuten
vor 2 Jahren
52 Minuten
vor 2 Jahren
1 Stunde 13 Minuten
vor 2 Jahren
78 Sekunden
vor 3 Jahren
In Podcasts werben
Kommentare (0)