Synchronisation



  • Hallo!
    Ich hätte da eine Frage bzgl Threadtitel:
    Welche Synchronisationsmechanismen gibt es für Anwendungsprogrammierer und OS-Programmierer.
    Also OS würde ich sagen: Mutex, Semaphore, TSL, Buslocking, Busy Blocking
    Anwendung: Peterson, Busy Waiting aber mehr fällt mir nicht ein

    Wäre Super wenn mir da wer antworten kann

    LG



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89, C99 und C11) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Klingt nach einer Prüfungsfrage.
    Und als solche ist sie - wie leider meistens - zu ungenau gestellt als dass man sie allgemeingültig beantworten könnte. => Das hinschreiben was der Vortragende erzählt hat/was in seinem Skript steht.

    Beispielsweise macht es keinen Sinn Synchronization-Primitives die das OS dem Anwendungsprogrammierer zur Verfügung stellt zu ignorieren. Also zumindest mutexen Mutexen und Events oder Mutexen und Condition-Variablen. Darauf lässt sich dann alles weitere aufbauen, sofern es das OS nicht direkt anbietet.

    Umgekehrt würde ich sagen: der OS Programmierer programmiert ja erst das OS. Er hat noch keine Mutex zur verfügung. Sondern bloss Dinge wie CAS, nen Interrupt-Controller mit dem er rumspielen kann u.ä.
    Daraus muss er sich dann die "höheren" Konstrukte wie Mutexen etc. bauen.



  • Also OS Programmierer müsste man eigentlich wieder in 2 Kategorien unterteilen:

    1. OS-Programmierer die quasi "bei Null anfangen"
    2. OS-Programmierer die z.B. existenzielle Treiber/APIs programmieren

    Die erste Gruppe hat quasi gar keine Synchronisations-Mechanismen, nur die entsprechenden atomaren Befehle und Synchronisationsmöglichkeiten des Prozessors. Daraus kann man dann Mutexe, Spinlocks, Semaphoren, usw. basteln.
    Die zweite Gruppe hat möglicherweise schon diese Techniken durch eine API zur Verfügung.

    Anwendungsprogrammierer werden wohl einige vom OS gestellten APIs zur Synchronisation nutzen können. Allerdings kann man hier auch (teilweise) direkt die Möglichkeiten des Prozessors nutzen um Locks zu realisieren.


Log in to reply