SC(5): Schneller Gegenseitiger Ausschluss im Userspace
Episode von SystemCall von Fachgebiet System- und Rechnerarchitektur, Leibniz Universität Hannover · 9. April 2022 · 1 h 02 min
Im SystemCall Podcast beschäftigen wir uns mit aktueller Betriebssystemforschung. Diese fünfte Folge ist eine besondere Folge, denn wir sprechen mit dem Preisträger des Promotionspreises der Fachgruppe Betriebssysteme, Alexander Züpke über einen Teil seiner Dissertation. Alex ist Postdoc an der TU München und hat im Bereich Echtzeit-Mikrokernel unter Anderem an schnellen Mechanismen für gegenseitigen Ausschluss geforscht.
Alex beschreibt uns den Stand von Futexes, also schnellem Gegenseitigen Ausschluss im Userspace, in Linux. Dieser optimistische Ansatz geht davon aus, dass die meisten Locks oder Mutexes genommen werden, obowohl wahrscheinlich kein Wettstreit darum herrscht, d.h. die meiste Kerninteraktion für diesen gegenseitigen Ausschluss nicht nötig wäre.
Beim Futex arbeiten die Synchronisationsprimitive erst einmal optimistisch mit atomaren Operationen im Userspace, und erst falls festgestellt wird, dass das Futex umstritten ist, wird in den Kernel gewechselt um passives Warten umzusetzen. Atomare Operationen sind dabei Prozessorinstruktionen, die bspw. ein Laden und das Setzen einer Speicherstelle in einem Zug erledigen, also aus der Sicht der anderen Prozessoren untrennbar (atomar). Das wird benutzt um gleichzeitig einen neuen Wert zu schreiben und den alten Wert zu lesen, um den gegen bekannte Werte zu vergleichen. Bspw. bedeutet 0, der kritische Abschnitt ist nicht besetzt, 1 er ist besetzt und 2 er ist besetzt und es warten Threads.
Alex beschreibt die Defizite der Implementierung der Warteschlangen im Linux-Kernel, und diskutiert die Implementierung der Futexe in einem Echtzeit-Mikrokernel. Echtzeit bedeutet in dem Kontext, dass jede Operation im System gewisse Zeitgarantien einhalten kann, und das belegbar ist. Bspw. dass eine kritische Anwendung auch mit diesen Futexen, aller X Millisekunden läuft und seine Berechnungen durchführen kann.
Links
https://blexi.de/papers/
A. Zuepke, R. Kaiser, Deterministic Futexes: Addressing WCET and Bounded Interference Concerns, RTAS 2019, DOI: 10.1109/RTAS.2019.00014
IEEE
Authors Copy
A. Zuepke, Turning Futexes Inside-Out: Efficient and Deterministic User Space Synchronization Primitives for Real-Time Systems with IPCP, ECRTS 2020, DOI: 10.4230/LIPIcs.ECRTS.2020.11
Dagstuhl
Authors Copy
Intro-/Outrotheme
the_emergent
Weitere Episoden von „SystemCall“
- SC(13): Sichten auf Adressräume 24. Januar 2026
- SC(12): Was wir nie über Locking wissen wollten 2. Dezember 2023
- SC(11): CHERI-Capabilities als Speicherschutz 7. Oktober 2023
- SC(10): GPGPU Treiber für Intel iGPUs 30. Juni 2023
- SC(9): Riesenseiten und Page-Fault Latenz 28. Januar 2023
- Advent(2): Adventskalender der Systemrufe 2. Dezember 2022
- SC(8): MirageOS und Linux als Unikernel 28. Oktober 2022
- SC(7): Partitionierung und Paravirtualisierung 15. Juli 2022
- SC(6): Exokerniges Dateihandling und Threadpooling 7. Mai 2022
- SC(4): SGX - Trusted und Untrusted Computing 16. März 2022
- SC(3): #ifdef-Totengräber und Bibliotheksschwärzen 17. Dezember 2021
- SC(2): Himmelsbrücken durch Tunnel und Replikate bei Vielkernern 24. Oktober 2021
- SC(1): Weggabelungen, Kontrollpunkte und Adressräume 8. Juli 2021