Mehrere Threads mit gleichem Stack?



  • Hallo 🙂
    Ich hab mir die neuste Version von PrettyOS runtergeladen und mich ein bisschen umgeschaut. Dabei ist mir etwas in task.c aufgefallen. In create_task wird der Stack für den neuen Task auf USER_STACK gesetzt. Gibt das nicht Probleme bei mehreren Threads im gleichen Adressraum, die somit den selben Stack benutzen? 😕



  • Das ist der Witz an Paging - jeder Task hat einen eigenen Adressraum.
    EDIT: Achso, Du sprichst von Threads... Ich schau das mal nach.
    EDIT2: Es scheint tatsächlich ein Problem zu geben, wenn ein Ring-3-Task einen Thread erzeugen würde.



  • So spontan habe ich das Problem nicht beheben können; Daher habe ich erstmal einen Kommentar in den Code geschrieben. Zum Glück benutzen wir - soweit ich weiß - bislang keine Ring-3-Threads. Danke auf jeden Fall für den Hinweis!



  • Ich denke mal man könnte paging_allocVirtMem (ist glaub ich noch nicht implementiert) benutzen, um einen freien Platz im Adressraum zu bekommen.


Anmelden zum Antworten