Gast
#5210968
Hallo liebe Forenbesucher :) Wie im Betreff schon erwähnt, handelt sich meine Frage über den Unterschied von Reentrant und Critical Section. Irgendwie habe ich da ein Denkfehler oder tu mir mit den Begriffen schwer. Also man spricht von Critical Section (bessert mich bitte aus wenn ich falsch liege), wenn mehrere Tasks/Threads auf eine Shared Data zugreifen wollen, vor allem dann wenn ein Task lesen und einer schreiben will. (zum Beispiel Memory welches ich durch malloc erstellt habe). Hier kann es passieren, dass Dateninkonsistenz (Data race) entsteht. Nicht-Reentrante Funktionen sind Funktionen oder librarys, welche globale oder statische Variablen besitzen (also alles was sich nicht am Stack befindet). Hier kann ebenso Dateninkonsistenz entstehen. Bei beiden Fällen muss ich diese Kritischen Sektionen durch Mutex oder Semaphoren schützen. Meine Frage ist jetzt: Betrifft der Begriff Reentrant nur Funktionen und Librarys oder kann ich zu einer Crtical Section auch sagen, dass diese Reentrant gemacht werden muss oder können nur librarys oder Funktionen reentrant sein? Also mir geht vorallem um die Begrifflichkeiten und bitte bessert mich aus falls ich oben bei den Erklärungen fehler gemacht habe. Lg Jooo