SC(1): Weggabelungen, Kontrollpunkte und Adressräume

SC(1): Weggabelungen, Kontrollpunkte und Adressräume

1 Stunde 11 Minuten
Podcast
Podcaster
Forschungspodcast über Betriebssysteme
snaums

Kein Benutzerfoto
Hannover

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

Kommentare (0)

Lade Inhalte...

Abonnenten

15
15